Visual C 遊戲程式設計基礎之遊戲迴圈

2021-09-24 02:43:10 字數 2260 閱讀 5666

1.函式原型

boolpeekmessage(lpmsgipmsg,hwndhwnd,uintwmsgfiltermin,uintwmsgfiltermax,uintwremovemsg);

功    能:用於檢測訊息,檢測到了就返回非0值,否則返回0;

引數一:接收訊息資訊的msg結構指標;

引數二:其訊息被檢查的視窗控制代碼;

引數三:指定被檢查的訊息範圍裡的第乙個訊息,這裡設為0;

引數四:指定被檢查的訊息範圍裡的最後乙個訊息,也設為0;

引數五:根據引數值確定訊息如何處理,這裡使用pm_remove,意思是使用後將訊息從訊息佇列中除掉;

2.函式原型

dword gettickcount(void);

功    能:返回系統從開始到現在經過的時間,毫秒級

1.定時器適用顯示簡易動畫及小遊戲程式,當遊戲整合多種訊息處理、數**算、大量音效時,定時器達不到標準,因此採用遊    戲迴圈,通過判斷是否有訊息,有訊息處理訊息,沒有則每隔一段時間重繪畫面;

2.利用tpre表示上一次開始繪圖的時間;tnow表示當前時間;tnow-tpre表示從上一次繪圖到現在經過了多長時間,通過它來控      制遊戲的速度;

#include "stdafx.h"

#include hinstance hinst;

hbitmap man[10];

hdc hdc,mdc;

hwnd hwnd;

dword tpre,tnow,tcheck;//tpre表示前次繪圖的時間;tnow記錄此次準備繪圖的時間;tcheck記錄每秒開始的時間?????

int num,frame,fps;//圖號、累加畫面更新次數、每秒畫面更新次數

atom myregisterclass(hinstance hinstance);

bool initinstance(hinstance, int);

lresult callback wndproc(hwnd, uint, wparam, lparam);

void mypaint(hdc hdc);

int apientry winmain(hinstance hinstance,

hinstance hprevinstance,

lpstr lpcmdline,

int ncmdshow)

while( msg.message!=wm_quit )//當收到的訊息不是視窗結束訊息時,進入迴圈,message是乙個訊息型別的代號

else

}return msg.wparam;

}atom myregisterclass(hinstance hinstance)

bool initinstance(hinstance hinstance, int ncmdshow)

movewindow(hwnd,10,10,440,280,true);

showwindow(hwnd, ncmdshow);

updatewindow(hwnd);

hdc = getdc(hwnd);

mdc = createcompatibledc(hdc);

for(i=0;i<8;i++)

num = 0;

frame = 0;

mypaint(hdc);

return true;

}void mypaint(hdc hdc)

selectobject(mdc,man[num]);

sprintf(str,"每秒鐘顯示%d 個畫面",fps);

textout(mdc,0,0,str,strlen(str));//將str所指向的內容和長度輸出至視窗文字框

bitblt(hdc,0,0,426,240,mdc,0,0,srccopy);

tpre = gettickcount(); //記錄此次繪圖時間

Visual C 遊戲程式設計基礎之透明動畫

1.利用前面學過的透明處理,這一次相當於是對每一幀進行透明處理,如第一次迴圈對第一幀進行透明處理,接著顯示 第二次對第二幀透明處理,接著顯示,直到最後一幀,然後再從第一幀開始,就這樣無限迴圈 include stdafx.h hinstance hinst hbitmap dra,bg bg為背景圖...

Visual C 遊戲程式設計基礎之鍵盤訊息

1.虛擬鍵碼 windows系統下所有的按鍵被視為虛擬鍵 包含滑鼠在內 每乙個虛擬鍵都有其對應的虛擬鍵碼 2.鍵盤訊息 1 vm kewdown 按下按鍵訊息 2 vm keyup 鬆開按鍵訊息 3 vm char 字元訊息,當按下的按鍵為定義於ascii碼中的可列印字元時,便發出此字元訊息 3.系...

Visual C 遊戲程式設計基礎之搜尋迷宮出口

1.建立8 8迷宮陣列,使用0,1,2,3初始化,0,1,2,3分別表示牆 通道 入口 出口,使用地圖貼圖知識建立迷宮 2.建立堆疊結構記錄走過的方格編號,即走到某個方格就把該方格編號壓入堆疊 若發現路不通,就把該編號出棧,棧頂元素表示 小球所在的方格編號 3.根據迷宮陣列中的值,在初始化函式中對每...