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

16
CitarSi agregas tantas cosas para un simple shooter, no me imagino para un juego de plataformas o mas aun, un Online, en el que debes hacer los menos cambios posibles, sino no tendras buena comunicacion. 
Ah, es que ya ese es otro tema. Si hablamos de plataformas la cosa cambia y en ese caso no sería recomendable el método anterior. Aunque eso tambien depende de que tipo de juego de plataformas quieres hacer: Si quieres hacer un metroidvania, vale no sirve. Pero si quieres hacer un Canabalt o un Robot unicorn es lo mas recomendable.

CitarNunca va a ser mejor agregar tantas cosas, menos para cosas simples.
Esto ya es un asunto de mentalidad personal. Yo siempre preferiré más optimización aunque eso incluya hacer muchas lineas de código extra. Creo que con los pcs tan potentes que estan saliendo al mercado los desarrolladores han empezado a tener la mala costumbre de hacer casi nula optimizacion de los juegos, lo cual es lamentable. o ya me dices del famoso Crysis, que era un mostruo graficamente pero esta horriblemente optimizado. Ellos mismos se dieron cuenta del error cometido, y su siguiente version del motor grafico lo optimizaron mucho más. Te das cuenta que si es preferible hacer muchas mas cosas, con tal que el producto final sea mejor?
17
Aunque no lo creas Manu, la forma más eficiente aunque mucho más complicada es la forma que menciona Sobaco

1.- Tienes razon, no los puedes ubicar en el room manualmente, pero no se utilizan eventos step, con alarmas basta y sobra.

2.- Lo de las balas es relativo. Simplemente juega con las velocidades al disparar y listo. No es tan complicado como parece.

3.- Nuevamente: Uso de alarmas, o mejor aun, timelines. Ejemplo:
step 1: creo 3 aviones
step 400: 5 aviones mas
step 1500: Unos helicopteros
step 151215615861: Un jefe final.

4.- La mayoria de los juegos de naves tienen 1 o 2 checkpoints durante el recorrido. Un par de variables guardando que checkpoint alcanzaste y almacenando las coordenadas basta y sobra.

5.-Es una idea. Te comento esto porque yo igual cree años atras un shooter con este estilo y mira que funciona bien. No te niego que crear escenarios vistosos y divertidos es complejo de esta manera, pero es muchisimo mas eficiente ya que no tienes que recorrer un room de 15.000 pixeles de largo "precargado" desde antes.  Es cosa de estilos.
18
 Me pareció muy bueno y entretenido. Me gustó la opción de los diferentes combos, muy bien logrados. Aunque el motor lo encontre un poco tirante, le falta mas fluidez al movimiento.
  Me recordó al Beast of rage, pero este es mucho mejor aunque aun le falta más :)  La IA es correcta para este tipo de juegos.
  Logre sacar el especial de Mai y atena (a,a,a,s) pero no el de Shermie. Al igual que sus 4 combos principales.
  Suerte con tu proyecto, hay muy pocos punchi punchi en Game Maker y mejor aun si es de KoF xD
19
En los eventos cuando tu personaje cambie de direccion (al apretar izquierda, o algun otro boton) y tienes un sprite o imagen llamada sprite_caminando debes colocar este código:

sprite_index = sprite_caminando

Y asi, debes poner un trocito de código parecido en todos los eventos donde quieres cambiar de imagen. Luego, en el evento Draw simplemente pones.

draw_sprite(sprite_index, -1, x, y)

Ahora, te recomiendo que uses un objeto aparte para dibujar cosas que sean ajenas al personaje principal. Yo uso un objeto invisible llamado Control que se encarga de dibujar y controlar variables que sean relativas al juego en si (vidas, puntaje, etc). Es un consejo :)
20
Preguntas y respuestas / Re:asignar turnos
Junio 08, 2012, 08:34:30 AM
 Genial, juego de cartas. Te puedo ayudar ya que hace bastante tiempo experimente creando uno. Es un tema dificil, ya que se basa en como programe cada uno.
 
La pregunta más facil de responder es la 3. Para obtener el ID de un objeto recien creado es asi:

id_objeto = instance_create(x, y, objeto)

Para usar esa id, basta con:

with(id_objeto) speed = 5

//Otra opcion

id_objeto.x = 15
id_objeto.y = 20


La segunda pregunta es más complicada, yo lo hago de la siguiente forma:

- Creo un objeto invisible llamado Control, es quien se encargará de asignar turnos y varias cosillas más.
- En el evento Create del objeto Control creo una variable llamada global.jugadorTurno = 1
- Agrego un evento Alarm[0] que tendrá todas las opciones de fin de turno

  En el juego, cuando se necesite terminar el turno de un jugador, se tiene que llamar al evento alarm[0] del Control

with(Control) alarm[0] = 1

Un ejemplo del codigo que funciona en alarm[0] del Control puede ser:

if global.jugadorTurno = 1
{
          show_message("Ha terminado el turno del jugador 1")
          //Hacer lo que quieras para terminar el turno
          global.jugadorTurno = 2
}
else
{
          show_message("Ha terminado el turno del jugador 2")
          //Hacer lo que quieras para terminar el turno
          global.jugadorTurno = 1
}


Ahora, con esa pequeña explicación puedes realizar la primera pregunta. Al seleccionar una carta, esta puede tener una variable con la cantidad de turnos que tienen que pasar para activarse. Al terminar el turno, en el evento alarm[0] de Control puedes restarle 1 al contador de la carta. El objeto Control o la misma carta pueden verificar si la carta ya esta lista para activarse, por ejemplo de esta manera

if cantTurnos <= 0
{
        //Se puede activar la carta
        puedeActivar = true
}


Y asi, te di una idea. Si me pudiste entender bien, si no solo pregunta :)
21
 El sistema que usas (jump to position) es un buen método de movimiento y mejor que usar hspeed, pero si lo que quieres es tener aceleramiento y/o friccion ya no te sirven los tutoriales básicos de plataformas, necesitas código más rebuscado.
   Dices que eres muy novato en esto, y te podrías complicar bastante. Es muy necesario que tu juego tenga fricción? 
   Te dejo 2 ejemplos de la comunidad oficial, ambos usan friccion y aceleracion en el personaje. Puedes echarle un vistazo para que te ideas :)
22
 Jaja, mejor es mirar ejemplos acá o en la comu oficial, ya que hay funciones que jamás sabrás para que se usan aunque leas el manual.
23
 Usando variable y alarmas. Es algo asi:

- El personaje principal al ser creado puede golpearse.
- Al tocar un fantasma, si el personaje puede golpearse, el fantasma le quita 1 vida. Luego, se modifica el estado para que no pueda golpearse al personaje y se llama una alarma (yo le puse 1 segundo de duracion, puedes aumentarlo a gusto).
- Al cumplise el tiempo de la alarma, el personaje puede volver a ser golpeado otra vez.

  Le quite la opción Solid al fantasma para que no haya problemas de colisión.
24
 Ahora bien, si lo que quieres es usar una letra igual a la de un juego, puedes probar usando la funcion font_add_sprite, que te permite elegir una font creada a partir de un sprite. Debes tener cuidado con el orden que tenga el sprite con las letras, ya que deben seguir un orden especifico o te quedará un desastre  XD
  Te adjunto un ejemplo, las letras las puedes conseguir en la web. Yo uso el programa Bitmap Font Writer
25
Mmmm... parece que el problema es que elegiste un mal evento para el objeto árbol. Supongo que los arboles jamas se moverán en el mapa cierto? En ese caso cambia el evento Step por el evento Create y nada más. Servirá lo mismo, ya que supongo ese código es para darle efecto isometrico al juego.
  Pruebalo y avisas que tal mejoró el rendimiento
26
Juegos completos / Re:Vampirako (Versión clásica)
Junio 05, 2012, 12:19:55 AM
 Yo este juego me lo pasé 100 años atrás, aunque esa vez me corría lento en mi antiguo Pentium 3 :) Que más decir, es excelente, me lo bajo y lo paso de nuevo.

PD: Gracias por la dedicatoria.
27
 De nada, tómalo como retribución de todo lo que me ayudaron a mi tiempo atrás :)
28
 Para mi igual es medio dificil de entender y no se muy bien porque ocurre, pero es algo menos así: Mientras más velocidad tenga un objeto, más problemas tiene Game Maker con las colisiones. En este caso detecta unos pixeles antes de caer la colision con piso y vuelve la vspeed del personaje a 0, pero como aun falta algo para llegar al suelo, la gravedad hace su funcion y vuelve a caer nuevamente.
   Para que no suceda eso, cuando GM detecte erroneamente la colision antes de tiempo, en vez de que la vspeed se vuelva 0, le decimos que se mueva hacia abajo hasta encontrar un solido, y luego que la vspeed sea 0.
   Espero te haya quedado más claro.
29
  Te adjunto el engine corregido. El unico cambio que le hice fue mejorar el evento colision con piso del objeto principal. La idea es que al chocar con el pregunte "Si el saltador estaba cayendo y no tiene espacio libre hacia abajo, entonces que se mueva hasta hacer contacto con algo sólido hacia abajo". Me salió medio enredado :P
  Y listo, funciona :)
30
 Te voy a responder usando el mismo engine que usaste en el otro tema, solo le modifique la accion que realiza el objeto plataforma cuando la niña esta arriba de el (evento step), unas palabritas mas y listo, funciona :)