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 - J.E.A

91
Cita de: Texic en Junio 22, 2012, 11:27:18 PM
vx=x-xprevious
vy=y-yprevious
act=0
with (other) {if place_free(x+vx,y+vy) {other.act=1}}
if act=1 {
other.x+=vx
other.y+=vy}

Probá algo así, no estoy con muchas luces hoy pero debería funcionar

Me da error. Me dice que las variables "vx" y "vy" no existen. Es necesario poner esas variables en el create?  ;)
92
Hice un trampolin, hice que rebote sobre el, pero el problema es que mi personaje rebota con solo posicionarme sobre el, pero yo quisiera hacer que al caer de una altura rebote
93
Hola a todos, tengo un pequeño problema con mi personaje y su caja. Estoy haciendo un juego tipo Sokoban. Le puse este código para que mi personaje corra las cajas

En la colision de mi personaje con la caja tengo esto:

other.x+=x-xprevious
other.y+=y-yprevious



Hasta aca todo perfecto, la corre y todo, pero no se como hacer para que la caja se frene al colisionar con una pared usando este código  ???






Aclaro que uso movimientos 8x8 usando la acción "Grid"
94
Cita de: elviskelley en Junio 20, 2012, 02:54:54 PM
eso es facil de hacer solo creas una variable para el movimiento del aire, y debes verificar en las teclas de movimiento que solo se mueve si esta sobre algo, asi no responden cuando esta en el aire, y verificas que si esta en el aire y la variable es tal... valor se mueve en esa direccion-.
Ejemplo.
event create
dirair=false; //cuando sea true se movera a la derecha y false a la izquierda claro solo en el aire.
Event end step
if place_free(x,y+)
{
if !dirair
{x-=3;}
else
{x+=3;}
}
//listo asi se movera en el aire en esa direccion, y para evitar cambien la direccion con las teclas de movimiento.

event left suponiendo usas left y right del teclado de flechas o cambia el event po lo que usas.
if !place_free(x,y+1) and place_free(x+3,y) //como ves lo unico que hago es agregar !place_free(x,y+1)
{x+=3;}
Ya creo que podes entender la idea.

Gracias!  8) Era eso lo que quería
95
Cita de: FrogGer en Junio 20, 2012, 10:54:08 PM
Tienes equivocado el codigo para invertir gravedad, o por lo menos yo lo uso de diferente forma:

Si quieres que la gravedad sea hacia abajo, debes indicar:

gravity_direccion = 270  //Hacia abajo
gravity = 1                   //Velocidad de gravedad


Si es hacia arriba:

gravity_direccion = 90  //Hacia arriba
gravity = 1                   //Velocidad de gravedad


  Prueba con eso.


Gracias! ahora funciona  :D
96
Hice que mi personaje al tocar una flecha hacia arriba se invierta su gravedad. Intente que al tocar la otra flecha vuelva a la gravedad original. Pero no me funciono, no se que es lo que hace falta.  ;)
En el create de mi personaje lo tengo así:

salto=0;
global.gravedad=0;


En Step lo tengo de esta forma:

{if global.gravedad=0
if place_free(x,y+1) ///Si estoy en el aire///
gravity=1 ///La gravedad sera x///
if not place_free(x,y+1) ///si estoy en el suelo///
gravity=0 ///se desactiva la gravedad///





{if global.gravedad=1

if place_free(x,y-1) ///Si estoy en el aire///
gravity=-1 ///La gravedad sera x///
if not place_free(x,y-1) ///si estoy en el suelo///
gravity=0
}}


Ahora en la colisiòn con la flecha de la gravedad para arriba:

global.gravedad=1 ///esto hace que mi personaje invierta su gravedad al chocar con este objeto (flecha para arriba)///



Ahora en la colisión con la flecha de la gravedad para abajo:
global.gravedad=0 ///esto debería volver la gravedad original al chocar con (flecha para abajo), pero no se porque no la devuelve///

97
Quisiera hacer que mi personaje al estar en el aire deje de moverse segun como salte. Por ejemplo: Mientras presiono el boton de caminar para la derecha camina, y mientras camina al presionar el boton de salto salta. Eso esta bien. Pero quisiera que si mi personaje esta quieto y el primer boton que presiono sea el de salto, al momento de estar en el aire quisiera que no respondan los botones de movimiento.

Probe esto en Step poniendo esto

if place_free(x,y+2)
x+=0



Pero no me funciono  :-[
98
Cita de: SobacoEnLlamas en Junio 17, 2012, 11:24:14 AM
pues lo más simple, le metes un dadito de la pestaña control, le pones el numero (a menos numero, dispara más seguido, siempre aleatoria la cadencia... vas probando y ya lo pones a tu gusto) y debajo pues que cree la instancia de la bala o lo que dispare xD

PD: el siguiente que se lo diga con código si le hace ilusión, a mí me da palo xd

Gracias! Yo lo hacia mal, ponia "random(5)" por ejemplo y no me funcionaba, pero puse

"if (ceil(random(1.5))=true)" y funciono muy bien  XD
99
Tal como dice el título. Como hago para que un enemigo dispare de forma aleatoria? Pude hacer que dispare, pero no se como hacer que tire la munición de forma aleatoria  :-[
100
Cita de: Mgbu en Junio 16, 2012, 10:47:00 PM
El único problema era que en create declaras mover en 0, entonces nunca se pudo mover culpa de las condiciones en las flechas derecha e izquierda, se soluciona cambiando mover=0 por mover=1 en el create del object0

Otra cosa es que cuando está muerto puede saltar, eso se coluciona anidando todo lo del evento space en un if mover=1 en el object0
Quedaría así:
Press Space en object0
[gml]
if mover=1
{

if gravedad2=0

if not place_free(x,y+1) && salto=0 // Si no esta libre por que esta colisionando o alguna otra accion con otro objeto. Y el salto es 0
{
vspeed=-8 // Velocidad vertical -11, se pone - para ir hacia arria
salto=1}

if gravedad1=1

if not place_free(x,y-1) && salto=0 // Si no esta libre por que esta colisionando o alguna otra accion con otro objeto. Y el salto es 0
{
vspeed=8 // Velocidad vertical -11, se pone - para ir hacia arria
salto=1}

}
[/gml]

Que tonto que soy, como no me di cuenta jeje. Muchas gracias!!!  Y gracias por lo de saltar, ya quedo correjido por completo el problema XD. Cada día voy aprendiendo mas
101
Tengo un problema con mi personaje, le asigne que al cambiar a tal sprite que deje de moverse. Por ejmplo cuando pierde que al quedar la imagen de "muerte" no te puedas mover. Pero el problema es que solo salta y no se mueve al iniciar el juego

Estos son los codigos que tengo para los movimientos de mi personaje:

En el Create de mi personaje lo tengo así

mover=0

En Right lo tengo así

if mover=1
if place_free(x+4,y)

x+=4;

if mover=0
if place_free(x+0,y)

x+=0;



En Left asi:

if mover=1
if place_free(x-4,y)

x-=4;

if mover=0
if place_free(x-0,y)

x-=0;


En el evento de colision con mi enemigo


sprite_index=spr_personajemuerto ///aclaro que aca cambio el sprite de mi personaje vivo con sus movimientos a muerto///

if sprite_index=spr_personajemuerto

mover=0


Por las dudas dejo el adjunto
102
Hola a todos, como puedo hacer que al agarrar un objeto haga un doble salto? ya vi un ejemplo de doble salto y me fue muy facil, pero quisiera que mi personaje al agarrar un objeto haga doble salto, probe pero se me complico e hice algun lio con los codigos jeje  ???
103
Cita de: Texic en Junio 16, 2012, 01:50:55 AM
Interesante, cuál es la velocidad del sprite? Es un número fraccionario, no? Probá así
if floor(image_index)=0 and act<>0{
act=0
sound_play(paso)}
if floor(image_index)=1 and act<>1{
act=1
sound_play(paso)}

Al fin funciono!  8) Muchas gracias, funciona tal cual como quería  XD
104
Cita de: Texic en Junio 15, 2012, 09:59:16 PM
Interesante, agregá esto a ver q pasa
if image_index>1 {image_index-=1} //1 sería el máximo nro de subimagen
if image_index=0 and act<>0{
act=0
sound_play(paso)}
if image_index=1 and act<>1{
act=1
sound_play(paso)}

Tampoco funciono  :(, pasa igual, que es lo que faltara?
105
Cita de: Texic en Junio 15, 2012, 05:50:33 PM
if image_index=0 and act<>0{
act=0
sound_play(paso)}
if image_index=1 and act<>1{
act=1
sound_play(paso)}

Inicializá la variable en un evento create o algo así en -1. Esto te sirve para chequear que no se repita el sonido muchas veces para la misma imágen

Funciona al principio, pero despues deja de escucharse. O sea, el sonido suena bien en la image 1 y en la image 2, pero despues no vuelve a repetirse otra vez  ;)