二十一歩目 お絵かきソフトを作る(1)
〜お絵かきソフト〜
なんか難しそうだよね
お絵かきソフトなんて・・・でも 今回やるのはたった6行だ・・・
(しかもこのプログラムを考えるのに1分とかからなかった・・・)
まあ ただ絵を書くだけというものだけどね
お絵かきソフトってことはだ マウスの矢印の位置のウインドウに
点を打てば良いわけだ
repeat ;繰り返しの始め pset mousex,mousey ;X座標mousex、Y座標mouseyの位置に1ドットの点を表示 await 5 ;待つ loop ;repeatヘ戻る |
これを実行するとウインドウの上で矢印を動かせば
矢印の位置に点が現れてきます
説明いくで〜
pset mousex,mousey |
これは まったく今までにない命令だね
でも簡単です(^^)ちゅうかかなり簡単です
X座標はmousex(つまりマウスのX座標)の
Y座標はmousey(つまりマウスのY座標)の位置に
1ドットの点を表示すると言うことです
1ドットっていうとかなり小さいよね
(ドットについて忘れた方はここの「ドットとは」を見よ!)
例えば こうしてみて
pset 100,100 stop |
こうしたらウインドウの左上から右に100ドット、下に100ドット
のところに1ドットの点を描(えが)きます
こうなります
矢印のさしてるところに1ドットの点があるのが見えますか?
それです(ちっちぇ〜)
まあこの点を何回もマウスの矢印のところに繰り返し打ってくってことだ
psetの使い方は分かったかな?
じゃあ次行こう
〜改良〜
では今度は マウスのボタンを押したら
矢印のところに点を表示するようにしましょう
ついでに ウインドウも小さくしよう
screen 0,200,200 ;ウインドウ0の大きさを変更 repeat ;繰り返しの始め getkey key,1 ;キー番号1のキーが押されたらkeyに1を入力 if key=1:pset mousex,mousey ;keyが1だったら x座標mousex,Y座標mouseyの位置に ;1ドットの点を表示 await 1 ;待つ loop ;repeatヘ戻る |
これを実行すると ウインドウが出ますから
マウスの左のボタンを押すと(ずーっと押しててもいいです)
マウスの矢印のとこに黒い点が現れます
(ペイントと同じです)
新しい命令だ・・・でも簡単なもんだ
getkey key,1 |
これは stick の時に言ってた もう一つのキーチェックの命令だ
stick同じでキーの入力をチェックする命令だ
stick と 違うのは キー番号を指定して 指定したキーが押されたら
変数(この場合key)に どんなキー番号を指定しても変数には1が入ります
ちなみに 押されていないときには0が入ります
それに stick とは違い いちいち数字を後ろに入れておかなくても
押されてる間はずっと変数に1が入り続けます
普通はstickよりかはgetkeyのほうが使うかもしれません(またしても僕の意見です)
指定したキー番号はこの場合1です(マウスの左クリック)
どんなキー番号を指定して その指定したキーを押しても 変数に入るのは
1です
(ちなみに getkey
key,1 として、スペースや Enterキーを押しても
keyには1は入りません あくまで指定したキーだけを検出するのです)
まあgetkeyは stick とは違って 一つのキーの情報しかわからないから
知りたいキーの分だけ getkey と書かないといけないけどね(^^;)
getkeyのキー番号についてはstickとはちゃうので
stickのときと同じようにダウンロードにあるソフトを使えばキー番号を
キーを押すだけで知れますのでそれを使ってください
〜描画色〜
ちなみにココで描画色についてはなしときます
描画色とは・・・ ウインドウでいうと描画先とかありましたが これとはちょっと違います 描画色と言うのは color で指定した色のことです(そのままやん) で 例えばcolor 255,255,255として その下にmes "A" さらにその下に mes "B" とあったら A と B は白色で表示されます これは描画色がcolor命令で白(255,255,255)に 指定されているからです 一度color命令で 指定したら mesなんかの色使うもの (color命令で変えられるもの)は すべてその描画色で描画されます もちろん 描画色はcolor命令で何回でも変更できます ウインドウの描画先と同じで一番最近に実行された color命令の色が描画色です |
説明が長くなったが 元に戻すぞ
pset は指定した位置に1ドットの点を描画すると言うことでした
でもこれを実行したら パソコンの速度によるけど
マウスの左クリックをずーっと押してマウスを動かしてるのに こんな風になるよね
ひょっとして僕のパソコンが遅いだけかもしれませんが(^^;
左クリックを押したままマウスを動かしたらこんな風になってしまいました
次回はこれの解決法です
まとめ・・・ getkey・・・指定したキー番号のキーが押されたら 変数に1を入力 getkey key,255 pset・・・指定した位置に1ドットの点を描画 pset 100,100 |