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 - bygdle

841
Muajaja, ¿crees que no por no haber hecho ningún juego no puedes hacerlo? XD
Yo tampoco he hecho mi primer juego, y no me he rendido y he aprendido poco a poco porque en verdad quería aprender.

¿Ahora qué sucede? ¿No entendiste la segunda explicación que te dí?, dime que es lo que te da problemas e intentaré ayudarte
842
Preguntas y respuestas / Re:Cambia
Enero 12, 2016, 01:56:12 AM
Es como el segundo tema más preguntado en el foro, ya está resuelto unas 12.000.000 veces, usa un poco el buscador xD

Agregas un evento <step>, y en él pones:
[gml]
if keyboard_check(vk_left) //si se presiona la flechita izquierda
{
   x -= 5; //se mueve a la izquierda en una velocidad de 5px/step
   sprite_index = sprite_izquierda; //se cambia el sprite al sprite_izquierda
}

if keyboard_check(vk_rigth) //si se presiona la flechita derecha
{
   x += 5; //se mueve a la derecha en una velocidad de 5px/step
   sprite_index = sprite_derecha; //se cambia el sprite al sprite_derecha
}
[/gml]

Y debería funcionar
843
Que esto no es un chat por Dios!
¿Van a escribir una frase por post?
XD :-[
844
Preguntas y respuestas / Re:Seguir a una instancia
Enero 12, 2016, 01:35:22 AM
Creo haberte respondido eso antes :-[
Usa las funciones de mp_potential, por ejemplo: mp_potential_step, la gual tiene 4 argumentos:
[gml]
mp_potential_step( xobj, yobj, spd, evtods);

donde xobj es la posición horizontal del objetivo a seguir
donde yobj es la posicion vertical del objetivo a seguir
donde spd es la velocidad a la que se mueve (en pixeles por step)
donde evtods es: Si evade/esquiva a todos los tipos de instancia (true) o solo a las solidas (false)
[/gml]
Por ejemplo:
[gml]
//Evento step:
mp_potential_step(oJugador.x,oJugador.y,4,false);
[/gml]
845
Igual yo, lo acabo de probar...
Como último recurso tendrás que pedir ayuda al equipo de soporte de yoyo, ya que estos problemas son más de yoyo que de los usuarios
846
1)- No entendiste con un solo post ¿y ya te estás rindiendo?, comienzo a perder la fe en la humanidad :-X
2)- ¿Qué parte no entendiste?
3)- No vuelvas a decir NUNCA esto:
Cita de: VicGameker en Enero 12, 2016, 12:22:05 AM
Creo que no estoy listo para eso.  :-X
O te ganarás un ciber-guantazo de mi parte por ser tan pesimista

Las views son como cámaras. Y hay 4 arrays (variables con varios datos) que te pueden servir para posicionar los dibujos.
Los dos primeros: view_xview y view_yview. Son los que marcan la posición de la view (esquina superior izquierda). Que podrían equivaler a las posiciones 0 y 0 de lo que se está viendo en pantalla.

Entonces, si quieres que se dibuje un sprite en las posiciones 32 con 23 (ES SÓLO UN EJEMPLO), no haces esto:
[gml]
draw_sprite(sprite,0,32,32);
[/gml]

Haces esto:
[gml]
draw_sprite(sprite,0,view_xview[0] + 32,view_yview[0] + 32);
[/gml]

¿Mejor?
847
Ok, perdón, error mio :-[
Ahora sí:
[gml]

var m = max(obj1.x,obj2.x);
var mn = min(obj1.x,obj2.x);

var my = max(obj1.y,obj2.y);
var mny = min(obj1.y,obj2.y);

xx = x + (m - mn);
yy = y + (my - mny);
x = xx;
y = yy;
[/gml]
A ver si sirve
848
Los archivos *.ini funcionan exactamente igual en Android.
Sólo ve "Global Game Settings", a la casilla Android>permissions y marca "WRITE EXTERNAL STORAGE"
849
Pfff...sigues sin decir nada.
Igual, te dejo algo supongo es lo que buscas:

Tienes 3 objetos: obj1, obj2 y objMedio
obj1 estará a la izquierda, obj2 a la derecha (o viceversa) y objMedio entre ambos
Entonces, en el objeto objMedio, en el <step>:
[gml]

var m = max(obj1.x,obj2.x);
var mn = min(obj1.x,obj2.x);

var my = max(obj1.y,obj2.y);
var mny = min(obj1.y,obj2.y);

x = m - mn;
y = my - mny;
[/gml]

A ver si es lo que buscas
850
fácil, debes usar los arrays view_xview, view_yview, view_wview y view_hview para hacer relativas las posiciones del HUD
Por ejemplo, normalment dibujas un sprite así:
[gml]
draw_sprite(sprite,0,32,32);
[/gml]
Pues ahora lo haces así:
[gml]
draw_sprite(sprite,0,view_xview[0] + 32,view_yview[0] + 32);
[/gml]
851
¿Pero qué plátanos es una cadean de chain chomp?
852
Queé?
¿Cómo que te ignora el índice?
Intenta hacer pruebas, cambia el tamaño (sólo un poco) de todas las views y al momento en el que quieras adaptar la resolución (cualquiera menos STEP o DRAW), escribe:

[gml]
show_message(string(view_wport[1]) + ":" + string(view_hport[1]));
[/gml]
Eso mostrará un mensaje con las resoluciones. Comprueba que las que muestra sean las que debería tener la view 1. De lo contrario... CHAN CHAN CHAN...no tendría ni idea de qué sucede

PD: Mira que la view 1 esté visible y activada
EDIT: otra cosa, no dije que no se podía ser la view 0, sino que no necesariamente debe ser la 0
853
GUAT? :-[
No entendi nada xD, explícate mejor
854
Ja, ja xD, ¿Qué nadie lee las reglas? xD, una sola pregunta por tema xD
En fin. Lo que puedes hacer, suponiendo que la caída se haga de la forma y += algo, podrías hacer de la misma forma pero con x.
Digamos, quieres que caiga en 225º, pues:
[gml]
y += algo;
x -= algo;
[/gml]

quieres que caiga en 315º, pues:
[gml]
y += algo;
x += algo;
[/gml]

quieres que caiga en 202.5º, pues:
[gml]
y += algo;
x -= (algo/2);
[/gml]

quieres que caiga en 292.5º, pues:
[gml]
y += algo;
x += (algo/2);
[/gml]

Y así con todos. Sólo debes calcular un poquito la relación de movimiento horizontal:vertical para dar en el ángulo que desees
855
Sí, debes tener activadas las view para que se puedan midificar y los cambios sean visibles.
Te explico lo de wport y hport:
Si usar los arrays view_wview y view_hview, lo harás mal, ya que estas variables equivalen al tamaño de la "sección" de la room que se muestra en pantalla, ejemplo, esto:


Y si usas esos arrays: Digamos que la room mide 1280*720. Si un dispositivo tiene esas mismas dimensiones, se verá la room completa. Pero si tiene 640*360 (la mitad), sólo se verá la mitad de la room. Pero el tamaño real del juego no cambiará y el rendimiento será igual de malo.

Pero si usas el wport y el hport, es diferente, porque no estás cambiando la parte de la room que se muestra, sino el tamaño real.

Por ejemplo, digamos en windows porque es más fácil explicarlo:

Tu room mide 1280*720, tu wview y hview miden lo mismo, y el wport y hport también.
El resultado, se verá toda la room en una ventana de 1280*720

Tu room mide 1280*720, tu wview y hview miden 640*360, y tu wport y hport miden lo mismo que la room.
El resultado, se verá la mitad de la pantalla en una ventana de 1280*720

Tu room mide 1280*720, tu wview y hview miden lo mismo, y el wport y hpor miden 640*360.
El resultado, se verá toda la room en una ventana de 640*360.

Sabiendo esto, serás capaz de entender el porqué se usa view_hport y view_wport.
Y sí, debe usarse la misma view en ambos arrays, pero no tiene que ser la view 0. Cambia el índice del array view_hport[0] y view_wport[0] al que quieras. El índice es el número de la view a modificar