Open lspigariol opened 4 years ago
Ahí agregue las cosas que pidió Lucas, agregue leyendas de ganar y perder vida, saber cuantas vidas tiene el pacman con showAttribute() , los fantasmas se mueven y gana la vida al chocar con las frutas.
bien, va mejorando. agregaron esta linea cuando colisiona la fruta game.whenCollideDo(fruta ,{personaje => personaje.chocarConFrutas(fruta)}) el tema es que personaje es cualquier cosa con la que la fruta colisiona, puede ser un pacman, un rival o incluso otra fruta que se ubica en el mismo lugar. Mas expresivo que chocarConFruta(), puede ser comer() ¿en que otros objetos deberia estar el metodo comer()? ¿qué debería hacer en cada uno?
Hola Lucas lo que debería hacer es escribir de esta forma game.whenCollideDo(pacman,{personaje => pacman.comer(fruta)})? y usar el metodo de comer en el pacman y en la fruta no?
la clave es usar el polimorfismo
game.whenCollideDo(pacman,{personaje => pacman.comer(fruta)})?
en esta expresion, a personaje no lo usas y no me queda claro de donde sale fruta. (si esta dentro del foreach, se evalua muchas veces, simpre para el mismo pacman, lo cual no tiene sentido)
Si el sentido es "cuando el pacman choca con algo, pasan cosas diferentes segun quien sea", o sea, que cada cosa chocada hace algo diferente cuando la choca el pacman. podrias hacer game.whenCollideDo(pacman,{algo=> algo.teChoco(pacman)}) Y no ponerlo dentro de un foreach
Pero la otra posibilidad, mas parecida a la version original, es definir que pasa cuando colisiona cada fruta con algo
(forEach fruta) game.whenCollideDo(fruta,{algo=> algo.chocasteCon(fruta)})
y definis el metodo chocasteCon en cada objeto que pueda chocarse con al fruta
agreguenle algun tipo de mensaje o leyenda minima que ayude a entender lo que pasa en el juego. por ejemplo si ganaste o perdiste, cuantas vidas quedan, etc. pueden usar say() o agregar nuevos objetos visuales