PDA

Ver la versión completa : se puede hacer esto?



vassink
29/10/2011, 08:40
Estoy tratando de hacer que mi personaje dispare a cierto punto dependiendo de a donde está mirando... es para hacer un juego tipo shooter en vista aerea.

hasta ahora solo lo hago caminar hacia arriba , abajo, izquierda y derecha.
y al presionar _space la bala sale en una sola direccion y quiero que dispare hacia donde mira, dependiendo del grafico que tiene mi personaje en ese momento.

para cada direccion del disparo hice un proceso diferente, por ejemmplo disparo derecha sería:

PROCESS disparode()
BEGIN
x=father.x;
y=father.y;
graph=200;

LOOP
x=x+8;
FRAME;
END

Ahora en mi personaje tengo el siguiente codigo:

LOOP

IF (key(_space))
disparode ( ) ;
END

IF (key(_up))
graph=002;
y=y-3;
ELSIF (key(_down))
graph=001;
y=y+3;
END
IF (key(_left))
graph=003;
x=x-3;
ELSIF (key(_right))
graph=005;
x=x+3;
END

FRAME;
END


Mi idea era hacer algo asi:

IF (key(_space)) + (graph=005)
disparode ( ) ;

*Lo marcado en rojo es un invento mio, es lo que quiero saber si se puede hacer, unir esas dos condiciones en una sola..

Me habré explicado bien?:confused:

SplinterGU
29/10/2011, 10:13
podes usar angle y advance...

GameMaster
29/10/2011, 10:25
claro que puedes unir condiciones, faltaria mas, tambien puedes usar una variable auxiliar, pero con esto seria suficiente:

IF (key(_space) AND graph == 5)
disparode ( ) ;

vassink
29/10/2011, 19:14
claro que puedes unir condiciones, faltaria mas, tambien puedes usar una variable auxiliar, pero con esto seria suficiente:

IF (key(_space) AND graph == 5)
disparode ( ) ;


muchas gracias!!! :D

Ahora me funcióna bien la bala. :)

Según el ejemplo que me diste, para que mi personaje cambie de gráfico en las diagonales supuse que las ordenes serían estas...

If (key(_up) and (key(_left)
graph=10;

por que no me funciona?

hardyx
29/10/2011, 22:02
Es que las diagonales en el PC son otras teclas diferentes, en tu caso sería key(_home). A no ser que quieras simular las diagonales usando up y left.

futublog
29/10/2011, 22:55
se habló de eso aqui (http://forum.bennugd.org/index.php?topic=2169.0) y comcretamente esta (http://forum.bennugd.org/index.php?topic=2169.msg38960#msg38960)fué la solución...

je je je

vassink
29/10/2011, 23:50
Ok gracias... yo pensaba hacer el videojuego funcional para pc y luego portarlo a caanoo, pero si me dicen que para caanoo cada direccion tiene un boton diferente entonces ¿que me recomiendan? ¿comenzar haciendo el juego inmediatamente con los comandos para caanoo?
y que botones de pc equivalen a los botones de caanoo?

Aún no logro portar el videojuego a caanoo, es lo que me tiene mas confundido :S

Lo que intenté hacer fue tomar el juego animatch, reemplazé el DBC por el de mi juego incluso manteniendo el mismo nombre "animatch.dbc" según yo con eso devería funcionar... pero al iniciar el videjuego se queda pegado en la pantalla de carga.

No se que es lo que hago mal. Pienso que puede ser que mi DBC no lo hago bien...

futublog
30/10/2011, 00:53
puedes usar las ocho teclas del teclado numerico y luego asignarlas desde el jkeys.lib correspondiente...

el .dcb lo tienes que crear del .prg principal del juego y tener muy presente las rutas de los .ini

Drumpi
01/11/2011, 17:57
El funcionamiento de los botones en WIZ/CAANOO respecto a PC cambia por lo que te ha dicho Futu.
En este caso conviene que separes el reconocimiento de las teclas que se pulsan con el movimiento del personaje. Te recomiendo que te crees un proceso que detecte qué teclas se han pulsado y lo almacenes en unas variables globales, uno para WIZ/Caanoo, y otro para PC, y que lo llames en función de la consola que lo ejecute (mira la información acerca de OS_ID).
Así, a tu personaje sólo le importarán si determinada variable vale true o false, y tendrás un proceso específico para cada tipo de entrada, pero que aportan la misma información.