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

46
//Detectar Al Player
if (distance_to_object(objPlayer)<14.8) and (!Muerto[0]) {
  Muerto[0] = true;
}

//Disparar
if Muerto[0] == false {

timer++;
if timer == 1
  {
   a = instance_create(x,y-15,objSoldado00_Bala);
   a.hspeed = 4*image_xscale;
   sprite_index = sprSoldado00_Disparando;
   image_speed = 0.5;
  }

if timer == 11
  {
   sprite_index = sprSoldado00_Stand;
   image_index = 0;
  }

if timer == 21
  {
   a = instance_create(x,y-15,objSoldado00_Bala);
   a.hspeed = 4*image_xscale;
   sprite_index = sprSoldado00_Disparando;
   image_speed = 0.5;
  }

if timer == room_speed*2 {timer = 0;}

} else if Muerto[0] == true {timer = -1;with (a) {instance_destroy();} }

//Cambiar el xscale
if (!Sellado) {
if instance_exists(objPlayer) and Muerto[0] == false  {
  if objPlayer.x<x {xscale = -1;}
  if objPlayer.x>x {xscale =  1 ; } 

}
}
if Muerto[1] == true {image_xscale = xscale*-1;}

image_xscale = xscale;
//Muerte animation
if Muerto[0] == true {
sprite_index = sprSoldado00_Muerte;
if timer2 == 0 {image_speed = 0.2;}
}

if Muerto[1] == true {
timer2++;
image_speed = 0;
if timer2 == 3 {image_alpha = 0;}
if timer2 == 6 {image_alpha = 1;}
if timer2 == 9 {image_alpha = 0;}
if timer2 == 12 {image_alpha = 1;}
if timer2 == 15 {image_alpha = 0;timer2 = -1;instance_destroy();}
}


En las expresiones de "if" he puesto"==". Este símbolo "==" sirve para hacer comparaciones. Es como decir si una variable es exactamente igual a un valor. Un solo "=" es para asignar valores. Espero se solucione el problema.
47
Los siguientes videotutoriales te podrían ayudar:
Video 1: https://www.youtube.com/watch?v=dYbCfhX3Hu4
Video 2: https://www.youtube.com/watch?v=xU6w0oXRoz0&t=726s

Espero te sirvan.
48
Los códigos usados en esos vídeos están bien. En el primer video implementas la gravedad y el movimiento; en el segundo video implementas los virtual keys. Si has sabido combinarlo correctamente no debería darte error.
49
Preguntas y respuestas / Re:pasar de 1000 a 1k
Agosto 13, 2017, 02:49:46 PM
En el objeto que usas para escribir la cantidad de monedas puedes hacer esto:

Evento Draw:
if (mi_variable < 1000)
{
draw_text(x,y,"Coins: "+string(mi_variable));
}
else if (mi_variable == 1000)
{
draw_text(x,y,"Coins: 1K");
}


Cambia "mi_variable" por la variable que usas para guardar el número de coins.
50
Dices que el problema aparece cuando intentas mover al personaje. ¿Cómo es el código que usas para hacer el movimiento?
51
¿Has usado C++? Gamemaker tiene su propio lenguaje de programación que es GML.
52
El evento Animation End solo se activa cuando se termina toda la animación. Nunca se activa a mitad de la animación.

Podrías probar solo a poner una sola condición en Animation end:
if (sprite_index == sprSoldado00_Muerte)
{
image_speed = 0;
image_index = 1;
Muerto[1] = true;
}
53
Preguntas y respuestas / Re:Texture Pages: Size
Agosto 13, 2017, 12:02:10 AM
Exactamente, Marth. En las propiedades del Sprite y del Background hay un apartado dedicado a Textures pages.
54
Te recomiendo usar Surfaces para hacer un paint. Si buscas "gamemaker studio painting" te salen unos cuantos videotutoriales.
55
Preguntas y respuestas / Re:Texture Pages: Size
Agosto 12, 2017, 10:49:57 PM
La siguiente entrada del blog de Yoyogames explica cómo optimizar tus juegos dentro de Gamemaker. En la sección Graphics empiezan hablando sobre las "Textures pages". Te dejo el link: https://www.yoyogames.com/blog/23/optimizing-your-games-in-gamemaker-studio

Más o menos he comprendido que Gamemaker guarda todos los gráficos en páginas (textures pages). Puedes agrupar los distintos sprites y background en diferentes páginas para que resulte más rápido localizarlos. Por ejemplo, los tiles del nivel 1 son diferentes a los tiles del nivel 2, por lo tanto puedo guardar los tiles del nivel en una página y los tiles del nivel 2 en otra página.
56
Buen aporte, Srare.
57
Podrías probar a poner un "else".

STEP
if mouse_check_button_pressed(mb_left) and v_nscont == 0
    { 
        with (ob_nfosforo1)
            { visible = true;
              presionando= true; 
            }
     }
   
else if mouse_check_button_released(mb_left)
            {
                 presionando= false;
                 v_nscont = 1;
            }     

if mouse_check_button_pressed(mb_left) and v_nscont == 1
    { 
        with (ob_nfosforo2)
            { visible = true;
              presionando= true;       
            }     
    } 
   
else if mouse_check_button_released(mb_left)
        {
                 presionando= false;
                 v_nscont = 2;   
        }     
58
Puedes indicarnos el modo en que haces cambios de resolución de pantalla. Por ejemplo, podrías decirnos la parte del código que realiza dicho cambio. También podrías decirnos si has usado algún código que implica a application_surface.

Dándonos más información sabremos responderte mejor.
59
Si solo quieres el valor entero usa irandom_range(a,b):

mi_variable = irandom_range(1,3);

Si necesitas valores decimales usa random_range(a,b):

mi_variable = random_range(1,3);

En un evento Create ejecuta:
randomize();
Para generar un nuevo patrón aleatorio, dado que de forma predeterminada Gamemaker usa el mismo patrón aleatorio. Solo llama esta función una vez.
60
Creo que podrías hacer lo siguiente:

Evento Create:
parpadeo = 0; // variable para controlar las distintas fases del efecto
alpha = 0.5; // transparencia inicial


Evento Draw:
draw_set_alpha(alpha);
draw_rectangle(x1,y1,x2,y2,false);


Evento Step:

if mouse_check_button_pressed(mb_left)
{
if (parpadeo == 0)
{
   parpadeo = 1
}
}

if (parpadeo == 1)
{
alpha -= 0.05; // hacer que alpha llegue a 0
if (alpha <= 0)
{
  parpadeo = 2;
}
else if (parpadeo == 2)
{
  alpha = 0.5; // regresamos a la transparencia inicial
parpadeo = 0;
}