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

El método say se visualiza muy poco tiempo #153

Open
fdodino opened this issue May 21, 2024 · 4 comments
Open

El método say se visualiza muy poco tiempo #153

fdodino opened this issue May 21, 2024 · 4 comments
Labels
bug Something isn't working game priority: medium Issue has some importance although it is no big deal

Comments

@fdodino
Copy link
Contributor

fdodino commented May 21, 2024

Tiene seteado 2 segundos wollok-ts, pero sin embargo tarda re poco tiempo.

sayPocoTiempo

@fdodino fdodino added enhancement New feature or request priority: low Nice to have issue game labels May 21, 2024
@PalumboN PalumboN added bug Something isn't working and removed enhancement New feature or request labels May 24, 2024
@PalumboN
Copy link
Contributor

PalumboN commented May 24, 2024

La native settea un tiempo del mensaje

https://github.com/uqbar-project/wollok-ts/blob/22dd519edfdd5735ff5ecb27d8f23d6e6e84d9b7/src/wre/game.ts#L56-L63

Pero cli no lo lee

export function visualState(interpreter: Interpreter, visual: RuntimeObject): VisualState {
const image = invokeMethod(interpreter, visual, 'image')
const position = interpreter.send('position', visual)!
const x = round(position.get('x')!.innerNumber!)
const y = round(position.get('y')!.innerNumber!)
const message = visual.get('message')?.innerString
return { image, position: { x, y }, message }
}

Faltaría checkear que el messageTime sea menor al actual. Hay un ejemplo en:
https://github.com/uqbar-project/wollok-game-web/blob/3fa2ab1c4608fe9c48308dd2e4885f5bb8a688a0/src/render.ts#L302

@PalumboN
Copy link
Contributor

PalumboN commented Jun 5, 2024

El rasta del pasado estaba equivocado, el messageTime se checkea acá:

export const getVisuals = (game: RuntimeObject, interpreter: Interpreter): VisualState[] =>
(game.get('visuals')?.innerCollection ?? []).map(visual => {
const { image, position, message } = visualState(interpreter, visual)
const messageTime = Number(visual.get('messageTime')?.innerValue)
const messageForVisual = message != undefined && messageTime > timer ? message : undefined
return { 'image': image, 'position': position, 'message': messageForVisual }
})

Tal vez esté pasando algo raro con el tiempo...

@PalumboN PalumboN added priority: medium Issue has some importance although it is no big deal and removed priority: low Nice to have issue labels Aug 6, 2024
@asanzo
Copy link
Contributor

asanzo commented Sep 19, 2024

Por lo que veo del ejemplo que menciona el Rasta, millis() es un mensaje que dice el momento actual (va creciendo a medida que vive el Sketch).

Si estoy comparando messageTime contra eso, entonces messageTime no debería ser 2000 milisegundos, sino momentoEnElQueSeGatillóElMensajeSay + 2000 milisengundos.

Entiendo que en lo que pasaste:

export const getVisuals = (game: RuntimeObject, interpreter: Interpreter): VisualState[] =>
(game.get('visuals')?.innerCollection ?? []).map(visual => {
const { image, position, message } = visualState(interpreter, visual)
const messageTime = Number(visual.get('messageTime')?.innerValue)
const messageForVisual = message != undefined && messageTime > timer ? message : undefined
return { 'image': image, 'position': position, 'message': messageForVisual }
})

El timer cumple una función similar a millis(), así que la lógica es la misma. Yo multiplicaría por un número mágico (En Pilas Bloques usamos 3 segundos x cantidad de líneas, acá se podría usar 7000.min(message.size()*50))

Me pregunto si el io.emit tendrá algo q ver...

@PalumboN
Copy link
Contributor

Había un bug en el loop de game y se desfasaba del tiempo "real". Y creo que esto se producía por eso...

El bug fue arreglado en #183 que va a estar en el próximo release. Mientras tanto pueden probar el draft de la próxima versión.

Igual tal vez esté bueno settear el tiempo en función de lo largo del juego.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working game priority: medium Issue has some importance although it is no big deal
Projects
None yet
Development

No branches or pull requests

3 participants