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

31
Preguntas y respuestas / Re:Dudas extremas..
Marzo 01, 2014, 06:43:42 AM
Bueno, tus dudas son muy, muy, muy generales asi que te recomendaria que empezaras por leer el manual del GM (v6) te dara una idea de como funciona el GM

http://www.comunidadgm.org/manual_GM/Index.php

luego busca en el area de Descargas para ver ejemplos y Videos en Youtube.


¡Suerte!
32
Yo te recomiendo que siempre mantegas un objeto "control" para todo este tipo de cosas, sirve de mucho.

y por si quieres crear enemigos en partes especificas de la Room también puedes usar random_range(inicio, fin)

Saludos.
33
Si, los mismos de Android tienen sus entornos de desarrollo:

http://developer.android.com/tools/index.html

Y son totalmene gratis, la diferencia con el Game Maker Studio es que mientras este tiene una interfaz amigable y ya trae muchas funciones que te facilitan las tareas por estar enfocado a juegos, estas herramientas las de Android necesitan de un conocimiento avanzado de programacion. Pero de que se puede se puede y existen otras alternativas aparte de esa.

Ahorita estan regalando el Game Maker Studio: Standard, es una buena manera de empezar a usarlo y lo mejor legalmente y  ademas de que puedes exportar para Windows PC, MAC y Windows 8, este utlimo corre en tabletas tambien. Ya con el tiempo puedes ir añadiendole mas modulos:

http://www.yoyogames.com/developers/promotions/sale


Espero que esto te ayude  ;D
34
NO no hay forma, porque el GM8 esta diseñado para correr juegos en Windows no en moviles. y convieritendo los juegos del 6 o el 7 a Java no solucionaria nada ya que no estaria en condiciones correctas para correrlo, porque Java crea aplicaciones semi interpretadas y el GM tambien es interpretado asi que al final tendrias una aplicacion que necesitaria muchos recursos para inerpretarse asi misma  ???.

Con el Game Maker Studios si que puedes hacerlo, programar juegos para IOS, Android, Windows Phone etc. pero tienes que pagar una licensia de $800 o bien comprar los modulos por aparte a $200 dependiendo de a que quieras exportar.


Saludos  :)
35
Bueno, no se si haya un programa en especifico, pero puedes desinstalar normalmente el Game Maker y luego usar el programa llamado CCleaner para limpiar el registro y de paso corregir errores en el mismo.
36
¡¡¡¡¡¡¡Eh,Muchisimas Gracias por la información!!!!!!!  :D :D :D :D :D

Adiós Game Maker pirata, Hola Game Maker Studio  :love:
37
Pues nada, lo que te han dicho es el screen tearing, eso sucede porque el monitor/pantalla esta en constante borrado y redibujado de los elementos y lo hace a cada cierto tiempo (depende si es de 60hz 50hz 40hz etc) imperceptible al ojo humano. y cuando una aplicacion no esta sincronizada entonces borrara una parte y dibujara alli lo nuevo, pero aun estara dibujado lo viejo en la region que no ha sido borrada.

La solucion a eso se le llama "Sincronizacion Vertical" segun tengo entendido el GM tiene funciones para ello, pero en el mismo manual se dice que a veces no funcionara porque dependera del SO y de la tarjeta de video que tengas. tambien si el codigo no esa bien optimizado reducira el desempeño.

esto deberia solucionar el problema, o por lo menos en parte
"Use Synchronization to avoid tearing"

Pero no te preocupes, le pasa a juegos grandes y profesionales como el RE6. Se puede arreglar solo es de trastear un poco tanto el GM como tu tarjeta de video.  :)
38
La verdad, es que si en verdad te apasiona algo debes comprometerte a respear los trabajos.

Hay gente trabajando en yoyo, gente que tiene familia y gente que se gana la vida con su TRABAJO

hacer un compilador no es nada fácil (te lo digo yo estudiante de ingeniera en informatica) mucho menos un entorno de desarrollo multiplataforma.

Si en verdad quieres crear juegos, de calidad y que la gente lo aprecie, hazlo de manera legal. A ninguno de nosotros nos gustaría que nos robaran nuestro trabajo y temas como esos los puedes encontrar aquí mismo.

No te voy a decir que soy un santo, de hecho el GM8 lo tengo pirata, pero estoy ahorrando para comprarme el GM:studio MC y al igual que tu estoy muy apretado económicamente pero eso no me va a impedir comprármelo porque me apasiona el mundo de los videojuegos y desarrollarlos profesionalmente es uno de mis mas grandes sueños.

Yo no me veo programando juegos para móviles y demás en el GM:S a corto plazo, pero se que lo lograre, de aquí a 2 o 3 años.

Nada en la vida es gratis y el éxito se alcanza del esfuerzo, sacrificio y dedicación. siendo emprendedor y visionario.

La solución no es: "Me lo crackeo porque no tengo dinero"
La solución es: "Esto me apasiona y me interesa merece la pena esforzarse y sacrificarse por ello"

Porque vamos, hay que ser sinceros, nos apasiona el desarrollo de juegos, pero obviamente también vamos a querer ganar dinero y seria totalmente injusto y egoísta piratearse el programa y lucrar nosotros vendiendo la aplicación o poniendo publicidad.

A nadie le gusta que le roben, entonces no hagamos lo mismo. NO hagas lo que NO quieres que te hagan.

como ya dijo alguien practica con el pirata, pero luego comprate el original, porque así como tu aprecias su trabajo comprandolo, habrá gente que hará lo mismo con el tuyo.  ;D
39
Bueno en primer lugar no entiendo porque has puesto esto:

if vspeed<12 {vspeed=12}

aqui estas diciendo que si el personaje esta subiendo verticalmente, que entonces empieze a bajar verticalmente , si la velocidad es menor a 12 directamente te la cambiara a 12.

asi que ese codigo te anularia esto:
Citarla vspeed es -10 de esta manera solo salta cuando esta en contacto con el suelo

seria mejor algo asi : if vspeed>=12 {vspeed=12}
de este modo le estas diciendo que no caiga a velocidades mayores a 12.

Citarel personaje se mueve de izquierda a derecha con la action jump to position

Creo que alli recide el mayor problema, esta accion lo que hace es mover la instancia a una nueva posicion x,y en este caso si tienes gravedad y velocidad vertical y se da esa accion ignorara lo demas y posicionara en una nueva coordena x,y a la instancia, creo que seria mejor que usaras esto para el movimiento en x:

if keyboard_check(vk_left) {x-=5}
if keyboard_check(vk_right) {x+=5}


Espero que te ayude.
40
Lo que podrias hacer es ir guardando en un arreglo/vector las acciones que se van ejecutando y luego al ocurrir el evento/accion "deshacer", borrar el ultimo elemento y ejecutar las acciones en el arreglo.

global.accion[0]=accion1
global.accion[1]=accion2
global.accion[2]=accion3
etc...


O bien puedes usar tambien una pila, guardando el objeto antes del ultimo cambio y luego en la accion deshacer, sacar de la pila el elemento y cambiar el objeto actual por el antiguo.

global.acciones=ds_stack_create()
ds_stack_push(global.acciones,objeto/accion) //////metemos a la pila el ultimo cambio
ds_stack_pop(global.acciones)  ///////sacamos de la pila la ultima accion o cambio que se realizo.


Se que no es mucho, pero mas o menos esa seria la idea, espero que te sirva.
Saludos.
41
Amigo te aconsejo lo siguiente, algunas cosas ya te las han dicho, pero igual  XD

1. trata de que un solo objeto dibuje a todos los objetos y dejar los demas como invisibles
2. como es una jugabilidad 2D desactiva los objetos que esten fuera de la vista.
3. si tienes Sprites cuadrados o que solo sirven de adorno, desmarca la casilla que dice "presice collision checking"
4. No uses texturas muy grandes si no es necesario y trata de que sean potencias de 2
5. No uses objetos como adornos, mejor dibujarlos desde un objeto "Control"
6. en los global settings, en la pestaña Other, en la opción "Game Priority" ponle "High" o "Highest" para que el procesador le de
    mas prioridad a tu juego y tenga un incremento de velocidad.

y por ulitmo y muy importante:

7. Fijate a que frecuencia corre tu monitor si 40hz, 50hz o 60hz esto es muy importante, ya que los fps a los que corre tu juego
    tienen que ser multiplos de dicho valor.

    Por ejemplo si la fecuencia de tu monitor esta a 60hz, entonces con 30 fps , 60 fps, 120 fps etc. te ira fluido y sin bajones
    pero si esta a 40 hz entonces deberia tener 20 fps 40 fps 80 fps etc. de lo contrario sufrira de bajones en la velocidad

Hace tiempo yo hice un juego en 3D con apenas unos 12-20 objetos cubos y esferas y a 60 fps, pero cuando lo probaba los fps bajaban drasticamente y aunque optimizaba y probaba a borrar objetos, los fps apenas si se incrementaban en 1 o 5. Hasta que me di cuenta que mi monitor tenia 2 frecuencias una a 40hz y otra a 60hz y por default tenia la opcion de 40hz. Asi que una vez le cambie la frecuencia a 60hz. se soluciono el problema.

Todos estas tips ayudan a mejorar mucho el rendimiento de una aplicacon. Espero que te ayude, saludos.
42
Cita de: penumbra en Enero 29, 2014, 01:46:16 AM


Si se tiene GM 8, que es el caso, creo que una manera más sencilla de hacerlo sería así (no vale para GM:S por que quitaron funciones dinámicas)

[spoiler]
with (all)
{
     if (variable_local_exists(vida) ) and (variable_local_exists(vida) < 100)
           vida = 100
}
[/spoiler]

Eso tambien funcionaria muy bien.
pero el codgo que he puesto es para un caso en donde hay varios objetos de distintos tipos con las mismas variables locales pero solo se le quiera cambiar el valor de las variables a todos los objetos de un tipo particular.

Saludos  :)
43
Hola,Espero que esto te sirva:

En el evento Create:
guardas en una variable el primer path que quieras usar, luego inicias tu path con los parametros que quieras
y en este caso le puse una alarma a 30 steps para que se detenga.


mipath=path0
path_start(mipath,1,0,0)
alarm[0]=30


Luego en el evento de la alarma:
finalizas el Path actual, le asginas a la variable el segundo path que quieras utilizar y luego lo inicias


path_end()
mipath=path1
path_start(mipath,1,0,0)


por ultimo agregas el evento End Of Path:
como este evento se activa cuando termina un path entonces le pones una condicion de que si la variable tiene el valor del  segundo path entonces que la variable tome el valor del primer path y lo vuleves a inicar


if mipath==path1
{
mipath=path0
path_start(mipath,1,0,0)
}



ya luego si quieres que se repita solo es de llamar nuevamente al evento de la alarma, espero que esto te ayude.
Saludos  ;)
44
Que tal, veo que ya te han contestado, pero te dejo esto  que tambien  te puede ser util al querer cambiar el valor de una varible local de muchos objetos a la vez desde un solo objeto.

Ejemplo:

{
 
  for (i=0; i<instance_count; i+=1)
  {
    objeto_actual = instance_id[i];
    if (instance_exists(objeto_actual))
      if (objeto_actual.object_index == personaje)
      {
        if (objeto_actual.vida < 100)
          {objeto_actual.vida=100}
      }
  }
}


esto es muy util a la hora de tener varias instancias y querer cambiarles una variable local a un tipo de instancias y a otras no.

Saludos.  ;)