DOSでプログラミング!
今さらですが、DOS窓プログラムです。
いやーDOSで作るのは7年ぶりかもしれない。
ずっとWindowsだったからなぁ。
昔を思い出しながら参考文献をあたりライブラリを構築しました。
動き出すまでライブラリとサンプルで2日ほど費やしてしまった。
キー入力が分からなくて色々と捜したわけです。
その後、リストクラスとタスク管理を導入しました。
で、こんな画面です。
ゲームはチェルノブみたいな強制スクロールにしたいです・・が、全然未完成。
●プログラムについて
Windowsで作ったビットマップを読み込みそれを管理して表示します。
いまはWindowsで培った技術があるのでそれを応用したつくりです。
ライブラリはクラスでまとめてあります。
クラスでは不要なところをラッピングできるし、メモリ開放などの後処理も楽だから
使わない手はありません。
メモリはスモールモデルでプログラムとデータのそれぞれ64KBしか使えないのですが、
allocmemを使って、640KB以内のメモリ空間に仮想画面を作っています。
よって将来的には仮想画面を使った高度なこともできるはずです。
サンプルはTurboC++1.0.1を使って作製しています。
(※TurboC++1.0.1は米国のボーランドから無料ダウンロードできます。アセンブラを除く)
インラインアセンブラを使っているので他のコンパイラだとコンパイルできないかも
しれないです。
コンパイルはmakelib.batでライブラリを作って、makegame.batで実行ファイルを作ります。
コンパイラがない人はgame.exeを実行してください。
DOSアプリなのでWindowsNT/2000/XPでは動かないかもしれないです。
一番簡単なサンプル
#include<stdio.h> #include<conio.h> #include"draw.h" int main() { CDraw draw;//オブジェクトを作る printf("画面をMODE13hにします。"); getch(); draw.InitScreen(); draw.SetPalette(1,63,0,0); draw.SetPalette(2,63,63,0); draw.SetPalette(3,0,63,63); draw.Fill(0,0,160,100,1); draw.Line(0,0,320,200,2); draw.Line(320,0,0,200,3); getch(); return 0; }