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

421
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  :).
422
Cita de: 3dgeminis en Mayo 04, 2017, 08:12:46 PM
Busca en el foro por "linterna", hay varias preguntas sobre el tema, como aqui http://www.comunidadgm.org/preguntas-y-respuestas/efecto-luz/msg55494/#msg55494
ya busque en el foro y en descargas, y están son de  :GM8: y versiones mas antiguas, edemas se borraron ejemplos por la caída sel server, razón por la cual recurrí a preguntar en un post.
423
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);
424
Cita de: knd144 en Mayo 04, 2017, 04:52:35 AM
Sí, es muy recomendable. Evita escribir código, y permite un mejor control sobre los objetos así como sobre los eventos.
Yo incluso llegué a poner un objeto como padre de todos (Enemigo, paredes, armas, items...) con una variable que indica el tipo de objeto que es.  :P
La característica sobre si es sólido o no se sobreescribe en cada hijo.
Y por la imagen parece que le salio mal, solo que su padre no tiene otro padre, ya que esa es la inquietud.
425
Cita de: Darkerman en Mayo 04, 2017, 12:14:06 AM
Yo no le veo ningun problema, ademas te ahorra mucho trabajo
Ok... si dices que no hay problema, tal vez no lo haya  :), solo que me inquieta que aya un hijo que tenga a un padre mientras este tiene un abuelo que le hereda todo a los 2 anteriores, ademas ¿que quieres demostrar con el enlace que coloco?
426
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).

427
Cita de: Darkerman en Mayo 02, 2017, 09:44:06 PM
Cita de: Naitsabes0 en Mayo 02, 2017, 08:11:52 PM
Cita de: Darkerman en Mayo 02, 2017, 06:02:46 AM
Por que no usas parents?
Todos estos son jefes con una forma distinta de combate, tendría que usar muchos eventos para deseredar, pero como todos manejan la misma variable de vida, solo necesito que colisionen con la bala.
Puedes usar un parent vacio, y pone la colision de la bala
No tengo idea de como armar ni de como debe quedar lo que usted me esta planteando  :(, todavía no tengo el conocimiento para interpretar algunos términos comunes, razón por la que he usado eventos de colisiones en vez de programarlos.
428
Cita de: desplo en Mayo 02, 2017, 06:04:37 AM
Intenta utilizar instance_place para detectar la colisión

[gml]
c1 = instance_place(x,y,obj_Jefe_Caminante);
c2 = instance_place(x,y,obj_Jefe_Merodeador);
c3 = instance_place(x,y,obj_Jefe_Centinela);
c4 = instance_place(x,y,obj_Jefe_Infernal);

if (c1 <> noone) or (c2 <> noone) or (c3 <> noone) or (c4 <> noone) {

     effect_create_above.......

}
[/gml]
El codigo de STEP me quedo asi

c1 = instance_place(x,y,obj_Jefe_Caminante);
c2 = instance_place(x,y,obj_Jefe_Merodeador);
c3 = instance_place(x,y,obj_Jefe_Centinela);
c4 = instance_place(x,y,obj_Jefe_Infernal);

if (c1 <> noone) or (c2 <> noone) or (c3 <> noone) or (c4 <> noone)

{
     effect_create_above (ef_firework,x,y,0,c_yellow);
     audio_play_sound (snd_Disparo_De_Fuego,50,false);
     global.vida_jefe -= 1;
     instance_destroy ();
}

Las balas solo se destruyen sin hacer nada de lo que aparece en { }, al menos el instance_destroy parece funcionar.
429
Cita de: Darkerman en Mayo 02, 2017, 06:02:46 AM
Por que no usas parents?
Todos estos son jefes con una forma distinta de combate, tendría que usar muchos eventos para deseredar, pero como todos manejan la misma variable de vida, solo necesito que colisionen con la bala.
430
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 { }  ????
431
Cita de: agujakp0 en Abril 30, 2017, 11:18:37 PM
Hola estoy haciendo un juego tipo terraria y en vez de instancias puse tiles para optimizar, ahora quiero saber si es pocible que de alguna manera colicione con esas tiles. :)
Gracias.
Si algo aprendí de los backgrounds o tiles, es que solo se usan para dar un buen acabado visual a la hora de crear rooms, pues he visto que programadores expertos en   :GM8: y :GMS:, que solo crean el tiles y le colocan un objeto de colision invisible, programadores que llevan como 2-10 años como ginxu, monty drake, escuela de vídeo juegos, Adderly Céspedes etc.

Otro consejo es que veas un tutorial de como crear juegos caja de arena (sandbox)  :).
432
Cita de: 3dgeminis en Abril 30, 2017, 03:34:02 AM
Intenta de esta forma:
[gml]
///COLISION JUGADOR

for(i=0; i<4; i++)
    {
     id_bola=instance_create(objJugador.x, objJugador.y, obj_Bola_Orbital)
     with(id_bola) {angulo_bola=90*other.i}
    }

instance_destroy()
[/gml]
Tu codigo fue...



¡Excelente!
433
Cita de: knd144 en Abril 30, 2017, 12:43:48 AM
Sí se generan 4, pero quién sabe dónde   XD

El problema es que estás poniendo como coordenadas (x o y) la variable "objJugador" que lo que hace es tomar el valor del id de la primera instancia del jugador. Debes hacer referencia a objJugador.x y objJugador.y; así:



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();

Hola, bueno su código no esta mal, almenos se logra apreciar que las otras 3 bolas si aparecen, aunque sea por unas décimas de segundos  ???, pero es un avance  :), por cierto modifique el código que esta arriba por si quiere ver como queda.

434
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.
435
Cita de: Parzival en Abril 25, 2017, 03:44:19 AM
Para dibujarlo en pantalla? O para ponerle minutos y segundos?

Para ponerlo en pantalla tenés que usar la funcion draw_text() dentro de algun evento draw.
Por lo general ahora, esta de moda entre los jovenes, usar draw GUI event. Para no tener que estar usando views.

En ese caso:

draw_text( 0, 0, tiempo);

ahora si querés algo con minutos o segundos el chiste es mejor, decinos asi nos reimos todos.
Ya coloque los detalles de como esta armado el código y lo que busco, es el clásico temporizador de minutos y segundos que sigue al jugador hasta que acabe el nivel (room) ¿ es idea mía o he visto mucha gente que usa portadas de NEKO? saludos.