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

1801
para empezar, a cada item equipable le debes especificar sus atributos.

[obj_esc]       
globalvar shield = 5    //Defensa del ESCUDO

[obj_yel]       
globalvar helmet = 2    //Defensa del YELMO

[obj_sw]                 
globalvar sword = 4     //Ataque de la ESPADA

[obj_jugador]
it_sw = 0                   //al iniciar el juego, no hay espada equipada
it_yel = 0                   //ni yelmo equipado
it_esc = 0                  // ni escudo.

cuando el jugador recoja un item, la variable respectiva cambia a 1. Si el jugador ya recogió los tres items. it_sw = 1; it_yel = 1; it_esc = 1.

[FÓRMULAS EN EN JUGADOR]

defensa = (it_yel * helmet) + (it_esc * shield) + [cualquier otra defensa que el jugador tenga, armadura, amuletos, etc.]
ataque = (it_sw * sword) + [cualquier otra bonificación al ataque]


Si por ejemplo, el yelmo no se ha recogido, (it_yel * helmet) es igual a 0, por lo que la fórmula no se ve afectada, si el yelmo ya se recogió, (it_yel * helmet) es igual a 2, que es la bonificación por defensa que otorga el yelmo, la cual se suma a las otras bonificaciones si es que ya recogiste sus objetos.

Hay más de una manera de hacer lo que pides, ésta es una nada más.
1802
Cita de: alcyonecodigo en Marzo 13, 2014, 03:45:25 PM
part_emitter_region(global.Sname,emitter1,50,-50,50,-50,ps_shape_ellipse,1)
part_emitter_burst(global.Sname,emitter1,particle1,15)

Cita de: alcyonecodigo en Marzo 13, 2014, 06:44:46 PM
lo malo es la posición de las particulas que sigue saliendo en la esquina superior,creo que exactamente en las cordenadas 0,0.....

Pues eso es lo que le estás indicando, que cree las partículas dentro de una elipse ubicada en la esquina superior izquierda de la pantalla (incluso la mitad de la región está fuera de la pantalla, con coordenadas negativas en x e y). Esas coordenadas no pueden ser estáticas como las estás manejando, sino que deberían indicar la posición del enemigo muerto.

part_emitter_region(ps, ind, xmin, xmax, ymin, ymax, shape, distribution);
1803
Preguntas y respuestas / Re:Preguntas de pelotas xD
Marzo 13, 2014, 07:59:45 PM
Cita de: Pejota en Marzo 13, 2014, 11:59:17 AMle puse en eventos, que cuando choque con las paredes rebote.

AL usar físicas ya no se manejan así las colisiones. El sistema tradicional (el viejo) es un sistma reactivo en donde tu "te la pasas" revisando colisiones, y cuando ocurre una, REACCIONAS a esa colisión especificando acciones. El manual le llama a este sistema reactivo.

El sistema de físicas nuevo es un sistema pasivo en donde lo que haces es definir un mundo con ciertas propiedades físicas y objetos con ciertas propiedades físicas. Estas propiedades son las que controlan cómo interactuan los objetos entre sí. Por ejemplo, la densidad de un objeto y la gravedad del mundo van a definir cuánto rebota (junto con la restitucion) un objeto que cae. Aquí YA NO SE DEBEN usar las variables traducionales como gravity, vspeed, etc ni usar eventos de colisión como se hacía en el sistema viejo.

No hay medias tintas. O usas físicas para todo o usas el sistema tradicional.
1804
Otro método:

Citarcurrent_time
Devuelve el número de milisegundos que han pasado desde que la partida actual comenzó.
1805
Preguntas y respuestas / Re:Preguntas de pelotas xD
Marzo 12, 2014, 06:59:07 PM
Como lo mencioné en mi prmer respuesta: restitución.

Cita de: penumbra en Febrero 26, 2014, 10:33:49 PM
"... la restitución es una manera de describir qué tan "rebotante" es un cuerpo. Esta propiedad afecta qué tanto rebota un objeto cuando colisiona contra otro y es co-dependiente de otras fuerzas que actúan sobre la instancia, como la gravedad y la fricción.


1806
Juegos en desarrollo / Re:the song maker
Marzo 12, 2014, 08:50:22 AM
Un proyecto bastante exótico. No se ven muchos de este tipo, y es curioso que esté hecho completamente en D&D. Interesante para los que quieran explorar su lado dj  :D

El detalle es que costaría mucho trabajo armarlo de una buena librería de samples, pero como aporte, está bueno.
1807
Intenta con este conversor (no lo he usado)

http://gmc.yoyogames.com/index.php?showtopic=505903

El GM81 no me deja guardar en gmk, o no sé cómo
1808
Preguntas y respuestas / Re:Al ritmo de la musica
Marzo 12, 2014, 01:50:54 AM
Game Maker no brinda esa capacidad de detectar los bpm. De antemano se puede saber el bpm de la canción, pero es difícil saber en qué momento inicia el golpe ya que las canciones varían mucho el comienzo, es decir, no siempre una canción inicia exactamente con un golpe.

Lo más parecido sería usar algo como esto
http://gmc.yoyogames.com/index.php?showtopic=353936


  • Playback from any position in the song
  • Control global volume, instrument volume, channel volume, amplification and panning separation
  • Retrieve playback status, time, length, rows, instruments samples
  • Detect what instruments and notes are played realtime

Pero sólo funciona para archivos mod, un formato muy viejo, más que el mp3, pero que permite crear música en base a instrumentos y secuencias (parecido a midi). Necesitarías buscar una aplicación que te deje crear música en formato mod. s3m, it o xm o exportarla a esos formatos. Dudo que haya conversores mp3 > mod y si los hay no creo que la conversión sea buena. Tampoco he usado esta extensión, pero a futuro creo que se le podría sacar bastante jugo
1809
BUeno, acá está mi versión que incluye escaleras parecidas a las tuyas y un mono controlable (bastante cutre el control)  XD

A ver si te sirve. No está pulido, pero en esencia hace lo que buscas, o eso creo yo.  :-[

1810
Pues de lo que puedo deducir de esa imagen (y puede que me equivoque), es que el jugador atraviesa por la manera en que la máscara de colisión está definida. La máscara de colisión debe abarcar totalmente los pies del personaje, así como está, los pies quedarían "dentro" del escalón.

1811
Es porque lo que puso TLT fue un ejemplo, tu debes adaptarlo a tu proyecto. El error es porque las variables hp y/o muerto no existen en tu juego. Fue una manera de decir que

"Si se acabó la vida o la variable muerto está activada, poner la animación de muerto"

Debes usar tus propias variables en ese IF
1812
Cita de: abramelin en Marzo 11, 2014, 08:12:23 PM
no tendria mas sentido que al colisionar con la mascara del escalon que es cuadrada hiciera colision y punto?

¿Según tu, qué es hacer colisión y punto? ¿Detener al jugador después de la colisión? Eso era en el mundo sólido. Acá no necesariamente chocar contra un objeto se traduce en anulación de movimiento.

Pues el detalle es nada más revisar que haga colisión por encima del escalón (o sea con los pies) para detener la inercia del jugador (vspeed = 0, gravity = 0)y hacer que éste se mueva con el escalón o si hace colisión con los lados de un escalón, detener el movimiento horizontal del jugador... creo que es a lo que te refieres con esa funciones bbox que pusiste.

1813
step el código que puso tlt y animation end el código que puse
1814
Cita de: abramelin en Marzo 11, 2014, 07:42:26 PM
si el solido lo pongo en no solido y al jugador le digo que las colisiones sen all objects lo atravisa lentamente y no hace la colision, llevo un rato probando y lo hace si lo fuerzas, pero lo hace...
bien pues no me importa ponerlo en no solido mientras la colision funcione, alguna forma eficiente de abordar el problema jugando ya con no-solidos?

¡Bienvenido al mundo sin sólidos!

Son muchas las maneras de trabajar las colisiones sin sólidos. con place_free, place_empty, place_meeting, las funciones bbox_left, bbox_right, bbox_top, bbox_bottom, las funciones de colisión collision_line, collision_circle_collision_rectangle, etc, etc.

Cita de: abramelin en Marzo 11, 2014, 07:42:26 PM
al jugador le digo que las colisiones sen all objects lo atravisa lentamente y no hace la colision

Esa no es la mejor manera. Tienes que ser más preciso. No sabría decirte exactamente cual porque con todas las funciones de colisión se puede. Tienes que ir trabajando la que tenga más sentido para ti. Sea cual sea el método que uses, probablemente lo mejor sea usar objetos parent para manejar las colisiones.
1815
Una de las soluciones es.


  • Cuando mueras, usar sprite_index para reproducir el sprite (animación) de muerto (esto es obvio, creo que ya lo haces)
  • En el evento [ANIMATION END] del protagonista pones algo como

if sprite_index == spr_muerto
      game_restart()


Eso haría que sólo se reprodujera una vez la animación y al llegar a la última subimagen, el juego se reiniciara.