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 - Mental.Gif

1
Cita de: NiuWeb en Enero 17, 2018, 12:36:15 AM
De hecho, Unity es mucho más complicado que GM.
Si el GML te parece muy complicado, ni hablar de C# que es con lo que trabaja éste.

Una cosa más: El uso de programación no "limita" al desarrollador, sino todo lo contrario. Sólo hace falta aprender.

PD: De entre todos los lenguajes de programación, el GML es de los más simples para hacer videojuegos.

gracias, ah y me exprese mal con lo de  "limitacion", me referia a que con game maker, muchos tutoriales usan directamente script en vez de usar la interfaz basica esa de arrastrar con el cursor las funcciones de saltar, correr y demas..
ya que youtubers que hacen tutoriales GM van directamente entrando a los codigos complicados
2
Hola, soy nuevo en esto de crear juegos, o bueno.. ya se algo de rpg maker.
Y en lo que es game maker, segui todo tipo de tutoriales en los scripts de codigos GML y mi conclusion es que me parece lo mas complicado y complejo del mundo de programar... es imaginacion mia o son todos los programas asi?
la interfaz basica del programa es intuitiva, pero si me limitan y tenga que recurrir a los codigos escritos a mano.. adios.

Aparte eso, quiero comprar un par de libros en amazon o ir a la fnac para estudiar Unity por mi cuenta..
se que para manipularse en Unity hace falta buenas nociones de programacion.. y mi pregunta es:

Unity es tan complejo de aprender como Game maker studio ?

muchas gracias..
3
Cita de: Mental.Gif en Enero 12, 2018, 07:38:04 PM
https://www.youtube.com/watch?v=zgD6LvR97hE
ok mirad, acabo de darme cuenta dond esta el fallo!!! no reside en la velocidad de movimiento o de animacion/sprites, sino en la colision del personaje con los bloques solidos, cuando el personaje camina se va hundiendo poco a poco (bajando repetidamente -1 Y hacia abajo) hechando a perder la animacion, o superponiendo mejor dicho, dos animaciones a la vez: cuando esta quieto y cuando camina, se activan ambas animaciones al mismo tiempo

sospecho, que el problema reside en la parte de //Animation
if (!place_meeting(x,y+1,objeto_Block))
(?)


o quizas mas probable, en la collision vertical del suelo:


//Vertical collicion

if (place_meeting(x,y+vsp,objeto_Block))
{
   while (!place_meeting(x,y+sign(vsp),objeto_Block))
   {
      y = y + sign(vsp);
   }
   vsp = 0;
}

y = y + vsp;



....que hago??  :'(


ENCONTRE EL VERDADERO FALLO!!! (disculpen las mayus) El problema no esta en ningun codigo, sino en las mascaras de la animacion!! las intercale torpemente!! ^^' pues eso, tema del bug de colisiones resuelto!!!  :D

4
Cita de: MateG_ en Enero 12, 2018, 09:55:05 PM
Me alegra que te haya servido. En cuando la animación de salto si esta posee la subida y la bajada del mismo lo que podrías hacer es que la animación fluya normalmente y que cuando llegue a su ultimo fotograma se mantenga en el mismo hasta que toque el suelo y cambie de sprite a otro según ya lo tengas armado.

Para hacer eso lo que deberías hacer es crear un evento "Animation End" en Other y escribir lo siguiente:


if sprite_index = sprite_Jum1
{
image_index = (el número del ultimo fotograma)
}



Gracias por la info!! que pena que no funcciono, cuando pega el salto no se visualiza el primer sprite y ultimo en la subida y bajada, sino que se visualizan los 2 primeros frames de la animation (son 12 en total).

acabo de darme cuenta que para crear el codigo, segui el tuto del youtuber Shaun Spalding: https://www.youtube.com/watch?v=Y6l02DcpSR4
y la cosa es que en su animation del salto: solo tiene 2 sprites para el Jump, es logico pensar que al seguir su codigo llegue a resultados similares.. asi que donde hay que cambiar la cosa esta en el codigo del evento step //animation si o si
5
Cita de: MateG_ en Enero 12, 2018, 05:59:05 PM
Buenas, 2.5 de image_speed es más alto que el 2 que pusiste antes. El problema es mientras más grande sea el número de la image_speed más rápido pasarán los fotogramas de la animación, ya que lo que hace la variable es ver cuantos fotogramas se deben pasar en un segundo multiplicandose por la velocidad de la habitación, que se puede cambiar en la sección settings de la room. Si lo que querés es que se vea más lenta la animación te recomiendo probar con números menores a 1 o 1 como máximo, por ejemplo 0.5, con el que si la velocidad de la room es 30 como predeterminado los fotogramas que van a verse en un segundo serán 15. Espero que te sirva.  ;)

muchas gracias MateG_ !!!
acabo justamente de crear el sprite del personaje saltando:

//Animation
if (!place_meeting(x,y+1,objeto_Block))
{
sprite_index = sprite_Jum1;
image_speed = 0;
if (sign(vsp) > 0) image_index =1; else image_index = 0;
}
else
{
image_speed = 1.5;
if (hsp == 0)
{
sprite_index = Sprite_Prota_Quiet;
}
else

{


sprite_index = Spr_Prota_run;

}
}

if (hsp != 0) image_xscale = sign(hsp);




ah y ya que estoy, no consigo bien editar el codigo del salto Jump!!! Cuando pega un princo el personaje, solo se visualizan 2 fotogramas de la animacion, y en teoria son 14 sprites diferentes cuando salta el sprite_Jum1, cambie el image_speed = 0; poniendo todo tipo de numeros y nada.. sigue haciendose el caganer cuando brinca  XD
6
https://www.youtube.com/watch?v=zgD6LvR97hE
ok mirad, acabo de darme cuenta dond esta el fallo!!! no reside en la velocidad de movimiento o de animacion/sprites, sino en la colision del personaje con los bloques solidos, cuando el personaje camina se va hundiendo poco a poco (bajando repetidamente -1 Y hacia abajo) hechando a perder la animacion, o superponiendo mejor dicho, dos animaciones a la vez: cuando esta quieto y cuando camina, se activan ambas animaciones al mismo tiempo

sospecho, que el problema reside en la parte de //Animation
if (!place_meeting(x,y+1,objeto_Block))
(?)


o quizas mas probable, en la collision vertical del suelo:


//Vertical collicion

if (place_meeting(x,y+vsp,objeto_Block))
{
   while (!place_meeting(x,y+sign(vsp),objeto_Block))
   {
      y = y + sign(vsp);
   }
   vsp = 0;
}

y = y + vsp;



....que hago??  :'(
7
pues no, sigue moviendose igual..
puse el texto en negrita donde esta la parte donde falla el codigo:

Citar//get the player's input
key_right = keyboard_check(vk_right);
key_left = keyboard_check(vk_left);
key_jump = keyboard_check_pressed(vk_space);

//calculate movement
var move = key_right - key_left;
hsp = move * walksp;
vsp = vsp + grv;

if (place_meeting(x,y+1,objeto_Block)) && (key_jump)
{
   vsp = -7;
}

//horizontal collision
if (place_meeting(x+hsp,y,objeto_Block))
{
   while (!place_meeting(x+sign(hsp),y,objeto_Block))
   {
      x = x + sign(hsp);
   }
   hsp = 0;
}
x = x + hsp;



//Vertical collicion

if (place_meeting(x,y+vsp,objeto_Block))
{
   while (!place_meeting(x,y+sign(vsp),objeto_Block))
   {
      y = y + sign(vsp);
   }
   vsp = 0;
}

y = y + vsp;




//Animation
if (!place_meeting(x,y+1,objeto_Block))
{
   sprite_index = Sprite_Prota_Quiet;
   image_speed = 2.5;
   if (sign(vsp) > 0) image_index =1; else image_index = 0;
}
else
{
   image_speed = 2.5;
   if (hsp == 0)
   {
      sprite_index = Sprite_Prota_Quiet;
      
   }
   else
   
   {
      
      sprite_index = Spr_Prota_run;
      
   }
}

if (hsp != 0) image_xscale = sign(hsp);


con 2.5 sigue moviendose igual, sospecho que falta añadir un image_speed en algun sitio...

debo decir tambien que el sprite de la animacion con el que segui el tutorial del youtuber es mucho mas pequeño comparando  con las dimensiones que uso yo: 188 x 400.
el videotutorial usaba tambien 4 o 5 frames de animacion del personaje corriendo, y yo uso 14 frames:



muchas gracias!!
8
Hola, tengo un problema a la hora de darle movimiento al personaje, se mueve a 300% de velocidad cuando camina!!
segui paso a paso el tutorial del youtuber Shaun Spalding (https://www.youtube.com/watch?v=Y6l02DcpSR4) esta bastante bien, pero estoy casi convencido que el problema no reside en el codigo.

porque absurdamente, al hacer un video screenshot del programa (uso gamemaker studio 2): https://youtu.be/_nLo1B7pAAM
el personaje se mueve correctamente, y en el previsualizador del programa de game maker, es decir, cuando le doy a "play" el sprite se mueve a 300%, camina normal pero el sprite se mueve en modo hyperactivo total.
quizas sea algo del render de mi ordenador.... o de las opciones de preferencias del programa, alguien me podria sacar de dudas sobre este enigma?
9
Siento el doble post pero el tema ya esta resuelto al 100% !!!
el problema de la tecla izquierda/derecha que mencione en el mensaje anterior, se resulvio reiniciando el programa :-[
un bug, si.


muchas gracias  cristopher2545 !

-tema resuelto-
10
Cita de: cristopher2545 en Enero 11, 2018, 10:06:03 PM
bueno veo que la estructura es parecida al código de shaun spalding eso es bueno te invito veas este vídeo contiene todo lo que necesitas para empezar con las colisiones:

https://www.youtube.com/watch?v=IysShLIaosk&t

si quieres un codigo ya hecho te invito veas el code source para un juego de plataformas que ya viene equipado con todo lo que nesecitas:

http://www.comunidadgm.org/desarrollo-de-scripts/platformer-'engine'-source-code/


suerte en eso!

muchisimas gracias!!! de verdad me ayudo mucho, solo una cosa, estoy 3 cuartos de hora dando vueltas al codigo de shaun spalding y no hay manera en la que encuentre el error... cuando pulso la tecla izquierda el personaje se mueve incorectamente hacia la derecha, la tecla derecha hace bien su trabajo pero la izquierda hace que mi personaje sigue la misma ruta que la derecha.. me frustra mucho no encontrar el problema, ya que parece una chorrada de lo mas facil del mundo en resolver.
este es el codigo Event del protagonista:


//get the player's input
key_right = keyboard_check(vk_right);
key_left = keyboard_check(vk_left);
key_jump = keyboard_check_pressed(vk_space);

//calculate movement
var move = key_right - key_left;
hsp = move * walksp;
vsp = vsp + grv;

if (place_meeting(x,y+1,objeto_Block)) && (key_jump)
{
vsp = -7;
}

//horizontal collision
if (place_meeting(x+hsp,y,objeto_Block))
{
while (!place_meeting(x+sign(hsp),y,objeto_Block))
{
x = x + sign(hsp);
}
hsp = 0;
}
x = x + hsp;


//Vertical collicion

if (place_meeting(x,y+vsp,objeto_Block))
{
while (!place_meeting(x,y+sign(vsp),objeto_Block))
{
y = y + sign(vsp);
}
vsp = 0;
}

y = y + vsp;

//Animation
if (!place_meeting(x,y+1,objeto_Block))
{
sprite_index = Sprite_Prota_Quiet;
image_speed = 2;
if (sign(vsp) > 0) image_index =1; else image_index = 0;
}
else
{
image_speed = 1;
if (hsp == 0)
{
sprite_index = Sprite_Prota_Quiet;
}
else
{
sprite_index = Spr_Prota_run;
}
}

if (hsp != 0) image_xscale = sign(hsp);



y en Create puse:

//Inizialize variables
grv = 0.3
hsp = 0;
vsp = 0;
walksp = 4;


11
Hola buenas, el problema que tengo (soy nuevo en game maker) esta en las colisiones, frenar el personaje contra un bloque de pared, y tambien lo de activar la gravedad para que caiga en el suelo (adjunte un video del problema en este asunto, que esta practicamente flotando en el aire el personaje)

ah, y este Este es el codigo que estoy utilizando en "objeto_Player" >>> Step:

//control del personaje - teclado
var keyLeft = -keyboard_check(vk_left);
var keyRight = keyboard_check(vk_right);

//mouvimiento del personaje
var numMove = keyLeft + keyRight;

if (numMove != 0) numMirror = numMove;

numVX = numMove * 4;

//Animation
if (numMove == 0) sprite_index = Sprite_Prota_Quiet;
else sprite_index = Spr_Prota_run;

x += numVX;

//Hotizontal Collision - [b]que pongo aqui??[/b]



tambien puse en "objeto_Player" >>> Create:

numSX = 0;
numMirror = 1;

y en "objeto_Player" >>> Draw:

draw_sprite_ext(sprite_index, image_index,x,y,numMirror,image_yscale, 0, c_white, 1);


..me imagino que lo del codigo "Mirror" sea para las teclas izquierda/derecha del personaje, activando el sprite del personaje corriendo en modo espejo para que pueda verse en ambos sentidos.

y eso, que me perdi en el horizontal collision.. ya que segui varios videos tutoriales a la vez y mezcle un codigos de un youtuber con otro codigo diferente y no se complementaban ambos codigos.. ya que usaban metodos distintos para llegar al mismo resultado..
Pues eso, muchas gracias de antemano!!