Ich baue diesen Popup-Countdown-Timer für ein Spiel. Das Problem ist, dass ich nicht herausfinden kann, wie ich das Animate aktualisieren kann, damit sich auch die Anzeige ändert. Es funktioniert so weit, aber Sie können die Zahlen nicht ändern sehen. Es fügt sich in die 00:00 ein. Ich bin mir ziemlich sicher, dass es bisher nur Probleme mit dieser Veränderung gibt. Dies geschieht mit grünen Schuhen. Irgendwelche Ideen, was ich hier falsch mache?Rubingrün Schuhe Timer
#Timer button used for creating a countdown timer for the game.
#Game ends when timer is zero.
flow width: 80, height: 0.2 do
button 'Timer', width: 1.0, height: 1.0 do
window do
def time_change!
@clock = '%02d:%02d' % [@second/60, @second % 60]
if(@second == 0)
alert "game is over"
@clock = '00:00'
close()
para @clock, size: 50, stroke: black
end
end
background whitesmoke
@clock = '00:00'
para @clock, size: 50, stroke: black
@second = 10
animate(1) do
@second -= 1
time_change!
para @clock, size: 50, stroke: black
end
end
end
Haben Sie Referenzen, die das Definieren einer Methode in einem Fensterblock beschreiben? Ich bin mir bewusst, dass sich Defs an die aktuelle Klasse anhängen, und ich weiß, dass das Selbst innerhalb eines Fensterblocks das Fenster ist, aber es folgt nicht notwendigerweise, dass die aktuelle Klasse das Fenster ist, z. In einem 'instance_eval'-Block ist self der Aufrufer, während die aktuelle Klasse die Singleton-Klasse des Aufrufers ist. Auf der anderen Seite, in einer Klasse, sagen "Klasse Dog", aber außerhalb jeder Defs, self = Dog und die aktuelle Klasse ist auch Dog. Ihr Code wird ohne Fehler ausgeführt, also 'self = window = current_class'. – 7stud
Ich bin eigentlich neu zu Ruby, also habe ich eine Vermutung darüber, und Sie haben recht, es läuft ohne Fehler. Die interessante Sache ist, dass ich am Ende Methodenfehler für @ p.text erhalte und Fehler segne, um zu versuchen, Instanzvariablen innerhalb eines para-Aufrufs aufzurufen. Traurig, grüne Schuhe sind ein wenig nutzlos im Vergleich zu aktuellen Schuhen, aber es ist das, das meine Gruppe zu verwenden. Ich werde diese Methode diesmal außerhalb des Blocks machen und sehen, ob sich das ändert – LogNIsGood
Okay. Ich habe normale Schuhe (Walkabout) benutzt, um deine Frage zu beantworten, und es sieht in OSX schrecklich aus. Der Fenstertitel ist verschwommen, ebenso die Schaltflächen für Min, Max und Schließen. Es ist, als hätte jemand ein OSX-Fenster mit einem schrecklichen Handy aufgenommen, dann in ein .png konvertiert und dann ein Fenster dargestellt. Es gibt auch andere Probleme: Der Text in den Elementen title, subtitle und caption wird in der Baseline abgeschnitten. Vor vielen Jahren habe ich mit wxRuby herumgespielt, und es war ziemlich nett. Leider hat der Betreuer wxRuby aufgegeben. – 7stud