uqbar-project / wollok-language

Wollok language definition
GNU General Public License v3.0
8 stars 9 forks source link

addVisualCharacter no valida límites de pantalla #182

Open lspigariol opened 4 months ago

lspigariol commented 4 months ago

Los juegos hechos con wollok xtex asumen que visualCharacter controla que el visual no se salga de la pantalla.

Solucion propuesta:

  method addVisualCharacter(visual) {
    self.addVisual(visual)
    keyboard.up().onPressDo({ 
      if(visual.position().y() < game.height()-1) visual.position(visual.position().up(1)) })
    keyboard.down().onPressDo({ 
      if(visual.position().y() > 0) visual.position(visual.position().down(1)) })
    keyboard.right().onPressDo({ 
      if (visual.position().x() < game.width()-1) visual.position(visual.position().right(1)) })
    keyboard.left().onPressDo({ 
      if (visual.position().x() > 0) visual.position(visual.position().left(1)) })
}
lspigariol commented 4 months ago

https://github.com/uqbar-project/wollok-language/blob/cb96a7114060ebda634e3fa09038900330cfefa9/src/wollok/game.wlk#L39-L45

fdodino commented 4 months ago

Yo buscaría ponerle al visual character un comportamiento delegable (un strategy) cada vez que vaya a avanzar:

Hay que pensar la interfaz pero yo pensaría en que haya algo como nextPosition(Position) y que vos puedas devolver la misma Position u otra Position...

lspigariol commented 4 months ago

puede ser... por ahora, con que todo lo que andaba siga andando, soy feliz

PalumboN commented 3 months ago

Hay que pensar la interfaz pero yo pensaría en que haya algo como nextPosition(Position) y que vos puedas devolver la misma Position u otra Position...

Hoy en día podés usar el setter de position del objeto para hacer cosas locas.