onTimerのコードを以下に。
procedure TForm1.Timer1Timer(Sender: TObject);
var
Goma:Integer;
Erai:Integer;
Pai:Single;
begin
//値を集める
//ゴマをかける
//値を更新
//計算
//値を反映させる
end;
こんな段階で作っていこうと思います。
まずは、Labelに表示されてる、
既に巻かれたゴマの数をGoma,Eraiに代入する、
値を集める 部分です。
//値を集める
Goma:=StrToInt(AllGoma.Caption);
Erai:=StrToInt(EraiGoma.Caption);
これだけ。
Captionも、ユーザーがいじるわけじゃないので、
変換できないことはないでしょう。
StrToIntは、
String To Integer
の略で、数字の文字列を数値にする奴ですよ。
ちょっとあまりに簡単だったので、次にいきましょう。
ここで変数が欲しくなりました。varを書き換えます。
var
Goma:Integer;
Erai:Integer;
Pai:Single;
NewX,NewY:Integer;
コンマ区切りで二つ書いてありますね。
実は、変数宣言の時、
同じ型であれば、
変数名A,変数名B:AとBの型;
と書いてよいのです。
というわけで、NewXとNewYを定義しました。
振り掛けるゴマの座標を保持する奴です。
コードを書き換えます。
//ゴマをかける
NewX:=Random(258);
NewY:=Random(258);
Image1.Canvas.Pixels[NewX,NewY]:=clRed;
はい、新しい関数です。
Random。ランダム。その名のとおり、
ランダムな数をくれます。
0〜引数として与えた数-1
のどれかを返すので、
0-257の乱数が欲しければ、258を渡します。
これで、NewXとNewYは、それぞれ0-257のどれかになるわけです。
そしたらゴマを描きましょう。
Image1はコンポーネント
Canvasはその絵の部分で
Pixels[X座標,Y座標]はその中の点ですね。
NewX,NewYの座標を指定して、
clRedを代入してます。
これで、ゴマが落ちた位置が赤くなります。
色を変えたい人はご自由にw
続きはまたあとで
コンテンツ
最新の12件
2023-06-12
2021-02-15
2013-06-19
2012-07-14
2012-02-04
2012-01-06
2011-03-31
2010-08-26
2010-03-15
2009-10-21
2009-02-12
2008-11-18
メニュー編集
- counter: 785
- today: 1
- yesterday: 0
- online: 1