Septiembre 01, 2011, 09:16:35 PM Ultima modificación: Septiembre 02, 2011, 02:09:40 AM por Wadk
hola, escribo porque he puesto vida a mi jugador y a los enemigos pero parece ser que cuando les dispara el jugador , le quita vida a el jugador y eso que he puesto que les quite vida a los enemigos. que debo hacer? gracias

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 :)

te hice un ejemplo revisalo haber si te sirve.

Ahi como esta en el ejemplo, esta bien :)

Health no es una variable independiente de cada instancia, sino que es global, por lo tanto si usas health para ti y health para los enemigos, termina siendo la misma variable y pasa lo que te sucedio.
Lo mejor es hacer lo que ya te han dicho, crear una variable llamada health_enemigo y ahora si puedes usar health normal para ti o usar health_jug1, ya depende de ti  :D
Una persona puede equivocarse mil veces pero solo fracasa cuando le echa la culpa a otro por sus errores

lo siento pero nose como se pondria la variable con la vida a el enemigo, podrias decirme como se hace? gracias

vida = 100 //en el jugador

vida_enemigo = 100 //en el objeto del enemigo

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.

pues, no me funciona, una cosa, tu pones vida=jugador, pero yo tengo que poner health y no me funciona, nose que hacer.

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?

Cita de: danielsanleo en Septiembre 03, 2011, 01:43:31 AM
pues, no me funciona, una cosa, tu pones vida=jugador, pero yo tengo que poner health y no me funciona, nose que hacer.
Duda por que tienes que poner forzosamente health? si vida hace lo mismo

y 2 si lo quieres con "iconos que se arrastran" por si no sabes codigo te dejo un ejemplo ahora tengo duda quieres dibujar tambien una barra o como sabes que les resta vida a los 2?

por si, si te dejo el ejemplo solo examinalo bien.

muchas gracias ya me funciona, pero las barras de vida no se ven ,mi juego es tipo gta 2 , entonces como se podria hacer que la vida del jugador se vea en el extremo derecho de la pantalla y el del enemigo , no hace falta que tenga barra de vida

Cuando usas una view, esta misma tiene valores de x e y propios, estos 0 se situan en la esquina superior izquierda.

Que quiere decir esto?

Que para que la barra de vida del jugador te aparezca desde la punta superior izquierda de la pantalla y por mas que te muevas la barra de vida tambien se mueva.

Debes poner en el valor "x": view_xview
Y en el valor Y: view_yview
Y los valores x2 e y2 (Que son donde termina la barra de vida) debes ponerlos a tu gusto.

no he sabido hacerlo, la barra no me aparece en la pantalla, ayuda porfavor, gracias

Aca te hice un engine de como seria:

@ Mueves al personaje con las flechas, los cursores. Al enemigo con WASD y disparas (Con el enemigo, asi ves como baja la vida del Jugador) con <Space>.

@ La view sigue al jugador.

@ Los valores de la barra de vida los puedes cambiar sumandole o restandole cosas a "view_xview" y "view_yview".