Dirección de disparos

¡Hola de nuevo!

Estoy diseñando un juego y quería saber cómo hacer para definir la dirección en la que va la bala, el tiempo que tarda en desplazarse y un retraso entre disparo y disparo.

Cambiando de tema, algo secundario que me gustaría agregar es que el personaje pueda pegar con la espada, pero no se me ocurre como.

Estoy trabajando con animaciones y sprites, así que no sería problema diseñar más sprites.

Buenas, @Mateo_Bc!

La dirección de la bala se define al “aprender disparar” con el parámetro “angulo_salida_disparo=90” donde 90 es el ángulo relativo al actor que dispara. La cantidad de disparos la das por el parámetro “frecuencia_de_disparo=3”

Puedes darle un ángulo fijo o bien uno aleatorio:

mi_actor.aprender(“disparar”, angulo_salida_disparo=120, frecuencia_de_disparo=3)

mi_actor.aprender(“disparar”, angulo_salida_disparo=pilas.azar(250,290), frecuencia_de_disparo=10)

En cuanto al tema de la velocidad de desplazamiento de la bala es algo más complejo… voy a mirarme bien el código del actor munición a ver si puede alterarse, por que ahora mismo no sé muy bien como hacerlo si no es creando un disparo personalizado :cold_sweat: , y veo que hay dos usuarios que han hecho la misma pregunta al mismo tiempo :smile:

Un saludo! :wink:

Yo hice un juego en el que unos legionarios luchaban a espada, pero era una colisión muy sencilla entre dos sprites, y lo único que hacía era reproducir un efecto de subir y bajar la espada algo modesto :blush:

Entiendo que tu idea es algo más “profesional” y que lo que quieres es dotar a tu espada de un área de colisión propia que impacte con el enemigo.

Revisa este post, en el que se explica como hacer un botón de pinball que impulse una bola. El botón podría ser la espada, y el soporte podría ser tu sprite.

Sin duda es un tema muy interesante y te agradecería que de conseguirlo lo espusieras aquí como futuro ejemplo.

Un saludo! :wink:

¡Muchas gracias!, Si llego a conseguir ambas cosas, hago un código aparte en el que lo tenga y lo subo :smiley: