Diciembre 31, 2014, 02:21:23 PM Ultima modificación: Enero 02, 2015, 01:13:55 PM por zHeMaa
Buenas a todos, tengo un problema y es que tengo un botón en mi room que funciona, pero por ejemplo cuando me muevo el botón se queda en las mismas coordenadas ("x", "y") y acaba saliendose de la pantalla, como puedo hacer para que ese objecto con la función de botón se quede "anclado" a la pantalla, vamos que si yo me muevo para abajo el botón siga para abajo, y no que se quede en la posición de la room donde lo deje..

He probado con un draw_sprite pero solo dibuja el sprite y no hace la función del botón, digamos que solo dibuja la imagen.

Y básicamente todo es eso.. el código del botón esta echo con left pressed y left released.

Muchas gracias y feliz año nuevo a todos!  :)

yo soy muy raro eeee pero podrias provar de hacer un object el qual lo movieras con las flechas arriba y abajo, luego, en la room añades el object (assegurate que el object lo has puesto como invisible) y entonces pones una view (o como se llame) que lo siga. las distancias no las se porque han de ser de la room, pero enel caso que la room sea de 100x100 haz que le siga a 100x100 no se si me explico, pero si hay alguna solucion creo que esta es la mas facil (o que alguien te pase un script con todo hecho)

Si la posición del botón la indicas con valores fijos, es lógico que se quede siempre en el mismo lugar. Si al mover al jugador, la vista se mueve con él, entonces hay que definir la posición del botón relativa a la posición de la vista (que se mueve con el jugador) para que el botón se mueva con la vista. Variables que indican la posición de la vista:

http://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/views/view_xview.html

http://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/views/view_yview.html

#3 Enero 02, 2015, 01:41:30 PM Ultima modificación: Enero 02, 2015, 02:36:20 PM por zHeMaa
Cita de: THE_ALS12 en Diciembre 31, 2014, 05:13:46 PM
yo soy muy raro eeee pero podrias provar de hacer un object el qual lo movieras con las flechas arriba y abajo, luego, en la room añades el object (assegurate que el object lo has puesto como invisible) y entonces pones una view (o como se llame) que lo siga. las distancias no las se porque han de ser de la room, pero enel caso que la room sea de 100x100 haz que le siga a 100x100 no se si me explico, pero si hay alguna solucion creo que esta es la mas facil (o que alguien te pase un script con todo hecho)

He probado de hacer eso y si, se mueve el objeto pero si por ejemplo lo pongo en la esquina inferior izquierda el personaje cuando baje para abajo de la room el objeto se sale de ella.. Funcionar funciona pero tendría muchísimos problemas si lo implantase finalmente en mi juego.. jajajajaja

Cita de: penumbra en Diciembre 31, 2014, 08:12:27 PM
Si la posición del botón la indicas con valores fijos, es lógico que se quede siempre en el mismo lugar. Si al mover al jugador, la vista se mueve con él, entonces hay que definir la posición del botón relativa a la posición de la vista (que se mueve con el jugador) para que el botón se mueva con la vista. Variables que indican la posición de la vista:

http://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/views/view_xview.html
http://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/views/view_yview.html

He echo caso de tu código pero en draw_sprite y hace lo que me hacia anteriormente, solamente me dibuja el sprite en la pantalla, me lo dibuja en las coordenadas que yo quiero exactamente y si me muevo, se sigue quedando ahí. Pero el problema sigue siendo el mismo.. que solamente funciona el objeto "original" por decirlo así, vamos.. el que cuando abro la room lo coloco donde yo quiero, y cuando entro al juego esta ahí, el que se que dibuja con draw_sprite no funciona, se ve, y se mueve, pero el botón es inutilizable.

Dejo dos capturas donde se ve el uso del botón, en la 1 es el objeto colocado desde la room, y el 2 es el dibujado por draw_sprite, como veréis cuando dejo el cursor (punto negro en la imagen) en la primera imagen que es el signo "+", se oscurece la foto (eso es que el boton detecta el cursor), y cuando lo pongo en draw_sprite se queda igual. No lo detecta.

Aclaro que el botón es el signo de "+".
El cursor el punto negro.
El objeto original (el que yo coloco en la room) es el de arriba y el dibujado (draw_sprite) el de abajo.

El nuevo código de del object en DRAW END:
draw_sprite(sprite_index, image_index, view_xview[0] + 300, view_yview[0] + 300);

Gracias por responderme!  :)

Prueba en ponerlo como persistente en las propiedades del objeto.
PCNONOGames  www.pcnono.es

Cita de: nonoroman en Enero 02, 2015, 04:31:38 PM
Prueba en ponerlo como persistente en las propiedades del objeto.

Nada.. lo único que hace es que me aparezca el mismo botón en todas las rooms..

Supongo que tiene que haber alguna manera ya que muchos juegos para android (como es mi caso) tienen botones que se mueven conforme se mueve la pantalla.

Podéis probar lo que me pasa ami exactamente. Aqui os dejo el código y lo comprobáis vosotros mismos:

LEFT PRESSED:
//Un codigo que os haga algo para que os entereis de si funciona o no, en mi caso tengo una barra de experiencia, y aqui basicamente lo que he echo ha sido hacer que me sume 30 de experiencia cada vez que pulso el boton, seria algo tan simple como "global.experiencia += 30;"

DRAW END:
draw_sprite(sprite_index,image_index,300 + view_xview, 300 + view_yview);

Luego lo ponéis en la room y vereis como os sale el botón que habéis puesto y el del draw (que no hace nada, cuando eso es lo que yo busco).

Gracias a todos por echarme una mano!  :)

Cita de: zHeMaa en Enero 02, 2015, 06:04:39 PM
DRAW END:
draw_sprite(sprite_index,image_index,300 + view_xview, 300 + view_yview);
Luego lo ponéis en la room y vereis como os sale el botón que habéis puesto y el del draw (que no hace nada, cuando eso es lo que yo busco).

Cita de: penumbra en Diciembre 31, 2014, 08:12:27 PM
Si la posición del botón la indicas con valores fijos, es lógico que se quede siempre en el mismo lugar. Si al mover al jugador, la vista se mueve con él, entonces hay que definir la posición del botón relativa a la posición de la vista (que se mueve con el jugador) para que el botón se mueva con la vista. Variables que indican la posición de la vista:
No se debe usar draw_sprite. El botón es un OBJETO, draw_sprite símplemente dibuja un SPRITE independiente del objeto. Se puede dibujar 10 veces el mismo sprite, o diferentes sprites, pero eso no cambia nada, sigue habiendo un solo botón, el cual no lo estás moviendo como debe ser.

En mi mensaje, yo me refiero a la posición del objeto, y eso no se maneja mediante draw_sprite, sino directamente mediante sus variables de posición x e y.

Muchas gracias penumbra, lo acabo de pillar y a base de ver ejemplo y probar he logrado que el objeto se quede donde yo quiera de la pantalla, no se si lo he echo de la mejor manera o no.. aquí te dejo el código haber:

STEP:
x = view_xview[0] + 32;
y = view_yview[0] + 512;


Lo malo es que cuando el personaje camina el botón se mueve un poquito (hace como un temblor muy pequeño), supongo que no es la mejor pero al menos con esto ya puedo ir tirando, si me recomiendas algo mejor dímelo, porque me tiene loco ya..

Gracias! un saludo!  :)