Abril 06, 2011, 03:06:58 PM Ultima modificación: Abril 06, 2011, 04:59:04 PM por unbleached
Cual es la equivalencia al evento colision en codigo????
siempre pens? que era collision_point...pero creo que no.
si uso este codigo con una bala(por ejemp) me dice que desconoce la bala (porque no existe en la room) pero si uso el evento colision de game maker no me da problema...con lo cual deduzco que no es lo mismo.Un saludo y gracias


vereis...tengo un codigo que funciona perfectamente...que dice mas o menos que cuando el campo de vision del enemigo entre en contacto con el personaje la variable alerta sera true...y que cuando deje de estar en contacto con el campo de vision,pasados 1000 steps la variable alerta sera false.Este es el codigo en el step del enemigo:
[gml]if collision_point(soldado_01.x,soldado_01.y,cve01,1,1)  ///si el soldado_01 colisiona con el campo de vision
and not collision_line(x,y,soldado_01.x,soldado_01.y,escenario,1,1)  ///y ademas no existe una colision con el escenario entre uno y otro
{alerta=true;aux_alerta=false}  ///se pondra en modo alerta
else if aux_alerta= false{ alarm[1]=1000; aux_alerta=true} ;  /// cuando no sea asi...pasados 1000 steps se desactivara el modo alerta[/gml]

luego el soldado_01(osea el player) va dejando un rastro de huellas tras de el que pasados 600 steps van desapareciendo...y habia pensado que si el enemigo ve las huellas o las balas(osea si las huellas o las balas  colisionan con el campo de vision) pase exactamente lo mismo que si colisiona con el soldado_01....si pongo este codigo para las huellas:
[gml]if collision_point(huellas_s01.x,huellas_s01.y,cve01,1,1)
and not collision_line(x,y,huellas_s01.x,huellas_s01.y,escenario,1,1)
{alerta=true;aux_alerta=false} 
else if aux_alerta= false{ alarm[1]=1000; aux_alerta=true} ; [/gml]
me tira error

[gml]Error in code at line 19:
   if collision_point(huellas_s01.x,huellas_s01.y,cve01,1,1)
                                  ^
at position 33: Unknown variable x[/gml]
suponog por que las huellas no existen.Aqui mi problema y duda

Eso pasa porque al iniciar el juego, no se han creado huellas aun.. Asi que lo que tienes que hacer  es condicionar ese bloque de codigo, para que si existen huellas entonces ejecute ese bloque de codigo.
[gml]if instance_exists(huellas_s01){
if collision_point(huellas_s01.x,huellas_s01.y,cve01,1,1)
and not collision_line(x,y,huellas_s01.x,huellas_s01.y,escenario,1,1)
{alerta=true;aux_alerta=false}  
else if aux_alerta= false{ alarm[1]=1000; aux_alerta=true} ;
}[/gml]

Tambien puedes hacer otra cosa si no deseas escribir de nuevo el codigo para las huellas y balas. Tienes que crear un objeto y hacerlo parent del soldado, el objeto huella y el objeto bala, y ya despues en el codigo tiene que ser especificado para ese objeto parent de todos.
"Si he llegado a ver más lejos que otros, es porque me subí a hombros de gigantes"  Isaac Newton

madre mia.....que facil era la respuesta  :-[ :-[ :-[
porque no habria caido en lo de instance_exist....jejejeje....mil gracias...solucionado mi problema pero aun dudo a que representara en codigo el evento colison....pero mi problema esta solucionado.Gracias.Funciona a la perfeccion