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

1606
Preguntas y respuestas / Re:ayuda como tipo tiburon
Mayo 13, 2014, 08:10:24 PM
Si vspeed = -8 hace que el tiburón vaya para arriba, vspeed = 8 haría que fuera hacia abajo. Tú eres el que sabe qué tan alto debe llegar el tiburón antes de regresar al agua.

if (tiburon.y > altura_maxima)
    vspeed = -8
else
    vspeed = 8

Pero lo mejor sería usar gravedad u otro código que vaya desacelerando el salto del tiburón y termine por hacerlo caer, porque el código que puse hace que cambie de dirección muy drásticamente, lo cual creo que no se vería bien.
1607
Preguntas y respuestas / Re:¿Poner random?
Mayo 13, 2014, 07:44:12 PM
o usar la función random que devuelve enteros:

randomize()
accion_enemigo = irandom_range(1,3)
1608
Creo que lo que quiere es que el personaje comience con cierta velocidad y luego de dos segundos se desacelere, aunque no me queda claro qué significa "se pase a normal", así que no sé si se trata de avanzar más lento o detenerse por completo.

envión ~ empujón, impulso
1609
Preguntas y respuestas / Re:Duda con el view_angle
Mayo 13, 2014, 06:11:21 AM
Cita de: tapasa en Mayo 12, 2014, 09:39:51 PM
Alguien sabe que podria hacer? u.u

Game Maker hace lo que le ordenas hacer. No notas que la cámara gire porque le estás diciendo que de una sola vez, haga un giro de 90 grados. Para que puedas apreciar el giro, tienes que hacer rotaciones o giros de a poco. ¿Qué tan poco? Eso ya depende de ti, pero sería algo como view_angle[0] += 1;

Es obvio que necesitas más código para controlar el giro, seguro no quieres que la cámara rote indefinidamente, sino que al haber completado 90°, se detenga.
1610
La última parte de el manual es una REFERENCIA, es decir, más que para aprenderse cada función, sirve para consultar cuando haga falta. Incluso los programadores profesionales usan manuales de referencia y no buscan aprenderse cada función. Ojo, no estoy diciendo que no leas el manual, al contrario, leerlo de vez en cuando aunque no estés buscando una función en especifico te sirve para saber de qué maneras puedes resolver problemas o implementar soluciones en tus juegos.

No hay una regla que diga que sólo uses el manual en la fase de "aprendizaje" de GM/GML. El manual se puede usar en cualquier momento que sea necesario, seas novato o experto. Obviamente que conforme se van usando funciones con regularidad, se van quedando guardadas en la memoria, pero esto es una consecuencia de, no un objetivo. De momento no existe ningún premio a la persona que sepa más funciones "de memoria"

Cita de: Jangse en Mayo 12, 2014, 04:54:16 PM
El juego de GM 8 (que no he acabado), a medida que lo hacia, iba buscando -o preguntando- las funciones que me hacían falta. No se si es el mejor método para hacerlo también con GMS.
Cuando se busca una función, el mejor método es el manual, es más rápido que escribir un tema en el foro y esperar a que te respondan.

Cita de: Jangse en Mayo 12, 2014, 04:54:16 PM
Por lo que veo la función sleep ya no existe. Y supongo que pasará con muchas mas.
Aquí puedes ver todas las funciones obsoletas http://docs.yoyogames.com/source/dadiospice/002_reference/017_obsolete%20functions/index.html
1611
Dos cosas:

1. me parece que el código lo pusiste en CREATE, porque ahí veo que estás declarando algunas variables. El código deber ir en STEP

2. Como estás usando un objeto "muere" especialmente para la animación de muerte, debes crear ese objeto también, es decir, en lugar de
   sprite_index =muere
   debes usar
   instance_create(x, y, obj_muere)

El detalle es que en x e y debes poner las coordenadas donde estaba el jugador, sino el objeto "muere" aparecerá en otro lugar distinto, lo que seguramente se verá mal
1612
Preguntas y respuestas / Re:no guarda la sprite D:
Mayo 11, 2014, 10:37:39 PM
cualquier cambio que quieras que permanezca después de cerrar la partida o después de apagar y volver a iniciar, se debe guardar en un archivo de texto o en un archivo ini, mismo archivo que tiene que ser leído cada que se continúe una partida previa. Resumiendo, debes crear un sistema de guardado para tu juego, o los cambios no se guardarán al cerrarlo.
1613
if (vida <= 0)
    muerte = 1

if (muerte == true)
{
     sprite_index = spr_death
     instance_create(room_width/2, room_height/2, obj_fin_juego)
}

El obj_fin_juego tendría un sprite con el grafico de "game over" y una alarma que a los tantos segundos haga game_restart() o game_end()
1614
Cita de: Xizotono en Mayo 11, 2014, 09:37:02 PM
Soy el unico que hace proyectos simples ¿? parezco especial  :'(

Me había reservado de comentar porque sabía lo que se venía. Si preguntas, todos te van a dar opciones, que pon esto, que pon aquello, que esto sí, que esto no. Yo pienso que lo mejor es hacerle caso al instinto. haz tu juego como tu sientas que deba ser, al final es imposible complacer a todos, ni se puede congeniar con todas las ideas. Si fallas, se te sale mal, si no es lo que esperabas, te queda la experiencia y la oportunidad de mejorar, y si es un éxito, pues qué mejor.
1615
Al colisionar con el enemigo, lo primero que debes hacer, antes que restar vida o energía o salud, etc, es preguntar si se PUEDE hacer daño, usando alguna variable, como "hit", "golpe" o la que se te ocurra.
Si hit == true ---> hacer daño, se entiende que si hit es false, no se puede hacer daño. Al empezar el juego, el jugador debería recibir daño, por loque  en su [CREATE] hit = 1

Cuando el jugador es dañado, se cambia hit a 0, esto hace que en los steps siguientes, aunque haya colisión, no haya daño recibido. Es decir, el jugador está ahora en modo "invencible"

Para volver a admitir daño, se usa una alarma (que se activa cuando se recibe daño). En el evento de dicha alarma se vuelve a colocar la variable hit en 1, para que el jugador pueda ser dañado de nuevo.
1616
el tutorial de scrooling shooter muestra exactamente cómo hacer lo que pides, disparar cada "n" cantidad de tiempo. El error creo que es porque no está declarada la variable puedo_disparar
1617
¿A qué te refieres? ¿qué relación tiene que un sprite sea pequeño o grande con su profundidad?

Según entiendo
depth =-y
se usa en juegos isométricos, para que el jugador quede por enfrente de objetos con una y menor y quede por detrás de objetos con y mayor, para dar apariencia de profundidad.
1619
nada te impide ajustar el sprite que tú quieras en cualquier momento

if (sprite_index == sprite_nuevo)
    sprite_index = sprite_anterior

El usuario puede definir eventos de usuario nuevos. Puedes hacer un evento personal que detecte cuando se usa instance_change y usar ese evento para cambiar el sprite, pero no le veo mucho sentido, ya que se puede hacer lo mismo en STEP

También se puede que cada instancia guarde su sprite original en un ds_map o en un arreglo. Justo antes de cambiar la instancia se puede hacer que un objeto controlador lea ese sprite original e inmediatamente después de hacer el cambio de instancia, el controlador cambie el sprite al original que leyó del arreglo o ds_map
1620
Juegos completos / Re:Sweet valentine's Day
Mayo 10, 2014, 02:47:35 AM
Bueno, yo estoy peor que Xizotono, no tengo móvil. De hecho nunca he tenido uno  XD. Soy medio retrógrada y medio old school por lo que prácticamente no sé nada de juegos casuales y apps. Yo no puedo probarlo, pero mis familiares sí, así que le diré a mi hermana que lo pruebe en su tablet, a mi hermano que lo pruebe en su movil, y de ahí te digo qué tal, ya que tampoco se me hace justo que no te den retroalimentación cuando se ve que le pusieron no sólo esfuerzo, sino también calidad y cuidado en los detalles.