1
私はゲームのためのこのポップアップカウントダウンタイマーを構築しています。問題は、アニメーションを更新してディスプレイが変更されるようにする方法を見つけることができないことです。これまでのところ動作しますが、数字が変わるのを見ることはできません。それは00:00に混じります。私はこれまでのところ、この変更に問題があることはかなり肯定的です。これは緑色の靴で行われます。私がここで間違っていることは何ですか?ルビー緑の靴のタイマー
#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
ウィンドウブロック内にメソッドを定義することについて説明しているリファレンスはありますか?私はdefが現在のクラスが何であれ自分自身を添付していることを知っています。ウィンドウブロック内の自己はウィンドウですが、必ずしも現在のクラスがウィンドウであるとは限りません。 'instance_eval'ブロックではselfが呼び出し側ですが、現在のクラスは呼び出し側のシングルトンクラスです。一方、クラス内では 'class Dog'と言うが、defの外にある、self = Dogであり、現在のクラスはDogです。あなたのコードはエラーなく実行されるので、 'self = window = current_class'です。 – 7stud
私は実際にルビーには新しいので、私はそれを推測した、あなたは間違いなく実行されます。面白いのは、@ p.textとsegフォールトのメソッドエラーを取得して、パラの呼び出しの中でインスタンス変数を呼び出そうとしたときです。悲しいことに、緑色の靴は現在の靴に比べて少し役に立たないけど、それは私のグループの選択肢です。今回はブロック外のメソッドを作成し、それが何か変わるかどうかを確認します。 – LogNIsGood
大丈夫です。私はあなたの質問に答えるために定期的な靴(walkabout)を使用しました。そしてOSXではひどく見えます。ウィンドウのタイトルはぼやけており、最小、最大、および閉じるボタンもあります。これは、誰かがひどい携帯電話でOSXのウィンドウを撮影し、それを.pngに変換してから、それを使ってウィンドウを表現したようなものです。他にも問題があります:要素のタイトル、サブタイトル、キャプションのテキストがベースラインで切り取られます。何年も前、私はwxRubyを使いこなしました。残念ながら、メンテナーはwxRubyをあきらめました。 – 7stud