Estoy tratando de realizar un efecto Slowmotion sin necesidad de estar toqueteando la velocidad de la Room, debería de tocar la velocidad de todos los objetos? y realizar el efecto ralentizado con el Speed y el image_speed? o hay alguna otra forma de realizar dicho efecto.
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.
42
Preguntas y respuestas / Efecto Cuadrado 2D
Septiembre 16, 2014, 04:31:12 PM
Buenas, estoy buscando realizar un efecto 3D con material 2D. La idea es que cuando apretes con el cursor encima y arrastres hacia un lado u otro el cubo gire en diferentes direcciones, sólo horizontalmente.
Por donde debería de comenzar, algún consejo?
Imaginaos algo al estilo Fez, un giro similar pero sin ser igual.
Por donde debería de comenzar, algún consejo?
Imaginaos algo al estilo Fez, un giro similar pero sin ser igual.
43
Preguntas y respuestas / Movimiento vertical repetitivo
Septiembre 07, 2014, 03:08:30 PM
Busco realizar un movimiento vertical repetitivo sin necesidad de usar objetos "invisibles" u objetos en los que colisione, que directamente si hace X pasos el NPC vaya hacia el lado contrario y así sucesivamente. Había pensado en realizar un Alarm para que cada X tiempo cambie de orientación sin más.
Alguien sabe otra forma si es que existe de realizar algo así?
Alguien sabe otra forma si es que existe de realizar algo así?
44
Preguntas y respuestas / Path global?
Septiembre 07, 2014, 01:09:37 PM
Se puede realizar un path para un conjunto de personajes? es decir, que el path/movimiento sea igual para todos ellos sin necesidad de poner uno a uno a mano cada path en la room.
45
Preguntas y respuestas / Afecta a todas las instancias por igual
Septiembre 05, 2014, 05:07:17 PM
He estado trasteando y haciendo que cuando haga un click encima de un enemigo este cambie de sprite pero no funciona correctamente ya que afecta al objeto en si y no a la instancia del enemigo(ya que obviamente hay varios enemigos en pantalla), a fin de cuentas acaba afectando a todos los enemigos y no sólo a 1.
Step Event del Enemigo
Lo que busco es que afecte a cada instancia sin importarle el resto, creo que puede ser por el hecho de estar en el Step Event..
Al final trastee, le añadi un "}else{ global.click_enemie = false;}"(que vi que me faltaba) y lo puse en el evento de click, quitando así también el mouse_check_button_pressed
Edito: Me he dado cuenta de que hay un pequeño retraso cuando le quiero dar click a otro enemigo le doy pero no hace efecto lo que quiero que suceda, le tengo que dar unas 2-3 veces para que me haga caso.
Step Event del Enemigo
Código [Seleccionar]
if mouse_check_button_pressed(mb_right) and global.click_enemie = false{
sprite_index = spr_enemie_dead;
image_speed = 1;
global.click_enemie = true;
}
Lo que busco es que afecte a cada instancia sin importarle el resto, creo que puede ser por el hecho de estar en el Step Event..
Al final trastee, le añadi un "}else{ global.click_enemie = false;}"(que vi que me faltaba) y lo puse en el evento de click, quitando así también el mouse_check_button_pressed
Edito: Me he dado cuenta de que hay un pequeño retraso cuando le quiero dar click a otro enemigo le doy pero no hace efecto lo que quiero que suceda, le tengo que dar unas 2-3 veces para que me haga caso.
46
Preguntas y respuestas / Alisado en un texto (Sprite)
Septiembre 03, 2014, 05:23:52 PM
Se puede poner antialisado a un rectangulo, circulo, triangulo, pero no a un texto? El texto lo quiero como Sprite para poderlo editar junto a otras imágenes y quiero trabajar con él, por eso se me hace raro que no haya visto ninguna opción de antialisado para el texto. Sé que si lo escribes como draw_text ya en la propia fuente se le puede especificar, pero en un sprite con el editor de game maker?
47
Preguntas y respuestas / Dudas rellenar color texto
Septiembre 02, 2014, 12:18:09 PM
Buenas tenia una duda, cómo podría poner 2 colores a un texto? es decir, tengo un tipo de fuente que viene con un borde y el relleno es transparente, cual es la forma de especificarle a Game Maker que quiero que la zona transparente tenga otro tipo de color?
Y otra duda tonta, cuando haces un Draw_text se supone que no tiene mascara de colisión, tendría que hacer una mascara especifica con un sprite para ese mismo texto o se podría de alguna forma crear una máscara de colisión que se adapte perfectamente al tipo de texto que se muestra en pantalla.
Y otra duda tonta, cuando haces un Draw_text se supone que no tiene mascara de colisión, tendría que hacer una mascara especifica con un sprite para ese mismo texto o se podría de alguna forma crear una máscara de colisión que se adapte perfectamente al tipo de texto que se muestra en pantalla.
48
Preguntas y respuestas / Problema con la cámara
Agosto 03, 2014, 01:14:37 PM
Quería saber si había alguna forma de hacer que la cámara siguiese al personaje principal desde una zona izquierda, sin tener que ser siempre el centro de la pantalla, y sin perjudicar el centro de las coordenadas del personaje.
Por mucho que le ponga un Hbor de 700 no se me queda en la zona izquierda de la pantalla, imaginando que la pantalla es de 800 pixeles horizontales y 600 verticales.
Por mucho que le ponga un Hbor de 700 no se me queda en la zona izquierda de la pantalla, imaginando que la pantalla es de 800 pixeles horizontales y 600 verticales.
49
Preguntas y respuestas / Colisión de un solo lado del sprite?
Agosto 01, 2014, 04:19:40 PM
Cómo se le puede indicar a Game maker la colisión en un solo lado del sprite? O por ejemplo que identifique cuando colisiona con uno de los lados de un objeto sin necesidad que sean todos sus lados, sólo uno, por ejemplo su lado izquierdo en un cuadrado.
Sé que Bbox sirve para indicarle uno de los lados del sprite, pero cómo se da cuenta game maker o cual es la función para que se de cuenta de que el personaje o otro sprite ha hecho colisión con ese lado.
Sé que Bbox sirve para indicarle uno de los lados del sprite, pero cómo se da cuenta game maker o cual es la función para que se de cuenta de que el personaje o otro sprite ha hecho colisión con ese lado.
50
Preguntas y respuestas / Depth diferente para cada instancia
Agosto 01, 2014, 10:57:32 AM
Se podría conseguir que la profundidad o Depth, no dependiese del objeto, sino de cada instancia? Es que si pongo un depth a un objeto luego si quiero jugar con el tema de juntar escenarios no puedo poner más objetos visibles dentro de la zona donde le puse un determinado depth ya que me los tapa... Por eso querria saber si existe la posibilidad o alguna forma de hacer que el Depth dependiese de la instancia y no del objeto en si.
51
Preguntas y respuestas / Permanecer con una posición del sprite
Julio 31, 2014, 10:48:55 PM
Tenia la duda de como se podría conseguir que un sprite tuviera por ejemplo 5 subimagenes, 4 de esas subimagenes hacen un movimiento pero la quinta es estatica, es decir, quiero que la quinta sea el último sprite y que no cambie y no repita de nuevo el proceso de las otras 4 subimagenes, que permanezca el último sprite.
Dicho de otra forma, se hace la animación de sprites y no quiero que se repita la cadena de sprites, sino que al llegar al último sprite se quede con ese aunque este realizando la misma acción.
Dicho de otra forma, se hace la animación de sprites y no quiero que se repita la cadena de sprites, sino que al llegar al último sprite se quede con ese aunque este realizando la misma acción.
52
Preguntas y respuestas / Problema contador por instancia
Julio 31, 2014, 07:37:47 PM
Tengo un problema con un bucle que se me genera en el contador
Step Event
Como podría solucionarlo de tal forma que cuando toque o colisione con el objeto solo cuente 1, en vez de generarse el bucle que le indico en "global.point + =1;". Hay que tener en cuenta que la instancia no la puedo destruir ya que tengo intenciones de seguir utilizándola.
Edito: Estaba pensando en utilizar surfaces, de tal modo que destruyo la instancia una vez que no la necesito más pero me quedo con el sprite que es lo que me interesa.
Step Event
Código [Seleccionar]
if (place_meeting(x,y,obj_player)){
image_index = 1;
global.point += 1;
}
Como podría solucionarlo de tal forma que cuando toque o colisione con el objeto solo cuente 1, en vez de generarse el bucle que le indico en "global.point + =1;". Hay que tener en cuenta que la instancia no la puedo destruir ya que tengo intenciones de seguir utilizándola.
Edito: Estaba pensando en utilizar surfaces, de tal modo que destruyo la instancia una vez que no la necesito más pero me quedo con el sprite que es lo que me interesa.
53
Propuestas y soporte / Recopilatorio
Julio 30, 2014, 06:40:05 PM
No creéis que deberíamos poner un tema a modo de indice o recopilatorio de los temas más interesantes del foro? Lo podriamos indizar a modo de diccionario y ahí poner los articulos más sorprendentes para de paso darle más audiencia al currazo que haya podido hacer alguien, este tema estaria en chincheta y todos podriamos ir viendo a modo de libro lo más interesante.
54
Preguntas y respuestas / Game Maker se cierra inesperadamente
Julio 29, 2014, 08:55:00 PM
Buenas >:( >:(
Cada vez que abro la ventana Play! se van cargando todos los juegos con el tipico Loading... y justo cuando va a cargar uno de mis juegos la pantalla del play! se cierra inesperadamente y no puedo ni llegar a ver que lo carga.
Problema de compilación?
Cada vez que abro la ventana Play! se van cargando todos los juegos con el tipico Loading... y justo cuando va a cargar uno de mis juegos la pantalla del play! se cierra inesperadamente y no puedo ni llegar a ver que lo carga.
Problema de compilación?
55
Preguntas y respuestas / Ejecutar una acción pasado el tiempo del Alarm?
Julio 29, 2014, 02:30:43 PM
Como puedo hacer que se ejecute una acción una vez ha pasado el tiempo del Alarm, imaginemos que quiero hacer un ataque, teniendo en cuenta que el ataque es la acción, como puedo hacer para que una vez acabado el tiempo del alarm haga el ataque?
Ya que cuando lo intento siempre hace primero el ataque y después empieza a contar hasta que se encuentra de nuevo con la posibilidad de realizarlo, por así decirlo quiero que haga eso a la inversa, que empiece a hacer el ataque una vez el contador del Alarm haya acabado.
Ideas?
Ya que cuando lo intento siempre hace primero el ataque y después empieza a contar hasta que se encuentra de nuevo con la posibilidad de realizarlo, por así decirlo quiero que haga eso a la inversa, que empiece a hacer el ataque una vez el contador del Alarm haya acabado.
Ideas?
56
Preguntas y respuestas / Problema con sistema de daño
Julio 29, 2014, 11:49:36 AM
Buenas a todos, he estado teniendo un problema a la hora de realizar el sistema de daño. Lo que he hecho ha sido crear un sistema de inmunidad cada vez que el enemigo me lanza un ataque de tal forma que no me pueda sacar más vida.
Es decir, he creado un simple Alarm con un tiempo programado en el cual debería surgir efecto.
Create Event del personaje principal
Evento Alarm
Evento End Step
En el evento End Step del personaje principal empiezan a venir los problemas. He intentado que en vez de ser la distancia que hay con el enemigo sea cada vez que el "global.hp = global.hp -1;" pero no ha funcionado, ya que si pongo eso el enemigo no me baja nada de vida.
Evento Step
Para cambiar el sprite cada vez que el enemigo me hace daño
___
Ahora a partir de eso he creado el sistema de ataque del enemigo
Create Event del enemigo
Basicamente queria que hubiese un efecto retraso antes de que el enemigo le dé el golpe al personaje, por eso he intentado hacer un Alarm, el tema es que el Alarm empieza a contarse desde que el primer golpe fue efectuado, no lo hace pensando en el retraso, sino asestando un golpe principal y luego pensando en el retraso.
Alarm Evento del enemigo
End Step del enemigo
Aquí en un principio lo primero que quiero que verifique es sí existe esa distancia con el obj_player, si la hay va a hacer el efecto delay(retraso), y la siguiente pregunta es sí el personaje esta en modo inmortal, si no lo esta la vida del personaje bajará 1 punto.
He hecho toda la comprobación y no funciona ni el Delay ni la Inmortalidad, lo único que hace el enemigo es pasar de la inmortalidad y pensar en cuanto tiempo le queda para hacer el ataque, al final más que un Delay es un efecto de espera al siguiente ataque y sin importarle si esta o no la inmortalidad. Alguna ayuda o recomendación de lo que podría hacer o mejorar?
Hay que tener en cuenta que el ataque que hace el enemigo al personaje es Meele, no es un efecto de disparo.
Es decir, he creado un simple Alarm con un tiempo programado en el cual debería surgir efecto.
Create Event del personaje principal
Código [Seleccionar]
global.inmortal = true;
Evento Alarm
Código [Seleccionar]
global.inmortal = true;
Evento End Step
Código [Seleccionar]
if distance_to_object(obj_enemigo) < 0.1{
if global.inmortal{
global.inmortal = false;
alarm[5] = 60;
}
}
En el evento End Step del personaje principal empiezan a venir los problemas. He intentado que en vez de ser la distancia que hay con el enemigo sea cada vez que el "global.hp = global.hp -1;" pero no ha funcionado, ya que si pongo eso el enemigo no me baja nada de vida.
Evento Step
Código [Seleccionar]
if global.inmortal{
sprite_index = spr_ninja_prototype;
}else{
sprite_index = spr_player01_blood;
}
Para cambiar el sprite cada vez que el enemigo me hace daño
___
Ahora a partir de eso he creado el sistema de ataque del enemigo
Create Event del enemigo
Código [Seleccionar]
global.delay_attack = true;
Basicamente queria que hubiese un efecto retraso antes de que el enemigo le dé el golpe al personaje, por eso he intentado hacer un Alarm, el tema es que el Alarm empieza a contarse desde que el primer golpe fue efectuado, no lo hace pensando en el retraso, sino asestando un golpe principal y luego pensando en el retraso.
Alarm Evento del enemigo
Código [Seleccionar]
global.delay_attack = true;
End Step del enemigo
Código [Seleccionar]
if (distance_to_object(obj_player01) < 0.1){
if global.delay_attack{
global.delay_attack = false;
alarm[1] = 30;
if (global.inmortal = false){
global.hp -= 1;
}
}
}
Aquí en un principio lo primero que quiero que verifique es sí existe esa distancia con el obj_player, si la hay va a hacer el efecto delay(retraso), y la siguiente pregunta es sí el personaje esta en modo inmortal, si no lo esta la vida del personaje bajará 1 punto.
He hecho toda la comprobación y no funciona ni el Delay ni la Inmortalidad, lo único que hace el enemigo es pasar de la inmortalidad y pensar en cuanto tiempo le queda para hacer el ataque, al final más que un Delay es un efecto de espera al siguiente ataque y sin importarle si esta o no la inmortalidad. Alguna ayuda o recomendación de lo que podría hacer o mejorar?
Hay que tener en cuenta que el ataque que hace el enemigo al personaje es Meele, no es un efecto de disparo.
57
Desarrollo de Scripts / Uso del Sprint
Diciembre 30, 2013, 06:58:17 PM
Nombre del creador: King195
Descripción: Es un pequeño código para novicios en Game Maker que sirve para hacer uso del Sprint con tu personaje y que se almacene en una barra o contador que activa o desactiva el sprint con regeneración.
Versión GM: Game Maker Studio
Empecemos!
Primero de todo junto al Create Event de nuestro personaje ponemos las variables para que no de ninguna clase de error a la hora de usar nuestro Sprint
Create Event de nuestro personaje
Ahora creamos un evento Alarm[0] que almacenará únicamente la variable "sprintbar", a la cual le daremos uso en un Step Event y podrá realizar la acción. Es tan solo una forma de organizarme 8)
Alarm Event de nuestro personaje
A continuación haremos que todas estas variables tengan sentido. Teniendo el Step Event crearemos un End Step también.
En el Step Event de nuestro personaje pondremos
Ahora que ya tenemos esto en el Step Event debemos de crear un End Step Event que hará que la alarma sirva para algo
End Step Event del personaje
Para entenderlo mejor, si yo no uso la tecla del sprint la regeneración será de 0.5, y si uso la tecla del sprint me sacará 1 punto a mi barra global.
A continuación creamos la barra global con un Draw Event de nuestro Hud, en el caso de no tener un objeto llamado Hud lo podéis hacer para hacer la comprobación de que funciona vuestro sprint y más adelante sacar una barra más bonita.
En el Draw Event de un obj_hud
view_xview y view_yview son una buena forma de hacer que el obj hud no se tambalee ni se quede estatico, no es lo mismo poner que se verá según la view de la pantalla que poner este código
x+384, y+50
Ya que si pones eso le estas diciendo que sea en una coordenada concreta de la Room, pero que no se moverá.
Espero que os sirva y lo entendáis! A partir de esto podéis crear en el Draw Event algo que quede más bonito que un simple numero que esta en el medio de la pantalla.
Cualquier duda o error avisadme :P
**ADVERTENCIA** Esto es sólo un tutorial básico sobre como hacer un Sprint sencillo, por lo tanto ya doy por hecho que tenéis que tener un Step Event almenos para hacer caminar a vuestro personaje con sus variables, tan solo hay que moldearlo a vuestro personaje para que quede bien.
Descripción: Es un pequeño código para novicios en Game Maker que sirve para hacer uso del Sprint con tu personaje y que se almacene en una barra o contador que activa o desactiva el sprint con regeneración.
Versión GM: Game Maker Studio
Empecemos!
Primero de todo junto al Create Event de nuestro personaje ponemos las variables para que no de ninguna clase de error a la hora de usar nuestro Sprint
Create Event de nuestro personaje
Código [Seleccionar]
global.sprint = 100; //Le indicamos el valor inicial del Sprint, que será 100
sprintmax = 120; //Le indicamos el tope maximo de valor Sprint que puede tener
sprintbar = true; //Es una variable que se almacenará más adelante en un Alarm
Ahora creamos un evento Alarm[0] que almacenará únicamente la variable "sprintbar", a la cual le daremos uso en un Step Event y podrá realizar la acción. Es tan solo una forma de organizarme 8)
Alarm Event de nuestro personaje
Código [Seleccionar]
sprintbar = true;
A continuación haremos que todas estas variables tengan sentido. Teniendo el Step Event crearemos un End Step también.
En el Step Event de nuestro personaje pondremos
Código [Seleccionar]
KEY_SPRINT=keyboard_check(vk_control); //Hacemos una variable que se encargue de guardar cual es nuestra tecla para Sprintar
if global.sprint > 0 //Aquí hacemos uso de la variable que pusimos en el Create Event, y le decimos. Si global.sprint es mayor a
//0 hará todo este codigo.
{
if (KEY_SPRINT and KEY_RIGHT) //Si tenemos pulsada la tecla del Sprint y la tecla par movernos hacia la derecha
{
hsp=caminar +4; //hsp es una variable que actúa como un "Hspeed", sino lo teneis en el create event podeis hacer el cambio
// o ponerlo, igual que caminar. Caminar contiene un valor que sumará a Hspeed y le dará la velocidad.
}
if (KEY_SPRINT and KEY_LEFT) //Si tenemos pulsada la tecla del Sprint y la tecla par movernos hacia la izquierda
{
hsp=-caminar -4;
}
if (KEY_SPRINT and KEY_UP) //Si tenemos pulsada la tecla del Sprint y la tecla par movernos hacia arriba
{
vsp=-caminar -4; //vsp es el mismo caso que con hsp, solo que este es para velocidad vertical y el otro para la horizontal
}
if (KEY_SPRINT and KEY_DOWN) //Si tenemos pulsada la tecla del Sprint y la tecla par movernos hacia la abajo
{
vsp=caminar +4;
}
}
Ahora que ya tenemos esto en el Step Event debemos de crear un End Step Event que hará que la alarma sirva para algo
End Step Event del personaje
Código [Seleccionar]
if sprintbar //Si esta la variable sprintbar
{
sprintbar = false; //Al ser un bucle le indicamos que la variable es falsa para que se vuelva a "resetear" por así decirlo
alarm[0] = 10; //Aquí ponemos la velocidad a la que el Sprint se regenera. Si tenemos una Room con un Speed de 30 le
//acabamos de decir que el alarm active la función cada 0.33 milisegundos aproximadamente.
if global.sprint < sprintmax and !KEY_SPRINT //Aquí le decimos que mientras no este pulsada la tecla de Sprintar y
//global.sprint sea menor a 120(el valor de la variable de sprintmax)
{
global.sprint+=.5; //lo que hará será sumar 0,5 a la sprintbar(a la barra del sprint o al contador).
}
if global.sprint > 0 and KEY_SPRINT //Si global.sprint es mayor a 0 y tenemos pulsada la tecla KEY_SPRINT
{
global.sprint-=1.; //global.sprint restará -1
}
}
Para entenderlo mejor, si yo no uso la tecla del sprint la regeneración será de 0.5, y si uso la tecla del sprint me sacará 1 punto a mi barra global.
A continuación creamos la barra global con un Draw Event de nuestro Hud, en el caso de no tener un objeto llamado Hud lo podéis hacer para hacer la comprobación de que funciona vuestro sprint y más adelante sacar una barra más bonita.
En el Draw Event de un obj_hud
Código [Seleccionar]
draw_text(view_xview[view_current]+384, view_yview[view_current]+50, "Sprint " + string(global.sprint));
//en "Sprint" podéis poner las letras que queráis que se vean al lado de vuestro contador(vuestro contador es básicamente el valor de la variable global.sprint)
view_xview y view_yview son una buena forma de hacer que el obj hud no se tambalee ni se quede estatico, no es lo mismo poner que se verá según la view de la pantalla que poner este código
x+384, y+50
Ya que si pones eso le estas diciendo que sea en una coordenada concreta de la Room, pero que no se moverá.
Espero que os sirva y lo entendáis! A partir de esto podéis crear en el Draw Event algo que quede más bonito que un simple numero que esta en el medio de la pantalla.
Cualquier duda o error avisadme :P
**ADVERTENCIA** Esto es sólo un tutorial básico sobre como hacer un Sprint sencillo, por lo tanto ya doy por hecho que tenéis que tener un Step Event almenos para hacer caminar a vuestro personaje con sus variables, tan solo hay que moldearlo a vuestro personaje para que quede bien.
58
Preguntas y respuestas / Solido vs No solido
Diciembre 29, 2013, 12:59:30 PM
Este tema lo abrí para hablar sobre el tema Solido vs No solido en las colisiones entre objetos y generar debate. Creéis útil utilizar la opción Solido en algunos objetos?
A mi forma de ver lo veo innecesario. Ya que sin necesidad de usar "place_frees" se pueden conseguir colisiones mucho mejores y perfectas.
Qué opináis al respecto? :GMS:
A mi forma de ver lo veo innecesario. Ya que sin necesidad de usar "place_frees" se pueden conseguir colisiones mucho mejores y perfectas.
Qué opináis al respecto? :GMS: