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

181
Preguntas y respuestas / Re: objetos que se multiplican
Noviembre 23, 2009, 10:45:16 PM
por ahora no me importa que salga una padre y uno hija o dos hermanos

lo que quiero es que cuando la variable Multiplicarse sea 1 se divida en dos nuevos objetos que tienen la mitad de la vida inicial.
182
Preguntas y respuestas / objetos que se multiplican
Noviembre 23, 2009, 09:15:44 PM
quiero saber como podria hacer que un objeto se divida en dos, repartiendo la vida que tiene con su nuevo "hijo".

es decir que pierda la mitad la la vida cree un nuevo objeto de si mismo con la mitad de la vida inicial.

para crear el objeto uso la funcion instance_create(x,y,obj) pero no se como hacer que se cree con la mitad de la vida.

Se me ocurrio crear una variable global que sea igual a la vida antes de multiplicarse,

entonses en codigoseria asi:

if(Multiplicarse)
{
global.VidaAntesDeMultiplicarse = vida
Vida = Vida/2
instance_create(x,y,object_index)
Multiplicarse = 0;
}


y luego un el evento createdel objeto poner

Vida = global.VidaAntesDeMultiplicarse/2


pero cuando se crea la primer instancia me sale error ya que desconoce la variable global.VidaAntesDeMultiplicarse

intente darle un valor a global.VidaAntesDeMultiplicarse en el evento room star y game star pero me sale el mismo error
183
suena mas fasil de lo que enrrealidad es  :(

talves creando una variable llamada: "DistanciaRecorrido" o PorcentageRecorrido"
esta variable has que sea igual a la distancia que recorrio el auto o que sea igual al porcentage de la pista que recorrio el auto.

Luego solo comparas que jugador tiene la variable DistanciaRecorrido mas grande y ese sera el jugador que balla primero

AHORA:

Citarhas que sea igual a la distancia que recorrio el auto

seguramente te preguntes como diablos haces esto

bueno... mmmh....

nose  XD

talves te combenga dividir la pista en tramos y en ves de contar la distancia de la pista que el auto recorrio tendrias que contar los tramos de la pista que el auto recorrio

AHORA:

Citartalves te combenga dividir la pista en tramos

bueno un tramo seria una superficie delimitada, en otras palabras seria la intercepcion de semiplanos (espero qe sepas de geometria)

luego te fijas dentro de que tramo esta el auto.

ejemplo:

prada determinar si el auto esta en el tramo 1 podria ser asi (esto depende de la pista)

if(AUTO.y>2*AUTO.x+242)//Semiplano1
{
if(AUTO.y>1.6*AUTO.x-10)//Semiplano2
{
 if(AUTO.y<1*AUTO.x+100)//Semiplano3
 {
  AUTO.TramoRecorriendose = 1;
 }
}
}


espero que a alguien se le ocurra algo mas sensillo
184
Preguntas y respuestas / Re: DUDAS CON EL TECLADO
Noviembre 21, 2009, 01:13:59 PM
guacusio: el ejemplo es muy sensillo (osea muy bueno), me doy cuenta del efecto de la pausa del sonido como si fuera en el editor de texto.

tampoco puede ver que hace la funcion io_handle().
185
si ablas de como hacer de forma manual las funciones lengdir

x = coseno de angulo * modulo.
y = seno de angulo * modulo.

(lo hise mirando el esquema de Soujirocon el mismo sistema de cordenadas)

EL MODULO TIENE QUE ESTAR EN PIXELES SUPONGO  :-\

para las posiciones relativas solo le sumas las cordenadas que ya tiene

xf = xi + coseno de angulo * modulo.
yf = yi + seno de angulo * modulo.
186
Preguntas y respuestas / DUDAS CON EL TECLADO
Noviembre 20, 2009, 01:08:33 PM
Citario_clear() ?Limpia? todos los estados del teclado y del rat?n.
Citario_handle() Maneja la entrada y salida por parte del usuario, actualizando los estados del teclado y del rat?n.

Alguien me aclara mejor que hacen estas funciones  ???

otra duda:

Citarkeyboard_clear(key) ?Limpia? el estado de la tecla mencionada en ?key?. Esto significa que no generar? eventos de teclado hasta que se vuelva a presionar.

esta funcion es igual a io_clear() pero solo para una tecla?
187
Preguntas y respuestas / Re: Deshabilitar teclado
Noviembre 20, 2009, 01:07:02 PM
Citar?c?mo hace la "computadora" para presionar las teclas?

keyboard_key_press()

Citar?Y c?mo sabe el juego que debe reconocer s?lo aquellos eventos que genera la computadora durante el turno de ?sta y no los de las teclas presionadas?

crei haberlo solucionado pero enrrealidad no, voy a pregunatr para que sirven esas funciones que mencione porqu el manual no las espica mucho  ?_?

cuando probaba el juego a Speed 30 andaba bien, pero si lo pruevo a Speed 3 si podia interferir con el turno de la computador  :-\
188
Preguntas y respuestas / Re: Deshabilitar teclado
Noviembre 19, 2009, 12:56:51 AM
me costo mucho pero creo que lo solucione

justo antes del codigo en el que la computadora """preciona""" una tecla puse: io_clear();

probe y no hacia nada en el turno de la computadora.

luego puse: io_handle(); despues del codigo en el que la computadora """precione""" una tecla

probe y funciono como devia, en otras palabras no influia las teclas que yo tocara y la computadora llevaba acabo su turno sin problemas
189
Preguntas y respuestas / Re: Deshabilitar teclado
Noviembre 17, 2009, 10:20:30 PM
Citarlas acciones de las teclas solo se realizaran si tal variable esta el true
eso haria que ni yo ni la computadora pudiera jugar en su turno, ya que la computadora simula presionar las teclas para llebar a cabo su turno.

Si no es posible deshabilitar al teclado, se les ocurre alguna otra forma de hacerlo con variables o algo...
190
Preguntas y respuestas / Deshabilitar teclado
Noviembre 17, 2009, 05:21:42 PM
tengo GM7 lite

tengo que hacer la IA para mi juego, y la manera mas fasil es simulando que la computadora presiona una tecla en vez de que tenga que poner todas las acciones que hara esa tecla en el codigo.
Pero no quiero permitir que el jugador interfiera cuando le toca al enemigo, por lo que quiero desabilitar el teclado, en otras palabras que si se presiona UP no se ejecute el evento press_UP.
191
Preguntas y respuestas / Re: Error en Colision
Noviembre 17, 2009, 02:51:20 PM
CitarError in expression:vspeed < 0 && y > other.y+8
position 25: Unknown variable y

no se que hace la palabra "clave" other pero en el el pedazo de codigo citado te refieres a esta palabra como si fuera el id de alguna instancia en la room, la unica manera por la cuan la computadora desconoceria la variable y de una instancia es que esa instancia no exista en el room.

probablemente le allas llamado other a algun objeto, de ser aci cabiale el nombre
192
mouse_x
mouse_y
son las cordenadas del mause,

si quieres registrar la posicion del mouse al momento de click tendras que crear dos variables y en el eveto click_presionar le asignas a esas variables el valor de las cordenadas del mouse

lo de seleccionar eso depende de lo que quieras hacer...
yo en mi juego cree una variable global.Seleccionado que contiene el id del objeto seleccionado...
193
Preguntas y respuestas / Re: Energ?a de los enemigos
Noviembre 15, 2009, 09:57:24 PM
crea dentro de cada enemigo una variable VIDA,
ejemplo VIDA = 50;

luego pon en el objeto enemigo en el evento de colicion del enemigo con la vala:

VIDA-=5;
if(VIDA <= 0) instance_destroy();
194
si gira repentinamente solo cuando se aproxima a 0 talves si usas una variable ANGULO y usas dos imagene se solucione, osea la imagen normal y la normal rotada en -180 grados

La variable ANGULO seria el angulo del objeto, pero no nesesariamente de su imagen


si ANGULO esta entre 90 a 270 la imagen normal y image_angulo igual a ANGULO,
si ANGULO esta entre 270-360 o 0-90 la imagen rotada y image_angulo igual ANGULO +180,

Lego cuando gires cambia solo la variable ANGULO no y no el image_angulo o como se llame...

esto aria que el image_angulo varie solo entre 90 y 270
195
Preguntas y respuestas / Re: Ayuda Con Ataque
Noviembre 12, 2009, 05:54:45 PM
descargo el editable y edito...

EDIT:

el codigo es vastante enrredado  :-\

la unica soluccion que encontre sim hacer muchos cambios al juego poner lo siguiente en el fantasma:

evento press control:


alarm[0] = 15;


evento alarma 0:

if(personaje.sprite_index = per_lati_der)
{
if(personaje.x < x)
{
 if(personaje.x+90 > x)
 {
  instance_destroy();
 }
}
}

//Lo mismo pero para el otro lado
if(personaje.sprite_index = per_lati_izq)
{
if(personaje.x > x)
{
 if(personaje.x-100 < x)
 {
  instance_destroy();
 }
}
}