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

101
Resulta que logre resolver de cierta forma mi problema:

Ejemplo 1
Aquí hay cuadrados rojos pero no se ven. profundidad del cubo = 0 por defecto

Ejemplo 2
Aqui los cuadrados se ven incluso encima de la oscuridad. profundidad del cubo = -10

Mi problema es que no se porque los cubos no se dejan ver cuando la luz los alcanza, por lo que aumente su depth a -1 hasta llegar a -10 (10 intentos fallidos), pero esto solo provoco que los cuadrados se vieran por encima de la oscuridad y la luz.

La idea es que se comporte de la forma típica de los juegos, es decir esto.



Y claro mi código me hace ver todo o nada  :(.

Códigos:

obj_Oscuridad: Sin sprite profundidad 0 por defecto

DRAW:
///Dibuja la oscuridad
depth = -1; //ajusto la profundidad
draw_set_color(c_black)
draw_set_alpha(1) // 1 oscuro total 0.5 poco oscuro
draw_rectangle(view_xview[0]-2,view_yview[0]-
2,view_xview[0]+view_wview,view_yview[0]+view_hview,0)
draw_set_color(c_white)
draw_set_alpha(1)
//Esto es para hacer un rectángulo negro en la view.

obj_Personaje: cuadrado verde profundidad -2

DRAW:
///Creacion de la linterna
//para la apariencia de la linterna
draw_set_blend_mode(bm_add)
draw_sprite_ext(spr_Luz,0,x,y,5,5,45,c_white,0.2)
draw_sprite_ext(spr_Luz,0,x,y,1,1,0,c_white,1)
draw_set_blend_mode(bm_normal)

//para que se vea el personaje.
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle
,image_blend,image_alpha)

obj_Rojo: cuadrado rojo profundidad 0 en ejemplo 1 y -10 en ejemplo 2.

Sin codigo
102
Esto esta armado para  :GMS:.

obj_Oscuridad

DRAW:
///Dibuja la oscuridad
depth = 1; //ajusto la profundidad
draw_set_color(c_black)
draw_set_alpha(1) // 1 oscuro total 0.5 poco oscuro
draw_rectangle(view_xview[0]-2,view_yview[0]-
2,view_xview[0]+view_wview,view_yview[0]+view_hview,0)
draw_set_color(c_white)
draw_set_alpha(1)
//Esto es para hacer un rectángulo negro en la view.

obj_Personaje

STEP:
///Movimiento
if keyboard_check(ord('S')) and place_free(x,y+8){
y+=8
}
if keyboard_check(ord('W')) and place_free(x,y-8){
y-=8
}
if keyboard_check(ord('D')) and place_free(x+8,y){
x+=8
}
if keyboard_check(ord('A')) and place_free(x-8,y) {
x-=8
}

DRAW:
///Creacion de la linterna
//para la apariencia de la linterna
draw_set_blend_mode(bm_add)
draw_sprite_ext(spr_Luz,0,x,y,5,5,45,c_white,0.2)
draw_sprite_ext(spr_Luz,0,x,y,1,1,0,c_white,1)
draw_set_blend_mode(bm_normal)

//para que se vea el personaje.
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle
,image_blend,image_alpha)

Resultado esperado:

NOTA: La vista sigue al personaje, ademas juega con ellas hasta dar con la solución  :).
103
Este es el sprite: Se llama spr_Luz


El jugador: Es un cubo verde.

Mi problema es que no se crea el spr_Luz, solo aparece un rectángulo iluminado en la oscuridad, al menos todo lo demás parece estar en su sitio.


El código:

CREATE:
image_speed = 0;
scale = 0.5;
image_xscale = scale;
image_yscale = scale;
xx = 2;
yy = 2;
surf = surface_create (room_width,room_height);

STEP:
//negro
surface_set_target (surf);
//draw_set_color (c_blue); //fondo de color x no negro
draw_rectangle (0,0,room_width,room_height,0);

//luz
draw_set_blend_mode(bm_subtract);
draw_sprite_ext (spr_Luz,0,x,y,xx,yy,0,-1,1);
draw_set_blend_mode (bm_normal); //si se comenta esta linea queda con vision nocturna

surface_reset_target();

DRAW:
draw_self();
draw_surface (surf,0,0);
104
Preguntas y respuestas / Una duda sobre usar padres
Mayo 03, 2017, 11:52:26 PM
Bueno gracias al usuario Parzival por darme un largo discurso logre hacer una colisión con un objeto vació (obj_Jefe_Base), para eliminar el montón de eventos de colisión que tenia, pero esto me a provocado una inquietud.

El problema que tuve:

Tenia jefes que ya eran hijos de un objeto (objTowerParent) el cual se encarga de las variables de disparo, ya que unos jefes pelean al tacto y otros a disparos.

La solución que le di:

Pues hice que obj_Jefe_Base fuera el hijo de objTowerParent, de esa forma todos los hijos de obj_Jefe_Base pueden combatir a tacto y a distancia, claro que esto aria que obj_Jefe_Base no este vació por heredar lo de objTowerParent.

La inquietud:

¿Es recomendable que un objeto sea padre de otro mientras que a su vez este le da nietos? la verdad pregunto porque el padre termina convirtiéndose en el abuelo de los jefes  :-[, y claro objTowerParent no es persistente mientras que obj_Jefe_Base si lo es.

Bueno aqui se ve al abuelo, al padre y 3 de 8 hijos (nietos).

105
Lo nuevo: Esto es lo que cambie desde ayer.


Comente las colisiones (están en verde) para ver si funcionaba este código de step, solo logre que la bala se destruya al tocar a estos jefes, no les hace daño ni efectos de sonido  :(, cave mencionar que la vida de estos esta en un objeto controlador y no en ellos, ademas pueden apreciar que las balas solo se activan cuando colisionan con el jugador.



Otra cosa es que he probado con funciones como other, with y place_meeting, pero tal vez lo armo de forma equivocada, como debería armar este código para que se active todo lo que esta en { }  ????
106
Este power up se ve así en el juego:



Como pueden ver sale la bola al momento de tomar el power up, pero mi problema es que solo 1 de 4 gira al rededor del personaje  :-\, una en cada 90° grados y solo se mueve la derecha.

Este es el código.

obj_Bola_orbital

CREATE:
///Variables
radio_bola = 80;
angulo_bola = 0;

STEP:
x = objJugador.x + cos(degtorad(angulo_bola)) * radio_bola;
y = objJugador.y - sin(degtorad(angulo_bola)) * radio_bola;
angulo_bola = angulo_bola + 4;

obj_Poder_Bola_Orbital

COLISION JUGADOR:

instance_create(objJugador.x+90,objJugador.y,obj_Bola_Orbital);
instance_create(objJugador.x-90,objJugador.y,obj_Bola_Orbital);
instance_create(objJugador.x,objJugador.y+90,obj_Bola_Orbital);
instance_create(objJugador.x,objJugador.y-90,obj_Bola_Orbital);
instance_destroy();

Bueno también pueden usarlo para sus juegos, ademas si queda solucionado lo dejare para que alguien lo estudie  :), saludos.
107
Tengo la siguiente estructura gracias a Silver_light, no se si sera la forma correcta, pero funciona, lo malo es que uno no sabe cuanto tiempo falta para que llegue a 0, creía que saldría una especie de contador  ???, pero creo que eso debe formar parte de algún draw_GUI, algo así como cuando le dicen al jugador queda x minutos x segundos para tal cosa, al parecer tendré que agregar algún elemento para que eso funcione ¿que modificación debería ponerle a este código para que pueda ver cuantos minutos y segundos me quedan?.
CREATE:
///Tiempo inicial
tiempo = 5*30;
alarm[0] = 1;

ALARMA 0
///Contador de segundos
tiempo = tiempo -1;
alarm[0] = room_speed;

STEP:
///Tiempo actual
if (tiempo > 0) {
    tiempo = tiempo -1
    alarm[0] = room_speed
}else // tiempo es 0
game_end()
108
Preguntas y respuestas / ¿Como acelerar la música?
Abril 24, 2017, 01:08:27 AM
Bueno lo que busco es acelerar la música del juego cuando el tiempo llegue a X valor, algo así como en el juego del clasico mario bros.

Lo que se me ocurre es crear una variable llamada tiempo, la cual durara 4 minutos (240s), y crear otra variable que me indique que si tiempo es -= 60*30 (pues los 30 serian por los step), activara alguna alarma que hace que la música se acelere ¿pero como debería armar el código para eso? saludos.