亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.cpp

?? 《游戲編程中的人工智能技術》一書中6
?? CPP
字號:

#include <windows.h>   
#include <stdlib.h>
#include <time.h>
#include <mmsystem.h>


#include "defines.h"
#include "utils.h"
#include "CTimer.h"
#include "CGun.h"




///////////////////////GLOBALS ////////////////////////////////////

char*			szApplicationName = "Chapter6 - Transformations with Matrices";
char*			szWindowClassName = "Simple shapes";

//create an instance of the gun
CGun g_Gun(WINDOW_WIDTH/2, WINDOW_HEIGHT/2, 5, 0);

//-----------------------------------WinProc-----------------------------
//
//-----------------------------------------------------------------------
LRESULT CALLBACK WindowProc(HWND hWnd, 
						                UINT msg, 
                            WPARAM wparam, 
                            LPARAM lparam)
{
	//these hold the dimensions of the client window area
	static int cxClient, cyClient;

	//used to create the back buffer
	static HDC		  hdcBackBuffer;
	static HBITMAP	hBitmap;
	static HBITMAP	hOldBitmap; 


	switch(msg)
	{	
		case WM_CREATE: 
		{
			//seed the random number generator
			srand((unsigned) time(NULL));

			//get the size of the client window
			RECT rect;
			GetClientRect(hWnd, &rect);

			cxClient = rect.right;
			cyClient = rect.bottom;

			//create a surface for us to render to(backbuffer)
			hdcBackBuffer = CreateCompatibleDC(NULL);

			HDC hdc = GetDC(hWnd);

			hBitmap = CreateCompatibleBitmap(hdc,
											                 cxClient,
											                 cyClient);
			ReleaseDC(hWnd, hdc);

			hOldBitmap = (HBITMAP)SelectObject(hdcBackBuffer, hBitmap); 

		} 
			
		break;
		
		//check key press messages
		case WM_KEYUP:
		{
			switch(wparam)
			{

				case VK_ESCAPE:
				{
					PostQuitMessage(0);
				}

				break;

			}//end WM_KEYUP switch
		}

		break;

		case WM_PAINT: 
		{
      
      
      PAINTSTRUCT ps;
      
		  BeginPaint(hWnd, &ps);
		
			//fill our backbuffer with white
			BitBlt(hdcBackBuffer,
             0,
             0,
             cxClient,
             cyClient,
             NULL,
             NULL,
             NULL,
             WHITENESS);
			
      //render the gun
      g_Gun.Render(hdcBackBuffer);
			
			//now blit backbuffer to front
			BitBlt(ps.hdc, 0, 0, cxClient, cyClient, hdcBackBuffer, 0, 0, SRCCOPY); 

			EndPaint(hWnd, &ps);
		} 
			
		break;

		case WM_DESTROY: 
		{
			SelectObject(hdcBackBuffer, hOldBitmap);
			
			//clean up our backbuffer objects
			DeleteDC(hdcBackBuffer);
			DeleteObject(hBitmap); 

      // kill the application, this sends a WM_QUIT message 
			PostQuitMessage(0);
 		} 
			
		break;

		default:break;

	}//end switch

	// default msg handler 
	return (DefWindowProc(hWnd, msg, wparam, lparam));

}//end WinProc


//-----------------------------------WinMain-----------------------------------------
//	Entry point for our windows application
//-----------------------------------------------------------------------------------
int WINAPI WinMain(	HINSTANCE hinstance,
					          HINSTANCE hprevinstance,
					          LPSTR lpcmdline,
					          int ncmdshow)
{

	WNDCLASSEX winclass; 
	HWND	   hWnd;	 
	MSG		   msg;		 

	// first fill in the window class stucture
	winclass.cbSize       = sizeof(WNDCLASSEX);
	winclass.style			  = CS_HREDRAW | CS_VREDRAW;
	winclass.lpfnWndProc	= WindowProc;
	winclass.cbClsExtra		= 0;
	winclass.cbWndExtra		= 0;
	winclass.hInstance		= hinstance;
	winclass.hIcon			  = NULL;
	winclass.hCursor		  = LoadCursor(NULL, IDC_ARROW); 
	winclass.hbrBackground= NULL; 
	winclass.lpszMenuName	= NULL;
	winclass.lpszClassName= szWindowClassName;
	winclass.hIconSm      = NULL;


	// register the window class
	if (!RegisterClassEx(&winclass))
	{
		MessageBox(NULL, "Error Registering Class!", "Error", 0);
    return 0;
	}

	// create a window which cannot be resized
	if (!(hWnd = CreateWindowEx(NULL,									
								szWindowClassName,						
								szApplicationName,						
								WS_OVERLAPPED | WS_VISIBLE | WS_CAPTION | WS_SYSMENU,
					 			0,0,									
								WINDOW_WIDTH,WINDOW_HEIGHT,				
								NULL,									
								NULL,								
								hinstance,								
								NULL)))	
	{
    MessageBox(NULL, "Error Creating Window!", "Error", 0);
		return 0;
	}
	
	// Show the window
	ShowWindow(hWnd, SW_SHOWDEFAULT );
	UpdateWindow(hWnd);

	//create a timer
	CTimer timer(FRAMES_PER_SECOND);

	//start the timer
	timer.Start();

	// Enter the message loop
	bool bDone = false;

	while(!bDone)
	{
					
		while( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) 
		{
			if( msg.message == WM_QUIT ) 
			{
				// Stop loop if it's a quit message
				bDone = true;
			} 

			else 
			{
				TranslateMessage( &msg );
				DispatchMessage( &msg );
			}
		}
							
		if (timer.ReadyForNextFrame())
		{	
	    //update the gun
      g_Gun.Update();


			//this will call WM_PAINT which will render our scene
			InvalidateRect(hWnd, NULL, TRUE);
			UpdateWindow(hWnd);
    }					
					
	}//end while
	

  UnregisterClass( szWindowClassName, winclass.hInstance );
	
	return 0;

} // end WinMain



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美主播一区二区三区| 久久精品99国产国产精| 波多野结衣中文字幕一区二区三区| 欧美一级一级性生活免费录像| 亚洲成av人片在线| 91精品国产麻豆| 九色porny丨国产精品| 本田岬高潮一区二区三区| 欧美精品一区二区三区一线天视频 | 日韩视频一区二区三区在线播放| 国产v日产∨综合v精品视频| 成人午夜av影视| 日韩不卡一区二区三区| 天天色综合天天| 国产91精品久久久久久久网曝门| 99久久精品一区二区| 午夜精品影院在线观看| 九色|91porny| 国产亚洲精品免费| 一区二区三区四区五区视频在线观看| 五月天亚洲精品| 成人av在线观| 91国产精品成人| 国产成人啪免费观看软件| 成人丝袜视频网| 欧美日韩国产精品成人| 日韩一级大片在线观看| 一区二区在线观看av| 久久精品国产亚洲高清剧情介绍 | 精品一区二区三区免费| 日韩激情av在线| 天天操天天色综合| 美国欧美日韩国产在线播放| 麻豆国产欧美一区二区三区| 麻豆精品蜜桃视频网站| 久久久99久久| 韩国女主播成人在线| 欧美亚洲国产一卡| 91麻豆精品国产91久久久久 | 国产精品一二三区在线| 中文av一区特黄| 91激情五月电影| 精品国精品国产| 91麻豆精品在线观看| 国产清纯白嫩初高生在线观看91| 亚洲色欲色欲www| 欧美视频精品在线| 国产91精品露脸国语对白| 日日嗨av一区二区三区四区| 国产精品卡一卡二| 日韩精品专区在线| 欧美少妇性性性| 91啪亚洲精品| 国产电影一区在线| 在线观看欧美精品| 精品制服美女丁香| 亚洲欧美在线视频| 一本到不卡免费一区二区| 亚洲精品中文在线| 91亚洲大成网污www| 国产精品三级久久久久三级| 大桥未久av一区二区三区中文| 色综合久久综合网欧美综合网| 综合在线观看色| 国产精品一区二区视频| 午夜婷婷国产麻豆精品| 亚洲图片欧美激情| 国产日韩精品一区二区三区| 欧美v亚洲v综合ⅴ国产v| 欧美在线视频日韩| 色8久久精品久久久久久蜜| 成人免费视频免费观看| 国产成人综合自拍| 国产在线一区二区综合免费视频| 日本中文字幕不卡| 免费一级欧美片在线观看| 午夜欧美大尺度福利影院在线看| 一区二区三区.www| 亚洲女同女同女同女同女同69| 国产精品午夜春色av| 国产片一区二区三区| 国产人成一区二区三区影院| 国产欧美一区二区三区鸳鸯浴| 久久亚洲一级片| 欧美精品一区视频| 久久久三级国产网站| 久久久91精品国产一区二区精品| 久久久午夜电影| 国产精品嫩草影院com| 国产精品久久午夜| 亚洲男人天堂一区| 亚洲国产日韩精品| 蜜臀久久99精品久久久久久9| 免费成人你懂的| 国产呦萝稀缺另类资源| 国产乱码精品一区二区三| 国产乱子伦视频一区二区三区 | 久久99久久久久| 国产在线不卡视频| 高清不卡一区二区在线| 欧美一区二区在线免费观看| 日韩欧美一级二级三级久久久| 欧美tickle裸体挠脚心vk| 中文字幕av一区二区三区高| 亚洲男帅同性gay1069| 日韩精品电影一区亚洲| 国产在线视视频有精品| 99国产麻豆精品| 在线电影院国产精品| 久久在线免费观看| 亚洲免费视频成人| 老司机午夜精品99久久| 成人福利视频网站| 欧美日韩亚洲综合一区| 久久只精品国产| 一区二区三区中文字幕电影| 久久精品国内一区二区三区| 不卡视频免费播放| 欧美一区二区三区视频在线| 国产女同互慰高潮91漫画| 亚洲风情在线资源站| 久久精品国产99久久6| 不卡电影一区二区三区| 欧美一级日韩免费不卡| 欧美经典三级视频一区二区三区| 亚洲综合成人在线| 国产成人欧美日韩在线电影| 欧美日韩色综合| 欧美激情自拍偷拍| 天堂一区二区在线| www.综合网.com| 日韩美女在线视频| 亚洲一区二区综合| 成人美女视频在线观看18| 日韩一区二区三区电影在线观看 | 国产欧美日韩在线| 五月天视频一区| 91免费视频网| 国产亚洲污的网站| 久久精品理论片| 欧美四级电影在线观看| 国产精品网站一区| 精品亚洲国产成人av制服丝袜| 欧日韩精品视频| 中文字幕在线不卡| 国产一区二区三区香蕉| 欧美一区二区精品在线| 夜夜操天天操亚洲| 色综合天天在线| 国产精品久久免费看| 国产精品一级黄| 欧美mv和日韩mv国产网站| 午夜视频一区二区| 欧美视频在线不卡| 亚洲精品亚洲人成人网| 成人av电影在线网| 欧美国产欧美综合| 国产成人综合在线观看| 久久久久99精品一区| 欧美日韩一区二区在线观看视频| 中文字幕中文字幕一区二区| 国产乱码精品一区二区三区av| 欧美成人精精品一区二区频| 日本成人在线一区| 777午夜精品视频在线播放| 亚洲第一av色| 欧美久久一二区| 日日摸夜夜添夜夜添国产精品 | 久久99国产乱子伦精品免费| 91精品国产一区二区三区香蕉 | 精品综合免费视频观看| 欧美一区二区女人| 麻豆精品在线播放| 精品国产不卡一区二区三区| 久久久久国产免费免费| 久久精品网站免费观看| 国产三区在线成人av| 欧美一级淫片007| 成人av在线电影| 久久精品国产亚洲高清剧情介绍 | 欧美不卡123| 欧美日韩夫妻久久| 欧美不卡在线视频| 麻豆精品视频在线观看视频| 欧美一区二区在线免费播放 | 久久精品水蜜桃av综合天堂| 国产一区不卡在线| 国产精品视频第一区| 91尤物视频在线观看| 亚洲一区二区三区视频在线| 欧美日韩国产一二三| 精品在线视频一区| 国产精品天干天干在观线| 色综合久久久久综合体桃花网| 亚洲丶国产丶欧美一区二区三区| 欧美日韩www| 亚洲国产精品嫩草影院| 成人一级片网址| 亚洲人成7777| 欧美韩国日本综合|