|
ゲーム作りではじめる サポート情報 |
■サンプル・プログラムのダウンロード・サービス(2002年10月22日)
■掲載ソース・リストの間違いについて(2002年10月22日)
■サンプル・プログラムのダウンロード・サービス(2002年10月22日)
本書に掲載されているサンプル・プログラムのソース・コードを、以下に用意いたしました。必要なファイルをダウンロードしてご利用ください。
<1章>
| ファイル名 | サイズ | 説 明 |
| Wa1.ZIP | 48,784 バイト | VC++の基本操作(サンプル・プログラム「wa1」) |
| Wa2.ZIP | 101,974 バイト | サンプル・プログラム「wa2」 |
<2章>
| ファイル名 | サイズ | 説 明 |
| DoVi-sa1.ZIP | 42,956 バイト | ドキュメント/ビュー方式の減算プログラム |
| DoVi-kan1.ZIP | 98,083 バイト | ドキュメント/ビュー方式の関数を作るプログラム |
| Kurasu1.ZIP | 54,064 バイト | 自分自身のクラスを作るプログラム |
| Grokansu1.ZIP | 21,813 バイト | 自分自身で作るグローバル関数 |
| Ed1.ZIP | 50,933 バイト | エディット・ボックスとボタンを使ったプログラム(1) |
| Ed2.ZIP | 37,153 バイト | エディット・ボックスとボタンを使ったプログラム(1) |
| Kasan1.ZIP | 51,028 バイト | エディット・ボックスを使った加算プログラム |
| Sisoku1.ZIP | 51,228 バイト | 四則演算のプログラム |
| Dentaku1.ZIP | 56,259 バイト | 簡易電卓のプログラム |
<3章>
| ファイル名 | サイズ | 説 明 |
| Kousi1.ZIP | 37,159 バイト | サンプル・プログラム(格子を表示するプログラム) |
| Sin1.ZIP | 53,084 バイト | サンプル・プログラム(Sin関数を表示するプログラム) |
| Pict1.ZIP | 41,534 バイト | ピクチャ・コントロールに絵を描くプログラム(1) |
| Pict2.ZIP | 35,333 バイト | ピクチャ・コントロールに絵を描くプログラム(2) |
| HPict-0.ZIP | 234,390 バイト | ビットマップ・ファイルを画面に直接表示するプログラム |
| HPict-1.ZIP | 346,752 バイト | ビットマップ・ファイルをピクチャ(ボックス)に表示するプログラム |
| Icon1.ZIP | 78,395 バイト | アイコン・ファイルをピクチャとボタンに表示するプログラム |
| Btn3.ZIP | 46,267 バイト | ビットマップ・ファイルをピクチャとボタンに表示するプログラム |
| BtnColFnt1.ZIP | 99,820 バイト | ボタンとエディット・ボックスの色と文字のフォント・サイズの指定 |
| Timer1.ZIP | 62,045 バイト | タイマ処理(タイマーのサンプル・プログラム) |
<4章>
| ファイル名 | サイズ | 説 明 |
| Rocket1.ZIP | 95,653 バイト | ロケットを画面の左から右に飛ばすプログラム |
| Chyoview1.ZIP | 74,011 バイト | 蝶が画面の左から右に羽ばたいて飛ぶプログラム |
| Chyoview4.ZIP | 91,335 バイト | 蝶が画面上を自由に羽ばたいて飛ぶプログラム |
<5章>
| ファイル名 | サイズ | 説 明 |
| Mine1.ZIP | 72,740 バイト | 地雷当てゲーム(マイン・スイーパー) |
| Slot1.ZIP | 47,798 バイト | スロット・マシン |
| Mogura1.ZIP | 94,583 バイト | モグラたたき |
| Sinkei1.ZIP | 99,298 バイト | 神経衰弱 |
| Bingo1.ZIP | 71,217 バイト | ビンゴ・ゲーム |
| Pazul1.ZIP | 71,359 バイト | パズル・ゲーム |
| HorseRsce.ZIP | 110,712 バイト | ホース・レース |
| HansyaBan1.ZIP | 65,058 バイト | 反射板ゲーム |
| Maze1.ZIP | 70,287 バイト | 迷路ゲーム |
| Shoot1.ZIP | 91,136 バイト | シューティング・ゲーム |
■掲載ソース・リストの間違いについて(2002年10月22日)
本書に掲載されているソース・リストのいくつかに、以下のような間違いがあります。ソースを入力される際には、以下のリストのように、ボールド指定されている行を追加してください。
・149ページ 「OnButton関数」
・216ページ 「Pstart関数」
・230ページ 「OnTimer関数」
・241ページ 「OnInitialUpdate関数」
149ページ 「OnButton1関数」
-----------------------------------------------------------------
void CBtn1Dlg::OnButton1()
{
// TODO: この位置にコントロール通知ハンドラ用のコードを追加してください
COLORREF SysColorValue[3];
CEdit* ED1=(CEdit*)GetDlgItem(IDC_EDIT1);//本では抜けています
SysColorIndex[0]=COLOR_BTNFACE;
SysColorValue[0]=RGB(0,0,255);//ボタンの背景の色(青)
SysColorIndex[1]=COLOR_BTNSHADOW;
SysColorValue[1]=RGB(0,255,0);//ボタンの影の色(緑)
SysColorIndex[2]=COLOR_BTNTEXT;//ボタンのテキスト文字の色(白)
SysColorValue[2]=RGB(255,255,255);
//指定した色をシステムカラーとしてセットする
SetSysColors(3,(const int*)&SysColorIndex,(const COLORREF*)&SysColorValue);
SetDlgItemText(IDC_EDIT1,"片山幸雄");//あるいは
//ED1->SetWindowText("OK"); //本では抜けています
}
-----------------------------------------------------------------
216ページ 「Pstart関数」
-----------------------------------------------------------------
void CBItblt2Dlg::Pstart(UINT code)
{
CDC* pDC;
pDC=this->GetDC(); //本では抜けています
CDC myDC;
CBitmap myBMP[3],*old; //本では抜けています
int num=IDB_BITMAP1;
static int i=-2;
static int j=-2;
static int k=-2;
if( code == 1)//タイマー1
{
myDC.CreateCompatibleDC(pDC);
myBMP[0].LoadBitmap(num);
old=myDC.SelectObject(&myBMP[0]);
pDC->BitBlt(100,100,61,61,&myDC,0,i*10,SRCCOPY);
i=i+1;
if(i==18) i=-2;
}
else if( code == 2)//タイマー2
{
myDC.CreateCompatibleDC(pDC);
myBMP[1].LoadBitmap(num + 1);
old=myDC.SelectObject(&myBMP[1]);
pDC->BitBlt(200,100,61,61,&myDC,0,j*10,SRCCOPY);
j=j+1;
if(j==18) j=-5;
}
else //タイマー3
{
myDC.CreateCompatibleDC(pDC);
myBMP[2].LoadBitmap(num + 2);
old=myDC.SelectObject(&myBMP[2]);
pDC->BitBlt(300,100,61,61,&myDC,0,k*10,SRCCOPY);
k=k+1;
if(k==18) k=-5;
}
myDC.SelectObject(old);
ReleaseDC(pDC);
}
-----------------------------------------------------------------
230ページ 「OnTimer関数」
-----------------------------------------------------------------
void CSinkei1View::OnTimer(UINT nIDEvent)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
CString tmss;
int i ;
if( nIDEvent == 2 )//本では抜けています
{ //本では抜けています
tm=tm+1;
tmss.Format("%d",tm);
m_ed1.SetWindowText(" " + tmss + " 秒経過");
} //本では抜けています
for(i = 0 ; i < 9 ; i++)
{
lab1[i]=(CStatic*)GetDlgItem(IDC_STATIC1+i);
}
hico2=AfxGetApp()->LoadIcon(IDI_ICON1);//背景の絵
/* for(i=0 ; i < 9 ; i++)//必要のあるとき
{
hico1[i]=AfxGetApp()->LoadIcon(IDI_ICON1 + i);
}
*/
for(i = 0; i < 9 ; i++)
{
lab1[i]->SetIcon(hico2); //背景を表示する
}
hico3=AfxGetApp()->LoadIcon(IDI_ICON2);//manの絵
mg_ransu = (int)((double)rand()/32767.0 * 9.0 );//乱数の発生
lab1[mg_ransu]->SetIcon(hico3);//manの絵を表示する
CFormView::OnTimer(nIDEvent);
}
-----------------------------------------------------------------
241ページ 「OnInitialUpdate関数」
-----------------------------------------------------------------
void CSinkei1View::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
int i,j,k;
CString ss;
for(i=0; i < 36 ; i++)
{
lab1[i]=new CStatic();
}
k=0;
for(i=0; i < 6 ; i++)
{
for(j=0 ; j < 6 ; j++)
{
lab1[k]->Create(ss,SS_ICON|SS_NOTIFY|WS_VISIBLE|SS_CENTER,CRect(32*j*2+80,32*i*2+80,32*(j+1)*2+80,32*(i+1)*2+80),this,IDC_STATIC1 + k );
k=k+1; //SS_ICONをとるとテキストモードになる(本では抜けています)
}
//k=k+1; ←本ではここに「k=k+1」がありますが、上に移動します
}
}
-----------------------------------------------------------------
(株)工学社 第一I/O編集部
なお、本書の内容に関するご質問/お問い合わせは、次の方法で第一I/O編集部宛にお願いします。
※ご質問/お問い合わせの際、お客様の使用・動作環境などに添えて、具体的な症状をできるだけ詳しくお知らせください。
※FAXでのご質問/お問い合わせの場合は、必ずお客様のFAX番号を明記してください。