・For文、ランダムなどを利用して、面白い(?)グラフィックスを表示させてみよう。
・丁半さいころゲーム(勝ち負けグラフィック表示版)
・ウィンドウのサイズSize.Width, Size.Heightをうまく使おう
DrawLine, DrawEllipseなどの簡単なグラフィックスを何本か描いても殆ど役に立たない。
ここでは、For文やランダムなどを利用して、ちょっとしたグラフィックスを書かせてみよう。下記に表示される絵の例がリンクされているので、これを頼りに作ってみよう。。。できるかな。。。そして他にも色々作ってみよう。
- タイムトンネル
まずは絵を良くみて、数々の円にどのような共通点があるのか、特にDrawEllipseのパラメータとして考えてみよう。
全ての円の始点が同じ、違うのは幅と高さ。
つまり始点のX,Y座標は固定で、幅と高さを、それぞれ1,2,3,...とさせれば。。。最初は、円の最大の大きさを固定として、例えば1〜200までなどとすると作りやすい。
次に、画面中央までとか、およそ画面をはみ出さないようにとか、工夫してみるとよいです。
- 同心円 (Option)
※ちょっと難しいかもしれないけど・・・
常に円の中心が同じになるようにして半径を変化させて次々と円を書けばよいのだが、
DrawEllipseの指定は中心座標を指定できないので、うまく変換計算してあげるひつようがある。- ふわふわシャボン玉
適当な位置に適当な大きさの半径の円を適当な数だけ、各々ランダムな色で描く。
最初は、位置を適当な範囲内(例えばx,yが0〜200など)とし、半径も適当な範囲内(0〜50など)、数も200個などと固定にすると作りやすい。
次に、位置を画面内全体のどこかとしたり、半径を20〜30のどれかランダム、数も例えば100〜200個のどれか(ランダム)としていくと、段々と面白くなる。
制限付き(例えば10〜20など)で適当な数を求める方法は、Rnd(1)が0〜1の値、x*Rnd(1)は、0〜xの値となることを理解すれば比較的簡単。- 乱雑な線
上記2と同じようにしますが、但し円ではなく、線にします。つまり適当なところから適当なところまで、適当な色の線を適当な個数描くというものです。
はやり最初は固定もしくは適当な制限付きとし、どんどんとランダム性を増していくと面白くなります。
また、ちょっと難しいかもしれないけど(といっても大したことではないですが)、線の長さに制限をかけるなどを考えても面白いです。線の長さは、始点と終点から計算できますし、指定した範囲でなければ、描かないようにすればよいでしょう。- 迷路?
ちょっと難しいそうですが、プログラムそのものはそれほど複雑にはなりません。
Select文を使ったほうがIf文よりもスマートに書けるかも。
まず、白黒(黒で線を描いていく)とし、描いていく線の回数も決めてしまうと簡単。考え方としては、まず適当なある点を出発点とする。
次に上下左右のどれかを適当に選択して、出発点から選んだ方向に5つ先まで線を引く。
そしてそこからまた上下左右に5つ線を引く。
これをある回数だけ繰り返すと迷路のようなものができあがる。
次回Doループを勉強すれば、はみ出すまで繰り返すというようにすることも可能ですが、現時点では残念ながらウィンドウをはみ出すこともあるけど、いまは仕方がありません。毎回描く線をランダムにカラーにすると、ちょっと見栄えがよくなります。更に、繰り返す回数を適当にきめるなど色々工夫が考えられます。
- 花火 (絵はありません)
打ち上げ花火のようなグラフィックスに挑戦してみよう。といってもしょぼくても仕方がないけど。
小さな丸を画面中央下から上に向かって真ん中まで描く。次に真ん中から2の同心円を描く。- 迷走花火 (絵はありません)
風の強い日の打ち上げ花火に挑戦してみては。打ち上げる際の軌跡をちょっとフラフラさせて風の影響を受けているような印象にするとよいでしょう。花火の大きさもランダムに決めるようにしてもよい。ちょっと難しいかな。
丁半さいころゲームを作っていた。さいころも表示されるようになったとおもうが、勝った場合には、花火、紙ふぶきが舞い上がるようなグラフィックスを、負けた場合には落ち込むようなグラフィックスを表示させてみよう。