|
ElCortiHola, 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. |
# 02 Sep, 2014 01:34 |
|
DaleHola!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 |
# 02 Sep, 2014 02:53 |
|
ElCortiHola, 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. |
# 02 Sep, 2014 20:11 |
|
DaleHola 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 |
# 02 Sep, 2014 23:25 |
|
ElCortiAh, 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! |
# 03 Sep, 2014 05:31 |
|
DaleGenial! Que bien que te haya salido! |
# 03 Sep, 2014 23:14 |
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 ...