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

346
¿Qué pasa si lees el estado de la variable image_speed?, por ejemplo poniendo en un evento key press:

show_message("image_speed="+string(image_speed));

¿Obtienes otro valor distinto a 0.15?
347
Puedes intentar usar en el room más grande window_set_size(640,480), aunque puede crear cierto efecto de blur al escalar la imagen.
348
Preguntas y respuestas / Re:Ayuda con condicional IF
Julio 22, 2014, 11:10:47 PM
Creo que sería bueno que indicaras qué mensaje de error recibes al compilar el programa, sería más fácil entender qué está pasando. Por otra parte, object_exists indica si un objeto existe en el juego y lo que tu debieras revisar es si una instancia de ese objeto existe en el juego, en otras palabras usar instance_exists(obj_joystick) en vez de object_exists(obj_joystick).

La solución de Penumbra también te serviría si es que hay sólo un room donde sabes de antemano que no está tu objeto joystick, pero si hay varias así, lo mejor es independizarte del room y hacer lo que planteas, es decir, omitir la revisión del joystick si su instancia asociada no existe.
349
Preguntas y respuestas / Re:Funciones en GML
Julio 22, 2014, 10:56:13 PM
Efectivamente, los eventos asociados a los joysticks ya no existen en GM:S, sin embargo, si por ejemplo importas un editable hecho en GM8 que contiene objetos con código para los eventos de joystick (que antes se encontraban dentro de los eventos del mouse), GM:S mantendrá esos eventos en los objetos aunque tú no puedes agregarlos desde GM:S. Es extraño pero así es, y por el tema de la compatibilidad de legado se mantuvo la posibilidad de llamar a estos eventos con event_perform. Ahora, para detectar cambios en el estado del joystick se deben utilizar las funciones dedicadas para ello, ya sea en un evento step o donde quieras leer su estado.
350
Preguntas y respuestas / Re:Funciones en GML
Julio 22, 2014, 01:32:42 AM
event_perform(tipo,subtipo) lo que hace es ejecutar el código del evento indicado sobre la instancia actual. En esta función no se indica ninguna acción, sólo el tipo de evento. Por ejemplo, event_perform(ev_create,0) indica que debe ejecutarse el código del evento create nuevamente (ya se ejecutó cuando se creó la instancia), event_perform(ev_keypress, ord("W")) hace que se ejecute el código asociado al evento de presionar la tecla W, etc.

El objetivo de esta función es evitar repetir código cuando quieres que algo se haga no sólo cuando ocurra su evento asociado sino que también en otro momento. Por ejemplo, si tienes código asociado a la pulsación de la tecla flecha izquierda y quieres que cuando en el joystick se pulse hacia la izquierda se haga lo mismo, en vez de duplicar el código puedes "invocar" al evento con event_perform(ev_keypress,vk_left);
351
Cita de: arcanite24 en Julio 19, 2014, 07:31:09 PM

O puede que te refieras a que cuando las 3 colisionen entre sí.
En este caso lo que puedes hacer es:
-Agregar EVENTO de Colision con "Objeto" que quiras que se destruya, en este caso seria el mismo al que estas haciendo esto.
-Agrega un Execute Script con lo siguiente: instance_destroy();
-Esto hara que cuando colisione con otro objeto igual se destruya, por lo tanto si tienes 3 objetos que se "juntan" (colisionan), se van a destruir.


Yo creo que se refiere a este caso. Sin embargo, el código que propones destruiría las instancias cuando hay sólo 2 colisionando, no 3 que es lo que jaimicko pide.

Es importante aclarar que en el juego no hay objetos, hay instancias de objetos (así como en un programa en C++ los que interactúan son los objetos de clases y no las clases). Si las 3 instancias que quieres verificar que colisionan pertenecen a distintos objetos, puedes poner en el evento colisión de uno de ellos:

evento colisión de obj1 con obj2:
if place_meeting(x,y,obj3)
    {//si obj1 colisiona con obj3 además de obj2
    with instance_place(x,y,obj3)
        instance_destroy();//destruye la instancia asociada a obj3
    with other
        instance_destroy();//destruye la instancia asociada a obj2
    instance_destroy();//destruye la instancia asociada a obj1
    }

352
Tu variable global.pant la tienes que definir al comienzo del room, en el evento room start (suponiendo, como penumbra, que cuando dices "pantalla" te refieres a un room). Explícanos mejor por qué no te ha funcionado para ayudarte (es decir, dinos cómo y dónde es que le das un valor a global.pant).
353
Yo creo que más bien le sobró el "=0" y quiso decir:

CitarO sea resumiendolo si global.coin es mayor o igual a tres se haga esto: (...)

matiascarpello tendrá que volver a aclararlo.
354
Juegos completos / Re:Reblock [Win]
Julio 18, 2014, 11:23:30 PM
Hola tu padre, me alegra saber que te acuerdas de mi. Desde el 2009 estuve alejado de la comunidad y de la programación por un cambio en mis prioridades de vida. También recuerdo los tiempos en que se veía opinar con frecuencia a correojon, krakenhimoto, Wadk, J-Kun, etc. o al mismo Fenris.  :'(

Respecto al juego, pensé en hacer un modo historia pero la verdad es que me requeriría un tiempo importante de diseño gráfico y esa es una habilidad en la que no me destaco mucho; generalmente adapto sprites que encuentro en internet y vaya que me cuesta encontrar alguno que asemeje a lo que quiero. No sólo es el argumento el problema, es crear cut-scenes relatando la trama lo trabajoso en cuanto al diseño. Por eso decidí dejarlo sólo como un arcade, aunque nada impide que luego me decida a remozarlo con un modo historia... cuando tenga el tiempo para hacerlo (ahora estoy trabajando en otro proyecto de juego sobre competencias olímpicas).

Lo del joystick es cierto: traté de usar las funciones nuevas para leer los pads pero no me funcionaron (probé con un joystick de Xbox360 y otro vulgar con conexión USB y ni siquiera los detecta, al parecer porque las funciones nuevas no reconocen joysticks "antiguos" que usan DirectInput), así que me vi obligado a desenterrar un código (que de hecho publiqué hace mucho en el foro de scripts) que usa las funciones antiguas para detectar los eventos press y release del joystick. Con agrado te indico cómo lo hice si te interesa.

Saludos.
;)
355
Juegos completos / Re:Reblock [Win]
Julio 18, 2014, 02:38:59 AM
Gracias por darte la molestia de jugarlo, luckylandia007. Sería genial una versión para Android, reconozco que se me pasó por la cabeza, pero el GM:S Standard sólo me permite programar para Windows, además que debería hacerle algunas modificaciones importantes para adaptarlo al tamaño de una pantalla pequeña y aprender sobre las funciones y restricciones para dispositivos móviles. Tal vez intente una adaptación para jugar en línea contra otra persona.
356
Una forma de hacerlo es la siguiente: suponiendo que para disparar hay que hacer click en el personaje y luego arrastrar, en el evento left pressed del personaje guardas la posición del mouse: x1=mouse_x;
y1=mouse_y;


Luego, en el evento global left released mides la distancia entre el mouse y las coordenadas anteriores, mediante:

d=point_distance(x1,y1,mouse_x,mouse_y);

Esto te dará la distancia que se arrastró el mouse entre ambos puntos y con ella puedes definir el alcance del disparo.

Para lo segundo, suponiendo que la bala avanza a velocidad constante, puedes usar una alarma en la bala que le indique que es hora de volver a su lugar de origen. La puesta de la alarma debería tener la forma:

alarm[x]=floor(d/v);

donde d es la distancia que debe recorrer y v la velocidad a la que avanza la bala.

Sólo debes tener cuidado de considerar que el jugador no presione y suelte el mouse en el mismo punto o la distancia calculada será cero (simplemente ignora un intento de disparo en este caso).
357
Juegos completos / Reblock (Windows y Android)
Julio 17, 2014, 07:23:30 AM

Reblock

Puzzle

GM: Studio

Videojuego de lógica donde el jugador intercambia horizontalmente pares de piezas de colores ubicadas en un tablero para generar líneas horizontales o verticales de 3 o más bloques de un mismo color (al estilo de juegos de 3 en línea).

★6 modos diferentes
★4 niveles de dificultad
★Menú de ayuda explica los detalles del juego
★Uso de teclado, mouse o joystick (PC), o táctil (Android)
★Editor de puzzles con variadas opciones
★Posibilidad de jugar modos Arcade o Tiempo en red contra otra persona
★Replay del último juego completo
★Leaderboard online





Android: https://play.google.com/store/apps/details?id=com.Neomentor.Reblock
Windows: http://gamejolt.com/games/reblock/96067


La versión actual (2.0.1) tiene un montón de mejoras y cambios respecto a la original, destacando el rediseño completo de su aspecto gráfico (con ayuda de eams) y la incorporación de un leaderboard para registrar puntajes y tiempos record.

Video del juego


358
Si quieres ayuda, parte por indicar para cada objeto involucrado en el problema qué códigos hay en cada evento. Decir "quiero que se deslice" no es descriptivo, deberías decir, por ejemplo,
Citar"tengo una instancia que colisiona con un bloque sólido y quiero que se mueva bordeando el bloque hacia la derecha asignándole una velocidad horizontal de 6. Los códigos del objeto que quiero que se deslice y del bloque son los siguientes: etc..."
. Tómate el tiempo de redactar la pregunta, luego léela y piensa si alguien que nunca ha visto tu juego la entendería sin tener que hacer suposiciones.
359
Cita de: arcanite24 en Julio 17, 2014, 03:08:46 AM
También se podría hacer con un ciclo FOR.

En el evento CREATE

temp1 = 1;




En el evento STEP

draw_self();
for(i=0; i<=30; i+=1) {
    temp-= 0.1
}



En el evento DRAW

draw_text(x,y,"TEXTO")
draw_set_alpha(temp1);




:-X No, no, no, eso no tiene ningún sentido...

¿Cómo pones una función draw en un evento step? No va a hacer nada.

En tu evento step la variable temp1 (suponiendo que quisiste decir temp1 y no temp) la cambias de 1 a -2 en un mismo step, y cuando llega el evento draw vas a tratar de asignar un alpha de -2... malo, malo, malo... y peor todavía, asignas un alpha después de ya haber dibujado el texto... Me parece que andas muy, muy perdido...
360
Preguntas y respuestas / Re:Bucle músical
Julio 17, 2014, 03:57:04 AM
Por cierto, Marth, la respuesta es: no, no hay una función en GM:S que te permita reproducir un sonido desde una posición deseada. Lo que sugirió 7sixerCF es una solución razonable y ocupa una cantidad de memoria adicional despreciable.