Para ingresar a tu perfil, primero tenés que INSCRIBIRTE

Si tu cuenta de Dale Aceptar aún no está vinculada con Facebook, hacé click aquí.

FOROS

Foro: Juego

Tema: Como cambiar la variable de un objeto desde una lista?

ElCorti

Hola, estoy haciendo un juego y parte de este es que podes atacar a enemigos con un cuchillo. Sin embargo no quiero que el ataque los mate inmediatamente sino que quiero que tengan un numero determinado de vida y que esta vaya disminuyendo, asi que cada enemigo tiene una variable “vida” con un numero x. Pero para no tener que repetir una linea de codigo por CADA enemigo, decidi usar una lista “enemigos” donde aparecen todos, y cada vez que ataco, el programa checkea si algun miembro de “enemigos” esta delante mio. El problema viene cuando quiero hacer que le baje la vida, ya que con la instruccion “para todos juntos” no puedo acceder a las variables de lo que sería “elemento_de_enemigos” (o sea, el enemigo que detecto delante mio). Por ende, no puedo acceder a su vida y no puedo disminuirla.
citar
02 Sep, 2014 01:34

Dale

Hola!

Es interesante lo que preguntás, y es cierto, no podes acceder a las variables del enemigo que detectas delante tuyo, se me ocurre que una solución podría ser:

Hacer una lista con los enemigos
Hacer una lista con las vidas

Hacer una función que te devuelva la vida del enemigo en la posición i.
Hacer una función que te devuelva el enemigo en la posición i.

Esto lo podes hacer con un “Para todos en Orden” incrementando una variable local y fijandote cuando esa variable es igual al parámetro que recibís.

Para modificar una variable de la lista, podes sacar la que está en la posición i y agregar una nueva decrementada/incrementada en esa posición (podes hacerte un método que haga eso).

Es medio complicado, pero se puede smile
citar
02 Sep, 2014 02:53

ElCorti

Hola, gracias por responder, pero estoy teniendo otro problema con ese procedimiento. Estoy creando una funcion que te devuelva el index del enemigo que ataqué dentro de la lista de enemigos. Sin embargo, al crear una variable local dentro de la funcion y al arrastrarla dentro de la funcion, me aparece la opcion de “set value” pero no la de incrementar por uno o de usar “maths” para crear el nuevo valor, por lo que no puedo cumplir con lo que me recomendaste.
citar
02 Sep, 2014 20:11

Dale

Hola ElCorti,

si, a mi me pasó lo mismo cuando lo hice ayer.. Tuve que ponerle de valor i + 1 en vez de incrementar. Es medio tedioso, la idea es que sea Set Value (El valor de i + 1).

Primero tenés que poner Set Value > Expresiones > i
Luego lo volves a editar y pones Math > i + 1

Si no te sale avisanos y te damos un ejemplo smile
citar
02 Sep, 2014 23:25

ElCorti

Ah, no me di cuenta que se hacia despues de poner la variable, de todas formas al final en vez de hacerlo como función lo hice como otro metodo y ya logre implementar el sistema de vida. Muchas gracias por la ayuda! smile
citar
03 Sep, 2014 05:31

Dale

Genial! Que bien que te haya salido! smile
citar
03 Sep, 2014 23:14
 
Registrar o entrar para crear o responder a un tema.
NOVEDADES

Ya están los ganadores del Desafío (19/12/14)
¡Felicitaciones a todos los participantes de Dale Aceptar 2014!

¿Cómo fue tu experiencia en Dale Aceptar? (21/11/14)
¿Por favor, te tomás 2 minutos y respondés nuestra encuesta? Queremos saber tu opinión posta.

Ya están los finalistas de Dale Aceptar 2014 (17/11/14)
Recibimos muy buenas piezas. Felicitamos a todos los participantes. ¡Ahora, a chequear la lista y ...