Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Que el onCollideDo no se ejecute muchas veces ante un error #2016

Open
PalumboN opened this issue Nov 3, 2021 · 1 comment
Open

Que el onCollideDo no se ejecute muchas veces ante un error #2016

PalumboN opened this issue Nov 3, 2021 · 1 comment

Comments

@PalumboN
Copy link
Contributor

PalumboN commented Nov 3, 2021

Actualmente el mensaje game.onCollideDo fue pensado para ejecutar el bloque una única vez por colisión.

Pero esto no pasa cuando el programa tiene un error (bastante común cuando estudiantes están intentado crear sus primero juegos) y el bloque lanza una excepción.

Dejo este ejemplo:

import wollok.game.*

class Text {
	const property image = "wko.png"
	const property text
	var property position
}

program abc {
	const principal = new Text(text = "P", position = game.origin())
	game.addVisualCharacter(principal)
	game.addVisual(new Text(text = "X", position = game.center()))
	game.onCollideDo(principal, { algo => throw new Exception(message="ERROR") })
	game.start()
}

Si se hace colisionar los objetos y se observa la consola queda en evidencia que sigue intentando ejecutar el bloque hasta que deje de colisionar.

Esto además genera un problema de usabilidad porque la excepción muchas veces crea un globo de diálogo que se muestra en el juego por unos segundos, el problema es que estos carteles se "acumulan en serie", por lo que el globo de diálogo no desaparece por mucho tiempo.

@PalumboN
Copy link
Contributor Author

PalumboN commented Nov 3, 2021

@ezequielPereyra @AngeliMatias hay que chequear si esto no pasa también en la versión web... y cargar le issue en TS si es necesario también (se puede linkear este directamente).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant