Player shoots when touch turn and not when touch "shoot"


#1

Hi again, I have a problem which I can’t solve:

when try my game in gdevelop player shoots perfect, just when I touch shoot button, BUT when i compile and try it in device the player shoots just when I touch left or right button! and ignore the touch in “shoot”, I’ve checked lot of times my code and can’t find my mistake, please help:

I really can’t understand why player does it if shoot and direction buttons have not relation each other! as you see I’ve even moved shoot actions to his own external event, but player keeps shooting when y touch direction buttons, and does nothing when touch shoot button in screen :frowning:


#2

Are you testing the code on a mobile device, I am assuming, so maybe you’ll need to add the multi touch events for your code so it can process the touchs better.

I don’t see any fails in your logic, at least not in a first glance, so maybe the software is having problems with the touch detection.

I hope the multi touch events help you.


#3

Thanks, the weird thing is it worked before, I don’t know what I did to mess it, but I could make it and was working perfect, since a couple of packings the problem began :frowning: I’ll try that way you say.


#4

Good luck, and I hope it works. You’ll need to add events like:

if one of these conditions is true
Marker collides with disparo (Button)
x key is pressed

And I in my experience, a Marker object size of 8 x 8 is good to check single buttons. (16 x 16 when you want to use diagonals).

(Por cierto, si te parece más cómodo y es necesario, podemos continuar en español)


#5

Yo digo que el programa está loco :pensive: estoy configurando una animación cuando lo hieren y hace otra!, ya hasta le puse nombre a la animación y sigue haciendo la otra


#6

¿Podría ver los eventos que usas? Me gustaría ver si cambias la animación de manera directa, si lo haces con variables de estatus, temporizadores, si la animación ha finalizado.


#7

Si, para las animaciones del jugador principal, uso un evento externo, en realidad para todo tengo eventos externos y luego los vinculo a las escenas, no sé si sea una buena práctica en programación por eso me gustaría contactar con algún experto o creador de Gdevelop


#8

No creo que sea una mala práctica. Te permite tener un código más sencillo, ordenado y manejable.

Veo que tienes dos condiciones para la animación de correr, a saber:

+ Si Player está en el piso
+ Si se está moviendo
+ Y no está en colisión con un enemigo
              + cambia su animación a "Run"

Enseguida
+ Si alguna de estas condiciones es verdadera
+ Si el toque o cursor está sobre botder
+ O se ha presionado la tecla Derecha
+ Simula la presión de la tecla derecha
+ No lo reflejes
+ Si se está moviendo
+ cambia la animación a “Run”

No estoy seguro, pero por lo que veo, al presionar la tecla Derecha (O izquierda, ambas tienen la misma lógica), sin importar lo que haya sucedido, o si estás en el aire, cayendo, o siendo golpeado por el enemigo, se cambia la animación a correr.

Es lo que puedo ver en los eventos que muestras.

Una opción podría ser usar una variable de estado en tu objeto jugador. Por ejemplo, normalmente será 0. Si ha sido golpeado, estado se pone en 1 y se cambia la animación a “dolor”, si no es un loop se puede usar una condición de: Si se terminó la animación “Dolor”, entonces regresa estado a 0, cambia la animación a “Stand” ó “Run”.
Si “dolor” es una animación con loop, se puede usar un temporizador para cambiar la animación. Regresando la variable estado a 0 al final de un tiempo determinado.


#9

me parece buena idea pero con la experiencia que he tenido (poca) con gdevelop es muy probable que al probarlo el jugador no haga nada :pensive: lo intentaré, sería una forma de evitar tanto código

El problema que tengo de que dispara cuando toco las flechas de dirección no sucedió compilando y jugando el nivel 2 en lugar del 1 que es donde se da el problema (una sospecha que tenía), cosa que me deja con más dudas que respuestas, por supuesto revisé todo el código de nivel 1 en busca de algo que interfiera y no encontré nada, ambas tienen el evento externo enlazado y todo igual :frowning:

Alguna idea? o forma que conozcas de contactar a los desarrolladores de gdevelop?


#10

Hola no estoy muy seguro de cual es el problema pero empieza por aquí


Luego aquí

Seguramente necesitas activar métodos de tipo multi touch para que los botones puedan pulsarse a la vez.


#11

Gracias, los revisaré!