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

541
Al comprarla, en lugar de SUMAR UNO a la variable, SETEALA a 1. Variable = 1, nunca sumes para este tipo de cosas, puede ser eso.
A dem?s:
if global.lago=1 visible=true;

Ese c?digo, seg?n dices, lo has puesto en CREATE, conque s?lo se ejecuta una vez. Haz lo que dije, global.lago=1 al comprarlo, y pon  "if global.lago=1 visible=true;" en el evento STEP, te deber?a funcionar :3
542
En un problema de programaci?n de mi universidad hab?a que incrementar posiciones del plano seg?n entradas: 'n' (norte, positivo, arriba) aumentaba hacia abajo y 's' hacia arriba, como Game Maker.
Supongo que lo oficial es que la y hacia arriba sea positiva, pero no pasa nada si alguien decide hacerlo al reves porque le da la gana.
Si en 2 p?ginas no ha salido una respuesta oficial, seguramente sea porque es as? y punto, el creador tendr?a ganas de invertir la cosa xD
543
Preguntas y respuestas / [3D] Sistema de luces
Octubre 21, 2011, 04:30:15 PM
Buenas! Pues estoy probando cosas en 3D, pero las luces me tienen loco. Tras habilitarlas, pongo esto en el objeto bombilla

//dibuja luz
d3d_set_lighting(true);
d3d_set_shading(true);
draw_set_color(c_white);

d3d_light_enable(index,true);
d3d_light_define_point(index,x,y,z,900000,color);


As?, cada objeto bombilla tiene su propio index, altura y color, que defino en creation code de la room de cada objeto. Pero todo a lo que no le da la luz QUEDA TOTALMENTE NEGRO.
Lo que quiero es que haya RADIACI?N DIFUSA, REFLEXI?N DE LA LUZ o como se llame, o sea, que aunque no le de la luz, se vea un poco oscuro, pero se vea. Podr?a decirse que quiero que TODO SEA VEA... un 70% oscuro, y luego, a lo que le de la luz, claro. Porque que se vea NEGRO TOTALMENTE lo opuesto a la luz, es fatal. Qu? hago?

Podr?a crear m?s luces, pero, por muchas luces que haga, siempre habr? una parte de un objeto con sombra. Alguna idea?

Podr?a usar tambi?n d3d_light_define_direction, pero no s? exactamente c?mo funciona puesto que los argumentos son la direcci?n, pero no dice origen de la luz!
Y aclaro, que sin luz el juego se ve?a bien, pero MUCHAS COSAS se confunden, ya que, al no haber luz, cuesta distinguir cosas, conque necesito la luz para que haya un buen 3D...
544
Vaya, funciona a la perfecci?n! Qui?n iba a decir que exist?a una funci?n espec?ficamente para eso xDD
Gracias! +karma va ^^
545
Buenas, cu?nto tiempo sin preguntar una duda xD
Esto es simple, pero no s? c?mo.
Digamos, cada vez que pulso C, se crea un objeto.
El m?ximo es 10. As?, al crear el n?mero 11, debo destruir el PRIMERO. Y as? cont?nuamente.

Por ejemplo, creo los objetos A, B, C, D, E, F, G, H, I, J (todos son el mismo tipo objeto). Al crear el K, se destruye el A. Al crear el L, se destruye el B, etc.
Puedo destruirlos todos con un bot?n, pero quiero que, si no se pulse el bot?n, se destruyan autom?ticamente LOS M?S VIEJOS cuando el n?mero supera el m?ximo de 10.
C?mo hago eso?
546
Preguntas y respuestas / Re: Resetear un objeto
Agosto 04, 2011, 07:22:26 PM
Pos s? xD lo comprob?, y como me tem?a, el creation code va mucho antes, ya que en CREATE EVENT chequ? una variable que se creaba en creation code, y definitivamente estaba creada :3
547
Preguntas y respuestas / Re: Resetear un objeto
Agosto 04, 2011, 07:00:27 PM
No, que al final puse las rooms no permanentes, as? que s?lo debo destruir el enemigo para que ?ste se regenere autom?ticamente al volver a la room.
Con eso, y usando el creation code (del cual sigo teniendo la duda) y poniendo unas variables en un objeto controlador permanente, puedo hacer que luchen conmigo nadam?s verme la primera vez, pero que luego s?lo luchen si les hablo, no al verme (a lo pok?mon)
548
Preguntas y respuestas / Re: Resetear un objeto
Agosto 04, 2011, 06:42:15 PM
Bueno, de momento, he hecho las rooms no persistentes, y todo funciona GENIAL! Dar?a el tema por solucionado... el tema de resetear

pero SIGO TENIENDO la duda de qu? va antes, si el evento create o el c?digo que pones en el objeto en el editor de rooms!  :o
549
Buenas, pues eso, resulta que tengo un objeto enemigo, y cuando comienzo la batalla me lo llevo a otra room. Pues al finalizar, quiero que el objeto regrese a su anterior room, dejando de ser persistente, pero que se resetee, es decir, que todas sus variables, sprite, posici?n.. regrese a las que ten?a nadam?s crearse. C?mo se puede?

El objeto enemigo, a su vez, en create, crea dem?s objetos uqe lo siguen, como su sombra o un objeto que dibuja su vida, pero no s? si deber?a destruirlos para que al resetearlo los cree de nuevo... yo solo quiero que se resetee el enemigo, manteniendo la room persistente todo el tiempo!

Y en el CREATE EVENT, es decir, el codigo que le das a algunos objetos en el editor de rooms y se ejecutan al crearse, eso tambi?n deber?a aplicarse al enemigo reseteado

como hago todo eso?  :-\

Si no hay soluci?n sencilla, puedo hacer las rooms no permanentes y simplemente destruir los enemigos, y al volver a entrar estar?n de nuevo... y todo ir?a bien :3


y tambien, qu? va antes, el evento create del objeto, o el codigo que pones en el editor de room que se activa cuando se crea el objeto? Por que no s? si el codigo que pongo en el objeto en la room se activa antes o despu?s del evento create del propio objeto. Saberlo ahorrar?a molestas alarmas...
550
No, lo tengo bien, perd?n por explicarme mal xD lo que dije que puse en step lo tengo puesto en el evento COLISI?N contra ataque. Es decir, es un c?digo en el enemigo. O en mi caso.

Explico, los ataques son est?ticos. Son cuadrados quietos en el campo. Cuando alguien ataca, se crea ese objeto en el ataque. Y tanto yo como el enemigo podemos recibir esos ataques (claro, yo no recibo los m?os). As? que el evento se acciona en colisi?n del enemigo con mi objeto ataque.

Estoy analizando el c?digo de Jucarave para intentar entenderlo... xD En tu code, collision rectangle puede ser todo en x,y,x,y, ya que debe colisionar directamente para ser da?ado, siempre.
Pero, tu c?digo funciona si el ataque golpea en sus ultimos momentos? ya que el ataque dura 10 steps, y la cuesti?n es que da?e UNA VEZ si colisiona en cualquier momento... y con cualquier enemigo, una vez a cada enemigo... y sigo sin entender el c?digo del todo D:

Pero un momento, la explicaci?n que di no es v?lida, ya que.. si recibieras un ataque distinto, y luego de nuevo el otro ataque.. es decir, recibir un ataque X, luego Y y luego el mismo anterior X, no funcionar?a! Voy a intentar otra cosa, ya que mi explicaci?n no fue correcta

Edit: Lo he solucionado! lo consegu? haciendo una "base de datos" en el objeto ataque, es decir, unas 10 variables, donde, tras da?ar a un rival, la id del rival se guarda en esas variables, y antes de cada ataque checa que la id del rival no est? guardada, y si lo est?, es decir, si ese ataque ya ha golpeado al rival, no funciona! Ahora s? funcion? lo de id's en variables, es curioso...


Gracias por responder, pero se arregl? xD aunque la descripci?n que di estaba equivocada, puesto que con dos ataques a la vez, el m?todo fallaba, se necesitaba una base de datos, es decir, guardar TODAS las ids de rivales afectados por el ataque, y Jucarave, en tu m?todo, quiz?s hiciste como dije antes y no ir?a bien =S
551
Buenas, pues hasta ahora para m? esto era f?cil, lo apliqu? muchas veces... pero ahora me falla y seguramente no lo entiendo del todo.

La cuesti?n es, tenemos el prota y los enemigos. Entonces, yo lanzo un ataque al rival. El ataque est? en juego, es decir, tarda en destruirse, 10 steps, un tercio de segundo. Significa que el ataque, que resta vida al contacto, da?ar?a al rival 10 veces, conque restar?a el valor de la vida 10 veces. Pero quiero que s?lo sea una vez y en esas condiciones.

Para ello, creo al rival, en create, esto:
recibe=id; //ID del objeto del cual recibes un ataque, se obtiene al recibirlo, se elimina... cuando acaba
ultimo=id; //ID del ultimo ataque recibido, si coincide con RECIBE; no da da?o


Y en STEP esto:
recibe=other.id;
if ultimo!=recibe {vida-=other.dano; ultimo=other.id;}


es simple. Siempre, siempre que recibes un ataque, justo antes de recibirlo todo, se guarda la id del ataque recibido en tu variable "recibe". A continuaci?n, checas si "recibe", es decir, la id del objeto atacante, coincide con "ultimo". Si son distintas, realiza el da?o, y, tras el da?o, "utlimO" vale la id rival.

Esto significa que SIEMPRE QUE RECIBA ESE ATAQUE por primera vez, m?s espec?ficamente ese objeto concreto, ya que el ataque se realiza muchas veces, la primera vez siempre me da?a puesto que recibe no ser? igual que ultimo. Pero, tras da?arme, como ultimo valdr? igual que recibe, no funciona.

Un c?digo perfecto para que el ataque s?lo dale al rival una vez, pero a la vez el ataque pueda da?ar a varios rivales a la vez, ya que si destruyo el ataque despues de golpear, no podr? usarse para varios rivales a la vez, y ese no es el caso

La teoria es correcta, pero en la pr?ctica no funciona y le resta al rival toda la vida de golpe, como si le da?ara 10 veces seguidas. Qu? falla? D:

Cabe decir que tambi?n he hecho esto:
recibe=other.id;
if ultimo.id!=recibe.id {vida-=other.dano; ultimo=other.id;}


Checando, no la variable, sino la variable "id" de la variable, s?lo cuando checa y no cuando setea, ya que creo que se usaba as?, tomando a "recibe" como el objeto rival, y checando "id" del objeto rival a trav?s de la variable, pero tampoco funciona! Sigo mat?ndolo de un solo ataque!
552
El principal problema era que mis sprites eran 60x60, eran rombos rectos. Bueno, la cuesti?n es que muevo al personaje, ej, al nor oeste, mantengo ARRIBA MAS IZQUIERDA. Mantengo dos flechas para moverlo. En el c?digo de moverlo as?, lo que hago es setear las variables xx e yy, que ser?n el objetivo a moverse. Pongo, si por ejemplo pulso ABAJO y DERECHA para ir al sur este, pongo xx=x+30 y yy=y+30, con eso me muevo hacia la casilla. Un problema era que  yo hac?a +60 y no +30 xD
Lo principal, en el caso anterior, el tipo se mueve correctamente, pero debo poner c?mo pararlo. Entonces, en step, pongo algo como:
if x>xx and y>yy {hspeed=0; vspeed=0;}

simplemente he checado que ha pasado del punto designado. Pero eso depende de cada lado, seg?n a qu? lado sea.

Y s?, siempre lo alineo a la cuadr?cula una vez ha alcanzado el punto xx, yy. Siempre se alinea despu?s de cada movimiento

S?lo funciona, como ver?s, si las direcciones son de 45 grados. Si en tu caso es un isom?trico puro, con ?ngulos de 120, no te funcionar?, ya que est? hecho para moverse con ?ngulos de 45! EL m?o no es isom?trico, es casi, pero no s? como llamarlo de otra forma xD
553
Posteo para indicar que lo he resuelto y pod?is cerrar el tema (no es doblepost, ya que lo que hago es aportar info nueva para avisar ^^)
554
Buenas, pues llevo un BUEN rato probando, incluso realizando factores de conversi?n de unidades entre velocidad, distancia y tiempo (speeds, pixels y steps) pero nada!

Mi personaje se mueve en una cuadr?cula isom?trica, la propia room me la hace, es 60 x 60, as? que queda isom?trica PERO LOS ?NGULOS no forman todos 120 grados, sino que son como cuadrados exactos girados, conque tengo el eje vertical y los otros dos que forman entre s? 90 grados. No es un juego pok?mon, pero lo digo ya que Pok?mon es el juego m?s famoso que usa el sistema que quiero probar, el de avanzar casilla a casilla quedando exacto en las casillas, pero en isom?trico rect?ngulo

Conque, para moverlo en una direcci?n diagonal, s?lo debo poner hspeed y vspeed a unos mismos valores para movimiento diagonal

el problema es que quiero que avance s?lo hasta la siguiente casilla. Tomando las casillas diagonales que la room hace autom?ticamente, quiero que se mueva hasta la siguiente casilla diagonal y se pare, al m?s puro estilo pok?mon pero diagonal. El problema es, c?mo?

Yo hice que nadam?s moverse, salte una alarma, y la alarma suena en un tiempo para que se pare. Es decir, se mueve en diagonal a una velocidad que es una variable, y mi idea es que justo al avanzar a la siguiente casilla, se pare.

Pero no puedo saber cu?nto tiempo en steps es exacta la alarma para ello, ni con factores de conversi?n entre la velocidad y la distancia recorrida funciona el tiempo sacado.

Hay alguna manera? Hacer movimiento pok?mon pero en isom?trico, pero no isom?trico sino que los ejes son el vertical y los dos de abajo forman ?ngulo recto (solo digo que en la room, selecciono la casilla de GRID y la casilla de la derecha de grid diagonal, y pongo ambos valores 60)

Podr?a resumir, diciendo que quiero saber c?mo hacer el t?pico movimiento de Pok?mon en cuatro direcciones, que, si pulsas LEVEMENTE hacia una direcci?n a la cual no est?s mirando, te pones mirando hacia ella sin moverte, y si mantienes pulsada la direcci?n, te mueves. Y si dejas de pulsarla, se para pero haciendo un paso perfecto hacia la casilla designada. Vamos, eso, y luego yo lo podr?a aplicar al isom?trico...
555
Tengo que decir, que mi teclado no tiene la tecla impr pant, es m?s, en su lugar tiene f13, f14 y f15, y las letras comienzan en QWERTZ (aunque eso me lo arreglaron al venderlo y ya tiene QWERTY), vamos, es de otro pa?s. Y para hacer screenshots tengo que levantarme y darle al boton del portatil, que s? tiene, ya que el teclado USB no. A m? me vendr?a bien, es m?s, he intentado esto mismo hace poco, muchas funciones para coger la pantalla, pero siempre me cog?a s?lo la ventana del game maker, as? que no lo logr? >_< a mi me servir?a xDD