Visual C++.NETでは、いろいろな用途のウィンドウを使いこなす必要があります。
ここでは必要なウィンドウの表示ができるかを試します。
Visual C++の役目は、ソースコードを記述することと、それをビルド(コンパイル)して実行することです。
ここでは、ファイルの読み込みとソースコードの表示、ビルド、実行ができるかどうかを試します。
ソースコードの修正方法を覚えます。
そのために、ウィンドウに斜めの線を1本引いてみます。
追加するコードはたった2行です。
果たして解答できますでしょうか?
ウィンドウを意識した問題です。
ウィンドウのサイズに合わせて楕円と対角線を描いてみます。
もちろんウィンドウサイズを変えれば、図形のサイズもそれに応じて変化します。
プログラムでは繰り返し文を使うことによって、手間を減らすことができます。
ここでは複数の円を繰り返し文を使って描いて見ます。
規則性のない線をウィンドウの中に引いてみる問題です。
規則性のない線を引くには乱数を使います。
乱数はゲームなどで頻繁に利用されます。
Windowsのプログラムは、プログラムとリソースが組みになっています。
リソースとは画像や文字などのデータを指します。
ここではリソースの登録ができるか試します。
プログラムを実行したときに、画像ファイルを読み込んで、ウィンドウいっぱいに表示するプログラムです。
画像を扱う基本がわかります。
文字を表示してみます。
このとき、文字色や背景色を指定してみます。
カラフルな文字が表示されます。
文字に、フォントとサイズを指定してみます。
そのためにはフォント情報を作成し、それを有効にするといった手順が必要となります。
Windowsプログラムならばマウス処理ができないとはじまりません。
ここでは、マウスをクリックしたところに円を描いてみます。
追加ソースコードは、これまたたった2行です。
右の画面では分かりませんが、円が左から右に動いていきます。
このようなリアルタイム処理を行うにはタイマー処理が必須です。
追加するソースコードは、たった3行です。
ウィンドウサイズが変わると大きさが変わるサイコロを描いてみます。
これまでに出てきた「図形描画」の知識を利用すれば難しくはないでしょう。
マウスが動くたびに図形を描くことで、絵が描けるようにします。
また、マウスカーソルがウィンドウの外にはみ出しても、絵が引き続き描かれるように「マウスの独占」という工夫をします。
タイマーを使って、2枚の画像を一定時間ごとに描き、簡単なパタパタアニメーションをさせてみます(実際には右のハムスターがピョコピョコします)。
絵を変更すれば自分の描いた画像でアニメーションをさせることもできます。
複数のフレーム(画像)を使ったアニメーションをさせてみます(実際には右のハムスターがクルクルと回転します)。
具体的には、複数のフレームを1枚画像にしておき、フレームを順番にウィンドウにコピーするという、定番テクニックを紹介します。
ウィンドウの右下に、時計を表示してみます。
ウィンドウのサイズを変えても、時計は必ずウィンドウの右下に表示されます。
この実現のためには、文字列の縦横サイズを得る知識が必要となります。
ゲームのブロッククズシの玉のように、ボールがウィンドウの隅で反射します。
ほうっておけば、無限に円がウィンドウ内を動き回ります。
ウィンドウのサイズを変えても大丈夫です。
ランダムな位置に現れる四角を、マウスで叩くゲームを作ってみます。
これまでの描画やタイマーといった知識の集大成です。
また、ゲームプログラムの構造的な基礎がわかります。
第31問からは、プログラムを配布するための知識が試されます。
ここでは、しっかりしたプログラムとするためにアイコンを作成して登録してみます。
アイコン作成の手順やノウハウが理解できます。
その他、クレジットなどの入れ方も学習できます。
本書では、プログラムを単純化するために、ミニスケルトンというひな型を使っていますが、最後にWindowsの標準スケルトンを使って、プログラムを作ってみます。
ここまで問題を解いてきた人ならば、すんなり解答できることでしょう。