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.

Temas - seed86

1
 :GMS:
Hola a todos. Tengo un proyecto de un juego a medias. Se trata de un plataformas en 2D estilo Ghouls and Goblins. Mi problema es que quiero pasar el juego de 30fps a 60fps. Cuando cambio la velocidad de la room de 30 a 60 todo va el doble de rápido. Hay alguna manera de portar todo el proyecto de 30 a 60fps sin tener que revisar cada línea de código del juego, cambiando alarmas, velocidades, gravedad y un largo etc...   :'(  Me deprimo de pensarlo, creo que la he pifiado bien.
Gacias y un saludo.


PD: quien me ayude se lleva el salir en los créditos del juego
2
 :GMS:
Hola.
Estoy haciendo un juego plataformas 2D y algunos enemigos que tienen un tamaño un poco mayor a la media dejan un cadaver que despues desaparece. El problema es que los enemigos utilizan un objeto común (par_enemy) como parent. El protagonista reacciona sufriendo daño al colisionar con cualquier enemigo con este parent y mi problema es que no se como hacer que cambie el parent cuando el enemigo muere y deja un cadaver.
Se que podría arreglar esto creando un objeto aparte para el cadaver, pero no lo quiero hacer con cada enemigo para no cargar demasiado el juego de objetos.

Un saludo y gracias por vuestro tiempo.
3
Hola a todos.
Estoy teniendo problemas a la hora de adjuntar algunos sprites animados a mi juego. Estos en lugar de tener un fondo transparente aparecen con un molesto fondo verde. he consultado en internet y decían que el pixel inferior izquierda de la imagen debe estar vacio para que el fondo lo esté, lo he comprobado y mis sprites cumplen esta condición pero aún así salen en verde.


Estoy utilizando imagenes en .gif, si alguien conoce la solución a esto le agradecería mucho que nos echase un cable.
Muchas Gracias
4
Hola a todos.
Mi juego es un plataformas 2d y quiero que cuando el personaje salte sobre unas palmeras las hojas produzcan una animación. Esta animación me gustaría que se produjera solo cuando el personaje CAE sobre ella pero con mi código la anumación se produce tambien cuando te encuentras sobre la palmera y saltas.

Este es mi código:
Create
active=1;
anime=0;


Step
//Behavior
if place_meeting(x,y-1,obj_hero_A) {anime=1}
else{active=1}

//SPRITES

if anime=1
{
  if active=1 {sprite_index = spr_palmtree_head}
  else{
  sprite_index=spr_palmtree_head;
  image_index=0;
  }
}
else
{
  sprite_index=spr_palmtree_head;
  image_index=0;
}


Animation End
if (anime = 1 and sprite_index = spr_palmtree_head)
{
     if distance_to_object(obj_hero_A)=1 {active=0}
     anime=0;
}


¿Qué creeis que debería cambiar para que la animación solo ocurriese cuando el protagonista caiga sobre la copa de la palmera?
Doy créditos. Un saludo y muchas gracias.
5
Hola a todos, estoy haciendo un juego plataformas 2D y estaba creando un objeto con apariencia de soldado que pudiese disparar tanto a la izq como a la derecha si un enemigo se le acerca. Mi problema es que el soldado no dispara la primera vez que se le acerca un enemigo, pero en cambio si se le vuelve a acercar un enemigo por segunda vez entonces la bala si se crea. Con estos soldados tambien se puede hablar y despliegan un texto, si hablo con el soldado antes de que se acerque un enemigo este dispara a la primera.
El código creo que está bien pero creo que el error esta en lo que se refiere a los sprites. Si alguien puede ayudarme se lo agradecería.

Este es el código:

Step
//On gard if an enemy is close
if distance_to_object(par_enemy) < 350
{
  attack_mode=1
  if distance_to_object(par_enemy) < 300{shoot=1}
}else
{attack_mode=0; shoot=0;}   


//Face at the nearest enemy while attack_mode is on
if(attack_mode=1)
{
  if (x < instance_nearest(x, y, par_enemy).x){image_xscale = 4;}   
  if (x > instance_nearest(x, y, par_enemy).x){image_xscale = -4;}
}


//Shoot the bullet
if sprite_index=spr_soldierA_shoot
{
  if image_index=3
  {
    if image_xscale>0 {action_create_object_motion(obj_gun_bullet,x+13,y+3,40,0)}
    if image_xscale<0 {action_create_object_motion(obj_gun_bullet,x-13,y+3,40,180)}
  }
}

//Sprites

if attack_mode=1
{
  if shoot=1
  {
  sprite_index = spr_soldierA_shoot;
    image_speed=0.5;
  }
  else  //aiming
  {
    sprite_index = spr_soldierA_shoot;       
    image_index=0;
  }
}
else
{
  if speak=0
  {
    sprite_index = spr_soldierA_speak;       
    image_index=0;
  }else                 //talking
  {
    sprite_index = spr_soldierA_speak;
    image_speed=0.5;
  }
}


Gracias y un saludo. Doy créditos a quien me ayude  ; )
6
Estoy intentando poner un background a mi juego 2D y quiero que este esté estático siempre en las mismas coordenadas aunque el jugador avance por el nivel. Para ello tengo un objeto "controller" que se encarga de esto y otras cosas. Para ello he usado en el código STEP:

background_x[0]=view_xview[0];
background_y[0]=view_yview[0];


Pero el problema es que el background se queda un poco atrás cuando el jugador avanza y no se cuadra en la pantalla hasta que el jugador se para. Es como si tuviera una latencia o una aceleración a la hora de desplazarse y queda horriblemente mal.


7
 :GMS:

Hola a todos, estoy haciendo un juego plataformas 2D estilo al Ghouls & Goblins y me gustaría hacer que cuando un enemigo muera dibujase una animación de una explosión de sangre o de una llama de fuego como en el Maldita castilla:
http://www.youtube.com/watch?v=3jcp0caeRso

Esto sabría hacerlo teniendo la sangre como un objeto aparte e indicando al objeto_enemigo que lo cree al destruirse, pero me interesa economizar el número de objetos del proyecto y quiero que se dibuje el sprite sin necesidad de crear un objeto aparte con el sprite.

De igual manera estoy teniendo problemas para dibujar el sprite de  animación de salpicadura de sangre cuando el enemigo recibe un impacto de una lanza.


En Step:

if (hp<=0)
{
  death=1
  instance_destroy();
}


En Draw
if death
{
  draw_sprite_ext(spr_blood_splat2,0,x,y,1,1,0,c_white,1);  //draw blood explosion
  image_index+=1;
}


QUien me ayude se gana salir en los créditos si lo desea. Gracias y un saludo!
8
Hola a todos.

Me gustaría saber cómo se pueden invertir los cólores de un sprite cuando este recibe daño (como una imágen en negativo) haciendo además en efecto de parpadeo. Aqui os dejo una imagen:



La imagen es del juego AVGN adventures dónde se usa este efecto y es muy vistoso. Si no si alguien sabe como hacer que el enemigo tome un tono más rojizo tambien me serviría.

Yo ya sé hacer un efecto de parpadeo cambiando el alpha del objeto pero desconozco cómo se hace el efecto de negativo o de coloreado del sprite.

Muchas gracias
9
Preguntas y respuestas / "Ghost Platforms" sin usar solid
Noviembre 13, 2013, 12:48:15 AM
Hola.
Estoy haciendo un plataformas 2D  y quiero estoy programando las típicas plataformas que puedes atravesar desde abajo pero luego al caer aterrizas sobre ella como si de un suelo se tratase.

Para ello he usado el siguiente código:

Step en el protagonista:
//Vertical Collision
if place_meeting(x,y+vsp,par_wall)
{
    while (!place_meeting(x,y+sign(vsp),par_wall)) y+=sign(vsp);
    if (sign(vsp) == 1) grounded = 1;
    vsp = 0;
   
}
else
{
    grounded = 0;
}


//Commit to movement

y += vsp;




Para hacer las plataformas utilicé dos objetos diferentes "par_ghost_floor_nosol" que no es sólido y "par_ghost_floor_sol" que tiene como parent "par_wall" que uso como suelo y pared en el juego (es sólido).
Estos objetos se alternan en función de la posición del protagonista respecto a ellos.

par_ghot_floor_nosol:
Jump-Through Platform
if obj_hero_A.y<id.y-71 //if you are above the platform (AJUSTAR VALORES CUANDO SE CAMBIEN LOS SPRITES DEL PERSONAJE!!)
    {
    instance_change(par_ghost_floor_sol,true) //the platform is solid (because it has "par_wall" as parent.
    }
   


par_ghost_floor_sol:
//Jump-Through Platform
if obj_hero_A.y>y //if you are below the platform
{
   instance_change(par_ghost_floor_nosol,true) //the platform is not solid
}


De esta manera funciona bien. Pero mi problema es que al estar basado solo en la posición del personaje, no pueden haber enemígos ni objetos sobre este suelo, ya que si el personaje principal bajase, el suelo desaparecería y todo caería al suelo.
Del mismo modo esto sería injugable a dos players porque el suelo solo reaccionaría al player1.

¿Alguien sabe algún modo de hacer esto de otra manera más eficiente y acorde a las necesidades de este juego?
Quien me ayude saldrá en los créditos de mi juego!

Muchas gracias!
10
Hola.
He programado el sistema de daño del juego. Cuando el personaje entra en contacto con un enemigo u objeto dañino, esta da un salto hacia atrás, el alpha del personaje cabia a 0.5 (semitransparente) y se hace invencible durante un corto periodo de tiempo.

Me gustaría saber cómo podría hacer que mientras el personaje es invencible que en vez de ser semitransparente todo este tiempo (como lo tengo programado) que parpadee cada uno o dos frames cambiando su alpha de 0.5 a 1. He probado con dos alarmas que hagan un bucle entre sí pero no lo he conseguido.
De momento pongo el código que tengo:

STEP del personaje:
//Damage
if hurt=1{
  alarm[3]=5;   //break the back jump
  image_alpha=0.5;
}else{
  image_alpha=1;
  alarm[2]=30; // make the character invincible for a while
}     



STEP del enemigo
if (obj_hero_A.hurt = 0)
{
  global.hp -= 1; //damage to character
  audio_play_sound(sd_miniscream, 1, false);
  obj_hero_A.hurt = 1;
  obj_hero_A.block_keys = 1;
  alarm[0] = 6;
  if (x < other.x){obj_hero_A.hsp = 30;  obj_hero_A.vsp = -15;}   
  if (x > other.x){obj_hero_A.hsp = -30; obj_hero_A.vsp = -15;}
}

11
Hola a todos.
Quisiera programar que el personaje principal de un salto hacia atrás cuando hace contacto con un enemigo o con cualquier otro elemento dañino del juego. Se trata de un plataformas 2D estilo Ghouls & Ghosts.

De momento tengo lo siguiente:

en STEP:
//Damage
if hurt=1{
  image_alpha=0.5;
}else{
  image_alpha=1;
  alarm[2]=30; // make the character invincible for a while


Cuando se hace contacto con un enemigo se activa la variable hurt del personaje y durante 30 frames es invencible. A esto quisiera añadirle el efecto de salto hacia atrás y no sé como hacer que el salto sea hacia izquierda o derecha dependiendo de la posición del personaje respecto al enemigo.
12
Estoy intentando hacer un sistema de vida estilo zelda, tan solo unos corazones en la zona superior izquierda de la pantalla, cuando el personaje recibe un golpe desaparece un corazón entero (nada de cuartos y medios corazones). Usando D&D consigo hacer que salgan todos en la misma línea pero me gustaría saber cómo hacer para que, en caso de superar los 5 corazones comenzasen a dibujarse en otra fila por debajo de esta, de forma que quedasen dos filas de 5 corazones en lugar de una de 10.

Algo así:
13
En este caso serían lanzas y no balas ya que se trata de un juego estilo ghouls N Goblins.
Mi problema es que cuando disparo una lanza en una dirección e inmediatamente disparo otra en la dirección contraria, todas las que se encuentran en pantalla cambian su sprite de derecha a izquierda (o al revés). Cómo se hace para cambiar el sprite en todo su trayecto sin que el sprite se vea afectado por nada?

Este es el código que estoy usando para ello y que tiene ese defecto:

//Spear:
if (Key_Spear) and (anime_throw = 1)
{
  spear = 1;
    anime_throw = 0;
    alarm[0] = 2;
    hsp = 0;
  if (grounded)
  {
    if (spear_rate = 1)
    {
      if (face_right) {spear_right = action_create_object_motion(obj_spear,x-40,y+10,40,0); obj_spear.image_xscale = 1;}
      if (face_left) {spear_left = action_create_object_motion(obj_spear,x+40,y+10,40,180); obj_spear.image_xscale = -1;}
      spear_rate = 0;
      alarm[1] = 5;
    }
  }
 
  else
  {
    if (spear_rate = 1)
    {
      if (face_right) {spear_right = action_create_object_motion(obj_spear,x-30,y+10,40,0); obj_spear.image_xscale = 1;}
      if (face_left) {spear_left = action_create_object_motion(obj_spear,x+30,y+10,40,180); obj_spear.image_xscale = -1;}
      spear_rate = 0;
      alarm[1] = 5;
    }
  }
}


Otro error que tengo es a la hora de crear un efecto de polvo cuando la lanza choca con una pared, cuando viaja a la derecha el polvo sale en las coordenadas que le he asignado yo (para que sea en la punta) pero si se mueve hacia la izquierda el sprite se invierte (image.xscale = -1) la nubecita de polvo sale detrás y no en la punta porque mantiene las coordenadas de antes.



¿Hay alguna manera de hacer esto mediante código o simplemente debo añadir otro objeto para la lanza en la otro dirección cos su propio código?

Gracias
14
Hola a todos soy nuevo en este foro, y probablemente me veais escribiendo por aqui a menudo ya que estoy inmerso en un proyecto en game maker Studio.

Se trata de un juego del estilo Ghouls N Ghosts. Quiero que cuando se pulse la tecla "Z" el personaje haga una animación de lanzamiento de una lanza, y mientras que esta animación esta en curso el personaje no pueda moverse. Mi problema es que cuando pulso "Z" solo aparece el primer frame de la animación (como un parpadeo) y el personaje no se queda quieto.

Os dejo el código para ver qué hay que corregir:

Key_Spear = keyboard_check_pressed(ord("Z"));

//Spear:
if (Key_Spear)
{
  if (grounded)
  {
    if (!sprite_index = spr_hero_spear)  image_index = 0;
    sprite_index = spr_hero_spear;
    instance_create(111,76,obj_spear);
    hsp = 0; 
   
  }
}