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

1081
Si por algún motivo, la idea de hacer la animación en el sprite, (como ha sugerido Texic) no es la solución que quieres, entonces otra opción es usar draw_sprite_part() o draw_sprite_part_ext() para dibujar el sprite progresivamente a medida que una variable va indicando qué tanto avanza el proceso. Por ejemplo, si se tiene un contador que inicie en 1, en el momento en que comienza a "nacer" el sprite y éste aumente +1 en cada step, y el valor máximo sea 100, indicando que se ha alcanzado el 100% del crecimiento del sprite, se podría usar ese contador como argumento height en la función.

draw_sprite_part(sprite,subimg,left,top,width,height,x,y)
1082
La condición del if es justamente inversa a lo que pretendes.Debería ser
[gml]
if distance_to_object (objeto)<50{
    //mover
}
[/gml]

No sé exactamente qué movimiento quieres hacer, pero x = xprevious pudiera no funcionar como imaginas.
1083
Cita de: nonoroman en Octubre 28, 2014, 10:26:07 PM
Vale, la funcion comprueba la colision contra el objeto indicado. Pero, como seria la funcion para una colision con cualquier objeto o instancia???

En la función sólo tienes que cambiar obj_enemigo por all, pero de antemano aclaro que eso PODRÍA darte problemas ya que en cuanto colisione con lo que sea de la instancia que sea, se va a reportar una colisión.

Si eso da problemas, lo mejor es usar un objeto padre que englobe todos los objetos contra los que se quiera colisionar.
1084
Las vistas se manejan igual en GM8 y GMS.

La forma "novicia" es ir al room, eligir la pestaña views, activar la casilla "enable use of views", elegir una de las 8 vistas de la lista, activar la casilla "visible when room starts", especificar el tamaño tanto de view como de port on screen y elegir (casi al final) el objeto al que sigue la vista.
1085
Para correr hacia la derecha
[gml]
if !keyboard_check(vk_righ) or !keyboard_check( ord('D') )
     correr_d = 0

if ( keyboard_check(vk_right) && keyboard_check(ord('D')) )
     correr_d = 1

if (correr_d)
{
     sprite_index= spr_run
     x += 20;
}
[/gml]
1086
Suponiendo que la barra espaciadora es el boton para cubrirse
[STEP]
[gml]
if keyboard_check(vk_space) and (atacado == false)
     guardia = 1

if !keyboard_check(vk_space)
     guardia = 0

if (guardia)
{
     sprite_index = spr_guardia
     recibe_danio = 0
}
[/gml]

La variable atacado se debe pober en 1 cuando el jugador recibe un ataque y en 0 cuando no. La variable recibe_danio se pone en 1 indicando que puede recibir daño (restar puntos de vida) y en 0 cuando no debe restarse su vida (para evitar que un solo ataque ocurra en STEPS simultaneos, por ejemplo)
1087
Preguntas y respuestas / Re:¿Porque no funciona esto?
Octubre 25, 2014, 12:02:16 PM
La fricción es mucha e impide que avance. 
1088
Enemigo [CREATE]
[gml]recibir_danio = 1             // 1= se puede recibir daño; 0 = no se puede recibir daño
vida = 20[/gml]                     //vida del enemigo

Enemigo [COLLISION EVENT with obj_espada]
[gml]
if (recibir_danio)                  //Verificar si es posible hacer daño
{
     vida -= 5                                //Quitar 5 puntos de vida
     recibir_danio = 0                      //No admitir más daño...
     alarm[0] = room_speed * 3        //...hasta que pasen 3 segundos
}[/gml]

Enemigo [ALARM 0]
[gml] recibir_danio = 1             //Después de 3 segundos, otra vez puede recibir daño [/gml]
1089
Cita de: kostra en Octubre 24, 2014, 08:57:53 PM
D: lol yo no tenía ni idea de eso jaja, una preguntica, si en el ejemplo ese del coche, usas el rectangle, la colisión la detecta con la misma mask del sprite o genera una mask rectangular con lo que pusiste? no sé si mezplikoh

La función genera una zona rectangular de colisión. En esa zona no se buscan colisiones contra cualquier instancia, sólo contra las instancias que corrrespondan al objeto que se indica en la función (el quinto parámetro). En la función puedes especificar si se toma en cuenta la colisión del rectángulo contra la máscara de colisión del objeto que llama la función, en este caso, el sprite del coche. En el ejemplo que puse, esta colisión no se toma en cuenta, pero si quisieras detectarla, el último parámetro de la función lo cambias a true.

Dicho lo anterior, la función crea algo como una nueva máscara de colisión (independiente de la máscara de colisión del objeto que llama la función) en la que se prueba si ciertos objetos/instancias entran en contacto con esa región. En mi caso, en el objeto a detectar casi siempre especifico un objeto padre, para así poder detectar instancias de distintos objetos con un parent en común.
1090
Bueno, pero si consultamos el manual, veremos que GM ya incorpora funciones que hacen justamente lo que quieres, calcular colisiones en una determinada zona (circular, elipse, rectangular...) sin recurrir a objetos adicionales.

http://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/collisions/index.html

por ejemplo, para definir la zona roja como zona de colisión en el sprite con origen en el centro:


[gml]var colision = collision_rectangle(x + 7, y - 64, x + 27, y - 42, obj_danio_automovil, false, true)[/gml]
1091
Controlar la view es lo mismo que darle un valor a dos variables. Si con esto estás teniendo problemas en D&D, al menos dale la oportunidad a GML, que escribir un valor en una variable es lo más sencillo que hay. En el objeto controlador o cámara:



Obviamente obj_player.x - 150 tienes que cambiarlo para que la cámara se mueva como tu quieres, según el sistema de disparadores que mencionas, pero lo de arriba es el ejemplo de cómo controlar la view mediante variables, que fue tu pregunta original

1092
Preguntas y respuestas / Re:Marketpalace
Octubre 23, 2014, 11:06:06 PM
Por si a alguien le interesa: A mi no me llegó la notificación de aprobación por correo, (tardaron 6 días en aprobarme la cuenta). Símplemente al entrar (ya algo amoscado) a marketplace me apareció como aprobada.

Cita de: petpan13 en Octubre 23, 2014, 10:51:41 PM
me lo denegar ahora he echo otro una duda donde subisteis el archivo comprimido para dar después escrivir el enlace de descarguen el cuestionario de yoyo

yo lo subi a mi dropbox y vosotros.

Yo apenas estoy creando mi primer asset, así que no he subido nada, pero leyendo la guía, creo que no debes usar un servicio externo par alojar tu asset, sino que el proceso se hace desde GMS y parece que al final se sube al mismo sitio de Marketplace (o eso creo). http://help.yoyogames.com/entries/68739543-GMS-Creating-And-Uploading-An-Asset-Package-To-Marketplace

Te recomiendo que lo leas. Además, hay un artículo sobre cómo crear un asset de prueba
http://help.yoyogames.com/entries/53615297-GMS-Creating-An-Asset-Package-For-Testing-Or-Personal-Use
1093
Preguntas y respuestas / Re:ANDROID Multiplayer
Octubre 23, 2014, 10:18:40 PM
Creo que el conocer la IP no es muy relevante, porque como dijo Texic, lo mejor es el enfoque en el que un servidor que se encargue de gestionar las conexiones entre "contrincantes" en lugar de intentar conectarte directamente a un dispositivo android de otra persona. Un usuario normal de Android puede que ni siquiera sepa qué es la IP o qué hacer con ella o con la IP de otro usuario.

Sería más práctico crear un sistema de login para identificarte en el servidor, entonces entre jugadores se pueden compartir sus nombres de usuario, lo que serviría para "buscarse en el servidor", conectarse mediante el servidor e iniciar un duelo.
1094
1. Si quieres algo exacto comenzaré por preguntarte cómo es que manejas las colisiones en tu juego exactamente.

2. Generalmente, tal grado de exactitud no es necesaria el 99% de las veces, porque si quieres usar un sistema que por ejemplo, sepa diferenciar si te han golpeado en la cabeza o en el pecho, hay maneras más rápidas de lograrlo sin tener que calcular distancias y puntos exactos. Yo comenzaría por indicar qué pretendes hacer en mi juego, así es probable que más usuarios tengan una idea y ofrezcan sugerencias.
1095
Creo que eso pasa más en Android que en PC, no uso Android, así que a lo mejor me equivoco, pero mi juego para PC actualmente tiene más de 100 sprites, de esos unos 50 son animados  y pesa menos de 3MB (todavía no le he metido música, aparte lo estoy haciendo en GM8).

En la GMC leí que actualmente GMS mete APIS y SDKs en las APK que puede que no se usen, por lo que el tamaño aumenta innecesariamente. Según el staff, están trabajando para que GMS sólo agrege las apis y sdks que el juego específicamente requiere, lo que disminuiría su tamaño, pero no han dado fecha de cuándo sale esa versión.

Lo que según YoYo, ocupa más espacio son las arquitecturas, por lo que se puede intentar quitar algunas, pero obviamente eso hace que se limite el número de dispositivos que pueden correr tu juego.

Esta es una base de datos con las especificaciones técnicas de móviles. Ahí puedes consultar en qué tipo de arquitectura está basado el CPU de casi cualquier smartphone
http://pdadb.net/

Generalmente x86 y Mips se usan sólo en Netbooks y similares, por lo que esas arquitecturas son las más seguras de descartar en un principio.