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

541
Mmm no se me ocurre nada.

Pero el problema con distance_to_object(object) es que la distancia se mide en un circulo con respecto al objeto del diametro del valor.

Por ejemplo, sabia que la distancia al objeto es de 32 pixeles (Con este metodo, obvio) solo podemos saber que la distancia es esa, pero puede ser en cualquiera punto del room que este a 32 pixeles del objeto.

Tomemos un reloj de aguja:
Todos los numeros estan a la misma distancia del eje de las agujas, pero no estan en el mismo punto. Se entiende?

Si se me ocurre algo, te aviso.

Pero esperemos que alguien que sepa comente :D
542
No creo que eso sirva. A menos que la pista sea solo una recta.

Porque si es un circuito, una pista completa, no creo que sirva.
543
Mmm, no entiendo bien que es lo que quieres :\
544
Preguntas y respuestas / Re: Particulas en diagonal
Septiembre 03, 2011, 04:25:44 PM
Otra alternativa seria modificar "X" e "Y" al mismo tiempo:

[gml]
x -= 4; y -= 4; //Esquina superior izquierda
x += 4; y -= 4; //Esquina superior derecha
x -= 4; y += 4; //Esquina inferior izquierda
x += 4; y += 4; //Esquina inferior derecha
[/gml]





Con la misma sentencia que tu usaste seria:

[gml]
action_move("000000100",speed); //Esquina superior izquierda
action_move("000000001",speed); //Esquina superior derecha
action_move("100000000",speed); //Esquina inferior izquierda
action_move("001000000",speed); //Esquina inferior derecha
[/gml]
545
Algo debes haber hecho mal, ya que asi se hace para lo que tu necesitas, cambiar el objeto que la view siga.

Aqui te dejo un engine que acabo de hacer:
546
Tienes razon, eso no funciona, recien ahora me di cuenta.

No se me ocurre que hacerle, ahora me pongo a ver, y si se me ocurre algo, arreglo el engine y te lo dejo aca
547
Me imagino que estas usando las opciones de la barra de vida y demas de los D&D, no?

Paso a explicarte, el hecho es que estos D&D funcionan con la variable health, pero que es UNICA en todo el juego.

Haz esto, usa la variable Health en el jugador (Que es del que vas a crear la barra de vida y demas), y con la vida del enemigo crea una variable "vida_enemigo" y cuando le tengas que restar vida pon set variable, le das a -10 (Por ejemplo) y le das a relative. Y ahi le bajara 10 de vida.

Entiendes?
548
Revisa el ejemplo que dark_servant te dejo mas arriba.

Sino tienes dos formas, como siempre: D&D (Drag & Drop,lLibrerias, cuadraditos que arrastras, como le digas xD) y el code:






En el evento create:



Con D&D:

Pesta?a: Control --> Variables --> Set Variable

|
|
v

variable: vida_jugador

Este es el nombre de la variable.
Aqui pones el nombre que tu quieras, pero algo que refiera a que es la vida del jugador, asi se te hace mas facil.

value: 100

Este es el valor de la variable que acabas de crear, le pones 100 para que la vida de tu jugador este en 100.

Esto va en el objeto del jugador para crear la vida del jugador. Ahora ve al objeto del enemigo y haz lo mismo solo que en la parte del nombre de la variable escribe un nombre que haga referencia a la vida del enemigo, por ejemplo: vida_enemigo.




Con codigo:

Pesta?a: Control --> Code --> Execute code

|
|
v

[gml]
vida_jugador = 100

//Con esto declaras la variable "vida_jugador" en 100.
[/gml]

Esto va en el objeto del jugador para crear la vida del jugador. Ahora ve al objeto del enemigo y haz lo mismo solo que en la parte del nombre de la variable escribe un nombre que haga referencia a la vida del enemigo, por ejemplo: vida_enemigo.
549
Mmm puedes probar hacer lo siguiente:

En un step o algo que te sirva (como no se bien como estas desarrollando tu juego, el evento lo deberias elegir vos) si su x es la misma que la de otro, sumarle 32 a la x para que se mueva 2 cuadros hacia la derecha (hablando de un grid de 16x16, obvio).

Ejemplo:

Queremos crear un cuadrado de 32*32 uno al lado del otro.
Para esto le ponemos este codigo en el evento step (Creo que en el evento de colision consigo mismo tambien funcionaria).
Cosa que si cuando se crea, ya hay un cuadrado en el mismo lugar, se va a mover 32 pixeles a la derecha, poniendose justo al lado.
550
Lo que tu quieres es que el personaje pueda atravesar las plataformas desde abajo para estar sobre ellas, pero que cuando este sobre ellas, obviamente, que no caiga. Verdad?

Bueno, aca te dejo un ejemplo creado por el usuario: 3dgeminis.

Este ejemplo demuestra como hacer esto que tu necesitas.

Nota: Este ejemplo esta hecho con y para plataformas moviles, pero seguramente te va a servir, puedes adaptarlo a lo que tu quieres.
551
Ahi como esta en el ejemplo, esta bien :)
552
Seguro que usas por lo menos un view, no?

Bueno, y cada view tiene sus propias variables de "y" & "x" por lo que debes cambiar:

Ve a la parte donde se crean las personas, especificamente donde esta lo que busca los valores aleatorios para darle el rango maximo de aparacion de objetos:

(Controlador --> Alarm 0 ---> Linea 2 y 3).


xrandom = random(room_width)
yrandom = random(room_height)


@Cambia "room_widht" por "view_wview"
@Cambia "room_height" por "view_hview"

Entonces te tendria que quedar en la linea 2 y 3 (Tambien cuenta la linea que se pone en verde, es una aclaracion, pero tambien la estoy contando)


xrandom = random(view_wview)
yrandom = random(view_hview)
553
Eso es porque estas usando la misma variable para los dos objetos.

Intenta crear una variable: Health_Jugador para la vida del jugador; y una variable Health_Enemigo para la vida del enemigo.

Entonces en los eventos en vez de poner que se quite vida a la variable "health" pones la variable correspondiente, si quieres que la vida de tus enemigos se vea afectada utiliza "Health_Enemigo -= 10" (Esto hara que la vida del enemigo disminuya en 10) y si quieres que sea la del jugador, lo haces de la misma manera pero cambias el nombre de la variable por la del Jugador.

Me explique bien? Si necesitas una mejor explicacion o que te explique algo en particular, dime :)
554
Modifique algunas cosas del engine y te lo deje andando.

Lo que si, para que la personas no se creen en el mismo lugar, probe con el "place_free(xrandom,yrandom)" y no me funciona, tambien intente con "place_empty(xrandom,yrandom)" y tampoco funciona, por lo que tuve que hacer que al crearse, si colisionan consigo mismas, se mueven a una nueva posicion random, y me parece que se mueven las 2 instancias que colisionaron a una nueva ubicacion (Porque cree un objeto "Persona_General" y les puse a los 3 tipos de personas parent con este para que se comporten de la misma manera para poder hacer lo anterior) (Esto lo puedes modificar para que suceda lo que tu quieres, o si puedes encontrar la forma de ponerle un "If" al "alarm 0", que es donde se crean, para que directamente no se creen sobre los otros, seria lo mejor.

Otro dato es que no pude hacer que no se cree dentro de los, en este caso, 128 pixeles alrededor del personaje. Lo que hice fue que si se encuentra ahi dentro, se destruya.

Todo lo otro esta funcionando perfecto. En realidad, todo funciona perfecto, solo que hay cosas que se podrian controlar distinto para mejorar la grafica o la comodidad en los codigos.

Cualquier duda sobre el engine, pregunta :)




Para que veas otras cosas que se pueden hacer, en el objeto "Controlador", en el evento "Draw", te dejo un par de dibujos para que te sea mas facil saber algunos valores a la hora de probar el engine:

@Circulo negro que determina los 128 pixeles alrededor del Jugador (En este caso, el cuadrado azul).
@La distnacia del objeto "Persona" mas cercano al Jugador.
@La ID del mismo objeto que el anterior.
@El color del mismo objeto que el anterior
555
Me interesa mucho esto, podrias adjuntar el ejemplo que dejaste en tu otro post:

http://www.comunidadgm.org/index.php?topic=15612

Pero con esto incluido para que funcione bien?

Muchas gracias!