Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - Missy

1
Wow, ¿has hecho tú el diseño y todo? se nota que te lo has trabajado mucho, me encanta  :D
2
¡Muchas gracias!

He corregido el código de cambiar la página porque habías puesto lo de la última página al presionar izquierda y lo de primera página en la derecha

///Para cambiar de página
// Ir a la página anterior
if keyboard_check_pressed(vk_left)
{
    if (pagina > 1) pagina --; //página anterior
    else pagina = 1; //primera página
}

// Ir a la página siguiente
if keyboard_check_pressed(vk_right)
{
    if (pagina < numpags) pagina ++; //página siguiente
}


Y luego modifiqué lo del número de páginas, en lugar de multiplicar lo cambié por una división

///Calcula el número de páginas
numitems = ds_list_size(listmail);
numpags = ceil(numitems / 4);
3
Me gustaría saber cómo hacer para dividir en páginas los valores de una lista.

Creo una variable aparte y la llamo var
si la var = 1 ( Selección de los 4 primeras valores de la lista, o sea, de la 1 a la 4 )
si la var = 2 ( Selección de los siguientes 4 valores de la lista, o sea, de la 5 a la 8 )
etc...

Lo que pretendo hacer es que por cada 4 valores que tenga la lista, se sitúen en una página distinta, la página 1 tiene 4 valores , la página 2 las otras 4 valores que le siguen a la lista, etc...
4
Cita de: Alesxanderk en Abril 03, 2018, 08:56:18 PM
Para algo como esto, puedes usar las listas dinámicas, que ya tiene ese tipo de sistema implementado.

Puedes hacer que le ID de los objetos estén dentro de la lista dinámica y que estos sean posicionados según la lista.

Al momento de eliminar uno de la lista, eliminas el objeto y recuperas el id de los demás para moverlos a la posición que deben de ocupar.


https://bygdle.xyz/gamemaker/manual/Referencia/Estructuras_de_datos/

¡Muchas gracias!
5
Lo que yo pretendo hacer es colocar varios objetos en un orden, hasta aquí bien.


Y luego pretendo que los objetos puedan ser seleccionados, hasta aquí ningún problema.



Ahora el problema me viene cuando pretendo borrar el objeto, lo que quiero hacer es que, en este caso, el objeto 4 se convierta en el objeto 3 y regrese a la posición donde anteriormente se ubicaba el objeto 3. El objeto 5 que vuelva a donde se ubicaba el 4, y así con todos los de abajo.

Pretendo hacer algo tipo la acción de borrar un mensaje, que cuando borras un mensaje todos los mensajes de abajo se van para arriba, algo parecido a eso.

El problema es que pretendo crear una lista infinita, o sea que no haya límite de objetos, y se me dificulta bastante ya que no tengo idea como hacer exactamente lo de que cada uno de los demás objetos ocupen el lugar del objeto que falta.
6
Cita de: Clamud en Marzo 22, 2018, 06:08:38 AM
Conozco dos métodos:

1. Desactivar las instancias y copiar la applicarion surface a otra surface y dibujarla durante la pausa.

2. Usar una variable global (global.pausa). Si la variable es true, no ejecutar el código del evento Step de las instancias.

Gracias. Al final lo que hice es lo segundo, buscar 1 por 1 las acciones y pararlas con el global.pause.
7
He creado un menú de pausa y utilizo instance_deactivate_all(1) para desactivar todos los instances.
Pero al hacerlo el evento draw también se desactiva, lo que provoca que parezca que los instances han desaparecido en lugar de simplemente quedarse en pausa.
8
Cita de: 3dgeminis en Diciembre 19, 2017, 01:51:21 AM
La formula general seria : (tamaño de la view/2) - (tamaño del sprite/2)
Eso en el caso de que el origen del sprite sea 0,0.
el origen no es 0,0.
Si te refieres a la esquina del tileset, es 1346x625
Si te refieres al centro del tileset es 1752x891

Y no sé a que te refieres con el tamaño de la view.

PD: He probado la formula manualmente, con un sprite en la posición 0,0 y con ella no llego a ninguna conclusión, creo que no nos estamos entendiendo bien:

Supongo que la formula que me querías dar sería esta que acabo de crear.
ResoluciónFullscreen - ResoluciónMinimizada = z
z / 2 = z2
x + z2 = Final

¡Gracias por el código, gracias a tu código me diste una idea de cómo realizar la operación!
9
Cita de: emanuelsko en Diciembre 18, 2017, 07:39:14 PM
Ok, ahora ya entiendo mejor. Entonces lo que quieres es que el menú aparezca siempre en el centro de la pantalla sea cual sea la resolución?

Para eso puedes obtener el alto y ancho de las view y dividirlas por dos.


instance_create(view_wview[0]/2, view_hview[0]/2, obj_menu);


view_wview[0]/2 lo que hace obtener el ancho exacto de la view y dividirlo en dos
view_hview[0]/2 lo que hace obtener el alto exacto de la view y dividirlo en dos

Teniendo eso ya puedes crear el menu exactamente en el centro de la pantalla.

Claro que para que funcione correctamente, el pivote del sprite de tu menu debe estar centrado.

¿No habría alguna forma de modificar solo la posición de las views?
Crear un instance no solucionaría mi problema, principalmente porque al cambiar de modo fullscreen a modo ventana no invoca de nuevo el item, habría que configurar que todos los items se borren y se recreen de nuevo y esto sería un verdadero desastre en el código de programación, por no decir que hay como unos 40 items del menú que se descuadrarían también.
10
Cita de: 3dgeminis en Diciembre 18, 2017, 04:58:28 AM
Mmm, queres cambiar el tamaño de la view o la posicion ?

Quiero cambiar la posición, no el tamaño. El código para tamaño sería Width y Height, pero yo quiero modificar el x y el y (view_xview[0] y  view_yview[0])



Cita de: emanuelsko en Diciembre 18, 2017, 01:31:37 PM
Prueba este código que en teoría tendría que funcionar.

En un evento create coloca lo siguiente.

///Desactivamos las surfaces
application_surface_enable(false);

//Se define el tamaño de la vista nativa de nuestro juego
view_wview[0]=640; //Debes remplazar ese valor por el ancho de tu view
view_wport[0]=360; //Debes remplazar ese valor por el alto de tu view

//Establecemos las siguientes variables para que el juego adapte automáticamente la altura del view según el ancho fijo
ancho = display_get_width();
alto = display_get_height();

ratio = ancho / alto;
view_hview[0] = view_wview[0]/ratio;
view_hport[0] = view_hview[0];


Por último, en las configuraciones globales tienes que desmarcar "Keep aspect Ratio" por "Full Scale".
Se puede pulir aún más pero creo que es un inicio para comenzar a probar como se comporta el código en tu juego.
Ese código lo que hace es redimensionar, y yo estoy pidiendo modificar el x y el y, ya tengo el código y las variables declaradas, solo necesito saber si hay alguna forma de centrar la view siempre en un punto en concreto y que no se mueva de ese punto, que siga con la misma resolución.

Para que os hagáis una idea...

800x600 se vería el menú completo:


1366x768 se vería esta parte:


Lo suyo sería centrar todo en un mismo punto, en un centro: (Flecha amarilla)



Mi idea es que estés en la resolución que estés el menú se vea en el centro de la pantalla (O sea que se quede estético, sin modificar su tamaño, un menú de 800x600 que ni se amplia ni se redimensiona ni nada, está fijado, lo único que cambiaría sería la posición de la x y de la y de las views para que se vea en el centro de la pantalla del jugador, agradecería si alguien me puede explicar alguna fórmula, como yo no entiendo de dimensiones de pantalla dudo que haya una fórmula concreta para poder ajustarlo automáticamente al centro, pero de todos modos pregunto por si acaso. (El código ya lo había hecho, solo tengo que aplicar el nuevo x y el nuevo y de la resolución de usuario, eso es lo que me falta, hallar la posición nueva de las views según el tipo de resolución del usuario)
11
lo que quiero hacer es modificar el view_xview[0] y el view_yview[0] según el tipo de resolución que tenga el jugador
entonces por ejemplo en una resolución de 1366x768 sería x=1070 y=550
Mi pregunta es... ¿Tengo que asignar manualmente resolución por resolución como quiero que se vea el x y el y, o hay alguna operación matemática que me ahorre trabajo?
12
Cita de: NiuWeb en Diciembre 14, 2017, 12:16:29 PM
http://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/display_get_width.html
http://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/display_get_height.html

El problema me surge cuando intento modificar las views vía código, el programa al iniciar el fullscreen se adapta a las views de la room actual, pero al cambiar de room se estrechan y no hacen caso absoluto a las nuevas views
13
¿Cómo hago para detectar y saber cuál es la resolución del dispositivo del jugador?

Lo que quiero hacer es que, cuando sepa la resolución que usa el jugador, y entre en modo pantalla completa entonces se le cambie la resolución de pantalla y se modifiquen las VIEWS, para que así el jugador siga conservando el mismo tamaño, solo que únicamente el mapa se vería más amplio cuanta más resolución tuviese el jugador.
14
Cita de: NiuWeb en Octubre 16, 2017, 10:15:05 PM
Cita de: Missy en Octubre 16, 2017, 10:10:01 PM
¡Arreglado!
¿Cómo lo solucionaste?

Evento Pre-Draw:
///Evento Draw GUI
draw_background_tiled(background1, 0, 0);

var surfW = surface_get_width(application_surface);
var surfH = surface_get_height(application_surface);
var ratio = surfW / surfH;

var windW = display_get_gui_width();
var windH = display_get_gui_height();
var ratio2 = windW / windH;

var realW = 0, realH = 0;
if(ratio2 < ratio)
{
    realW = windW;
    realH = windW / ratio;
}
else if(ratio2 > ratio)
{
    realH = windH;
    realW = realH * ratio;
}