Perdón por el retraso, he tenido una semana muuuuuuy ocupada con un evento, pero ya soy libre otra vez

baltasarq escribió:
Intento poder girar un dial de posición, con el siguiente código:
Código:
def preGirar, preTocar, preMover
#self.posicion = #self.posicion + 0.1
#jugador.accion( Examinar, #self, null )
return true
end
El caso es que el dial se puede girar, y funciona. Se puede tocar, y funciona. Pero no se puede mover. Siempre aparece "intentas mover el dial de posición, pero no pasa nada". Quizás la acción mover no se llame Mover, no se...
He tenido que investigar aquí:
http://www.kenshira.com/system/default/info-actions para ver que action le corresponde a la frase "mover dial". Y tienes razón, no existe acción Mover. Existe una action Empujar que tiene, entro otros, el verbo mover. Así que para lo que quires hacer, tienes que poner "preEmpujar"
Citar:
Otro problema que tengo está relacionado con los números reales. Si el número tiene decimales, pues sale con los decimales que tenga, pero claro, si le vas sumando 0.1, resulta que de vez en cuando te pone cosas como 3.10000000009. Me gustaría sacar el número redondeado con sólo dos decimales, pero no sé cómo puedo hacero.
¿Hay alguna guía de OgnlScript? Por lo que he visto por ahí, parece un proyecto medio abandonado...
OgnlScript te permite ejecutar Java, así que me imagino que esto debería funcionar:
Código:
println new java.text.DecimalFormat("####.##").format(#self.posicion)
Otra solución es trabajar con enteros y dividir entre 10 al imprimir. Es decir, sumarle al dial 1, y luego al pintar el dial, dividir entre 10. Hagas lo que hagas, siempre te puedes crear un método dentro de tu objeto que te lo devuelva o ya formateado, o ya dividido entre 10.
Código:
def pos: new java.text.DecimalFormat("####.##").format(posicion)