Hola a todos, primero me presento. Soy super novato en esto pero sigo tutoriales y voy aprendiendo un poco. En el juego que estoy haciendo, tipo pong, he conseguido hacer bien el tema de las colisiones, paredes, pelota, puntos,... menos el tema multi touch. Tendria que ser compatible con android o ios. Intento que la raqueta izquierda, la toque con un dedo y la mueva, a la vez que la raqueta derecha con otro dedo. He buscado tutoriales pero entre los que estan en ingles y no me entero, he intentado poniendo un STEP en cada objeto de las raquetas con esto:
for(device=0;device<=2;device+=1){
if device_mouse_check_button(0,mb_left){
if drag = true {x=mouse_x y=mouse_y}
}
if device_mouse_check_button(1,mb_left){
if drag = true {x=mouse_x y=mouse_y}
}
}
pero se mueve solo uno. Tambien cambios de mucho tipo:
for (i = 0; i < 5; i += 1; ) //checks each touch event from 1 - 5
{
if device_mouse_check_button(0, mb_left)
{
if drag = true {x=device_mouse_x(0) y=device_mouse_y(0)}
}
}
if device_mouse_check_button(1, mb_left)
{
if drag = true {x=device_mouse_x(1) y=device_mouse_y(1)}
}
y mas codigos...
No entiendo que tengo que hacer en cada raqueta de cada objeto, es decir en CREATE, STEP, etc...
adjunto el archivo gmx para que os lleveis una idea, pero no os riais si es una tonteria, yo de programar y dibujar nada de nada.Lo poco que esta hecho son con tutoriales. Llevo dias mirando manuales, etc y no me dejan claro este caso. La teoria medio que la entiendo, pero la practica...
Muchas gracias y saludos.
la mejor manera no es usar el mouse si no usar una tecla virtual, osea que logico no presionara esa tecla si no que al presionar sobre la instancia (object de la barra) simule que fue presionada la tecla (...Cualquier tecla...) y asi los event de movimientos de cada barra estarian en los: Event keyboard. en :GMS: como es para android podes usar este codigo.
YoYo_AddVirtualKey (Posición X, Posición Y, Width, Height, Keycode)
se usa asi ejemplo:
YoYo_AddVirtualKey (0, 240, 80, 80, ord ('A'))
tambien podes darle indice metiendolo dentro de una variable asi.
tocobarra2=YoYo_AddVirtualKey (0, 240, 80, 80, ord ('A')) ;
Puse como ejemplo el event de tecla Keyboard check "A" pero es solo una opcion la que te estoy dando realiza pruebas y ves si te sirve para tu propósito.
Bueno, te tratare de explicar, también te dejo un ejemplo adjunto, no edite el tuyo por que me dio flojera entenderlo y eso xD
El concepto es simple, con 2 variables bastaría una para saber si esta siendo "agarrado" y otra para el id del dedo tactil que lo toco, lo que yo haría seria chequear a que lado de la pantalla fue tocado para asignar el toque a una raqueta.
Espero que se entienda lo que trato de explicar por que ni yo me entiendo, como dije, te dejo un muy simple ejemplo de "pong" que hice apurado(viene en gmz para mas comodidad), con multitouch probado por mi tablet.
Muchas gracias a los dos, mañana voy a ver si lo estudio mejor que como no me vaya a la cama mi mujer >:( .... problemas. Que esto me engacha, llevo tres dias :GMS:
Saludos
Con ese ejemplo he conseguido hacerlo, pero solo sube y baja cada pong, voy a intentar que tendia dirección hacia todos los lados, que sea libre.
Lo que tampoco se como hacer que la virtualkey sea el propio objeto (raqueta).
Saludos
Cita de: Yonipm en Enero 26, 2013, 01:51:30 PM
Con ese ejemplo he conseguido hacerlo, pero solo sube y baja cada pong, voy a intentar que tendia dirección hacia todos los lados, que sea libre.
Lo que tampoco se como hacer que la virtualkey sea el propio objeto (raqueta).
Saludos
Ese es el problema de las virtual keys, no las puedes mover xD tendrias que hacer virtual_key_add y virtual_key_delete a cada rato xD
En mi ejemplo no se mueve hacia los lados por que es un pong, pero bastaría con esta linea dentro el if del objeto pong1 y 2 donde dice y=device_mouse_y(dragg_id) pones
x=device_mouse_x(dragg_id)
con eso movería la x también... pero limitaría el movimiento con algo como x=min(x,room_widht/2) para que no se vaya de la mitad la raqueta 1 y lo mismo para la otra pero a la inversa
Gracias ya lo conseguí como decias. Todo perfecto.
Ahora solo tengo que conseguir que el objeto no se quede atras, es decir, no va a la misma velocidad que el dedo. Si teneis alguna idea, genial.
Pero el tema esta solucionado.
Saludos
Aumentá los fps a 60 o 120, eso te va a dar la mayor velocidad de actualización posible, si se siguen quedando atrás es problema del dispositivo en sí, lo podés probar con algún multitouch tester que hay en google play