Abril 28, 2015, 07:13:31 AM Ultima modificación: Abril 30, 2015, 10:17:10 AM por Mataca
Hola. Tengo el siguiente problema:
El juego es de encontrar objetos.
Tengo una view de 480*640
Con el siguiente codigo controlo el zoom+ y zoom- mediante 2 objetos por separado(bien sencillo, zoom*2 y otro que vuelve al normal)
<zoom+>
left released:
view_hview[0]=640/2
view_wview[0]=480/2


<sacar zoom>
left released
view_hview[0]=640
view_wview[0]=480


Con lo siguiente controlo el movimiento (lo saque de este foro):
if mouse_check_button_pressed(mb_left)
{
  Mx = mouse_x;
  My = mouse_y;
  }

if mouse_check_button(mb_left)
{
   view_xview[0] = median( view_xview[0] + Mx - mouse_x, 0 ,room_width -view_wview[0]);
  view_yview[0] = median( view_yview[0] + My - mouse_y, 0 ,room_height-view_hview[0]);
  }


Hasta ahi todo bien, el zoom anda y cuando dejo apretado en la pantalla y muevo todo funciona bien. El problema es cuando clickeo en un objeto, se me tranca la view (ese objeto a su vez crea otro, no se si influye en algo). Encuentra el objeto y como que el zoom queda buggeado, no se mueve bien para los laterales. La vuelvo a alejar y acercar, salgo del nivel y vuelvo a entrar, pero ya el zoom se queda buggeado.
Si reinicio el juego desde 0 borrando todo lo guardado, vuelve a andar bien, pero ya al clickear otro objeto (con zoom) se buggea de nuevo.
Nota: No tengo ningun objeto que controle la view mas que los codigos que puse arriba. El resto de los objetos que son "clickeables" no modifican para nada la view por ningn comando.


Alguien sabría cual es el error?

#1 Abril 28, 2015, 07:39:04 AM Ultima modificación: Abril 28, 2015, 07:48:27 AM por penumbra
Cita de: Mataca en Abril 28, 2015, 07:13:31 AM
Alguien sabría cual es el error?
No tengo una idea clara de cómo es tu juego, pero por la información que compartes, a mi me parece que el código que usas(el último) es el más sospechoso.

Cita de: Mataca en Abril 28, 2015, 07:13:31 AM
El problema es cuando clickeo en un objeto, se me tranca la view
¿Qué pasa si le pones comentarios al último código? Casi apostaría a que el problema dejaría de presentarse
[gml]
if mouse_check_button(mb_left)
{
//   view_xview[0] = median( view_xview[0] + Mx - mouse_x, 0 ,room_width -view_wview[0]);
//   view_yview[0] = median( view_yview[0] + My - mouse_y, 0 ,room_height-view_hview[0]);
}
[/gml]
Quizás no, pero en caso de funcionar, serviría como primer paso para aislar el error y detectar qué código está fallando.

Cita de: penumbra en Abril 28, 2015, 07:39:04 AM
Cita de: Mataca en Abril 28, 2015, 07:13:31 AM
Alguien sabría cual es el error?
No tengo una idea clara de cómo es tu juego, pero por la información que compartes, a mi me parece que el código que usas(el último) es el más sospechoso.

Cita de: Mataca en Abril 28, 2015, 07:13:31 AM
El problema es cuando clickeo en un objeto, se me tranca la view
¿Qué pasa si le pones comentarios al último código? Casi apostaría a que el problema dejaría de presentarse
[gml]
if mouse_check_button(mb_left)
{
//   view_xview[0] = median( view_xview[0] + Mx - mouse_x, 0 ,room_width -view_wview[0]);
//   view_yview[0] = median( view_yview[0] + My - mouse_y, 0 ,room_height-view_hview[0]);
}
[/gml]
Quizás no, pero en caso de funcionar, serviría como primer paso para aislar el error y detectar qué código está fallando.

El juego es bien sencillo. Tenés que buscar 5 objetos en un room. Lo que pasa es que en algunos celulares son difíciles de encontrar, entonces le agregue un zoom simple que lo que hace es agrandar la pantalla al doble, bien sencillo. El ultimo código lo que hace es un swipe (o como se llame). Lo uso en la pantalla de selección de niveles y anda perfecto (scrolleo con el dedo en el celular ).
Hice lo que me dijiste de desactivar el ultimo comando pero ésto hace que el swipe no ande. Aumento con el zoom y cuando muevo para todos lados directamente no anda.

Lo raro es que si no toque ningún objeto en el room, el zoom con el swipe anda perfecto... ahora cuando toco un objeto (el cual hace un cambio de sprite, y hace aparecer otro objeto en el room) se me buggea el swipe... por más que salga del room y vuelva a entrar ya el swipe queda buggeado... anda, pero no de un extremo a otro del room, queda como si hubiese cambiado el view a una mas chica o no se...

Capaz podría probar con algun otro script de swipe... Busqué en el foro pero no encontré ningún otro.

Me equivoque de termino. Es drag & drop, no swipe. Lo que quiero es solo mover la pantalla con el dedo para todos lados (para ver el room con zoom).

UP! Descubri otra cosa testeando... El problema está en que al clickear el objeto creo dos objetos más.
Si creo 1 solo objeto no pasa nada, el problema es cuando es más de uno.

Hay algún codigo para resetear la view? Quizá podría implemetar que luego de hacer click en el objeto (el cual crea dos más) se "reinicie" la view.

Ya lo solucione. El error esta en que no puedo crear 2 objetos diferentes. Opte por cambiar el código, creando 1 solo y que ese cree al otro, y ahora anda bien.
No se a que se debe pero en fin... despues de 6 horas lo solucioné jaja :P

Saludos markeros