-
大小: 4.46MB文件类型: .rar金币: 1下载: 0 次发布日期: 2023-09-18
- 语言: C/C++
- 标签:
资源简介
gdi+游戏框架这是一个用vc6.0写的Win32游戏框架.当然,这算不上引擎.该源码付带了一个简单的粒子系统,用来模拟雪花测试.因为用了png图片绘制雪花,所以得到平均每秒也只有32帧.对于2D游戏来讲够了.如果用透明渐变的话绘图很明显变慢.可能这是GDI+一个不完美的地方.所以讲只要不是特效,或一定要用到透明渐变不要用png图片.BitBlt是DrawImage的一百四十倍!源代码中用了双缓冲,所以1024*764画图也不会出现闪烁!
代码片段和文件信息
#include “stdafx.h“
#include “snow.h“
#include “stdio.h“
//gdi+用到的两个变量
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_pGdiToken;
Image *image;
Image *src;
//全局变量
HINSTANCE hInst;
HBITMAP map;
HDC hdcmdcbuffer;
HWND hWnd;
DWORD tPretNow;
int x=0y=0;
int fps=0;
int frame=0;
DWORD tCheck=0;
snow *snowsecen;
char str[40];
//ㄧΑ
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)
{
MSG msg;
MyRegisterClass(hInstance);
//初始化
if (!InitInstance (hInstance nCmdShow))
{
return FALSE;
}
//消息循环
while( msg.message!=WM_QUIT )
{
if( PeekMessage( &msg NULL 00 PM_REMOVE) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
{
tNow = GetTickCount();
if(tNow-tPre >= 15)
{
MyPaint(hdc);
if(GetAsyncKeyState(VK_UP)&0x8000f)
{
y -= 10;
if(y < 0)
y = 0;
}
if(GetAsyncKeyState(VK_DOWN)&0x8000f)
{
y += 10;
if(y > 660)
y = 660;
}
if(GetAsyncKeyState(VK_LEFT)&0x8000f)
{
x -= 10;
if(x < 0)
x = 0;
}
if(GetAsyncKeyState(VK_RIGHT)&0x8000f)
{
x += 10;
if(x > 910)
x = 910;
}
}
}
}
return msg.wParam;
}
//****注册窗口类*************************
ATOM MyRegisterClass(HINSTANCE hInstance)
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = NULL;
wcex.hCursor = NULL;
wcex.hCursor = LoadCursor(NULL IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = “canvas“;
wcex.hIconSm = NULL;
return RegisterClassEx(&wcex);
}
//****﹍ㄧΑ*************************************
// 初始化
BOOL InitInstance(HINSTANCE hInstance int nCmdShow)
{
HBITMAP bmp;
hInst = hInstance;
hWnd = CreateWindow(“canvas“ “2D游戏框架透明渐变混合“ WS_OVERLAPPEDWINDOW
CW_USEDEFAULT 0 CW_USEDEFAULT 0 NULL NULL hInstance NULL);
if (!hWnd)
{
return FALSE;
}
MoveWindow(hWnd001024768true);
ShowWindow(hWnd nCmdShow);
UpdateWindow(hWnd);
hdc = GetDC(hWnd);
mdc = CreateCompatibleDC(hdc);
buffer=CreateCompatibleDC(hdc);
bmp=CreateCompatibleBitmap(hdc1024768);
//装载gdi+
GdiplusStartup(&m_pGdiToken&m_gdiplusStartupInputNULL);
//
snowsecen=new snow();
src=new Image(L“p.png“);
image=new Image(L“f123.png“);
map = (HBITMAP)LoadImage(NULL“black.bmp“IMAGE_BITMAP1024768LR_LOADFR
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 120429 2007-01-30 20:12 GDI+ Game\f123.png
文件 1404 2008-09-18 13:47 GDI+ Game\canvas.aps
文件 535 2003-06-28 22:11 GDI+ Game\canvas.dsw
文件 176216 2008-09-19 00:38 GDI+ Game\canvas.exe
文件 326 2003-06-28 21:16 GDI+ Game\canvas.h
文件 123904 2008-09-19 01:06 GDI+ Game\canvas.ncb
文件 1242 2008-09-19 01:05 GDI+ Game\canvas.plg
文件 1662 2003-06-28 21:53 GDI+ Game\canvas.rc
文件 410 2003-06-28 21:53 GDI+ Game\resource.h
文件 293 2003-06-28 21:16 GDI+ Game\StdAfx.cpp
文件 1133 2008-09-18 13:10 GDI+ Game\StdAfx.h
..A.SH. 36864 2008-09-18 21:46 GDI+ Game\Thumbs.db
文件 32 2008-09-18 11:28 GDI+ Game\Debug\canvas.res
文件 254976 2008-09-19 01:05 GDI+ Game\Debug\vc60.idb
文件 471040 2008-09-19 01:05 GDI+ Game\Debug\vc60.pdb
文件 176216 2008-09-19 01:05 GDI+ Game\Debug\canvas.exe
文件 435200 2008-09-19 01:05 GDI+ Game\Debug\canvas.pdb
文件 1210932 2008-09-18 13:10 GDI+ Game\Debug\StdAfx.sbr
文件 6194636 2008-09-18 13:10 GDI+ Game\Debug\canvas.pch
文件 146324 2008-09-18 13:10 GDI+ Game\Debug\StdAfx.obj
文件 6842 2008-09-19 01:05 GDI+ Game\Debug\canvas.sbr
文件 2761728 2008-09-18 13:11 GDI+ Game\Debug\canvas.bsc
文件 144 2008-09-18 18:04 GDI+ Game\Debug\snow.sbr
文件 1797 2008-09-18 18:04 GDI+ Game\Debug\snow.obj
文件 32279 2008-09-19 01:05 GDI+ Game\Debug\canvas.obj
文件 228768 2008-09-19 01:05 GDI+ Game\Debug\canvas.ilk
目录 0 2008-09-18 13:46 GDI+ Game\Debug
文件 2973 2008-09-17 20:07 GDI+ Game\snow.png
文件 40 2008-09-18 18:04 GDI+ Game\snow.cpp
文件 4417 2008-09-18 18:15 GDI+ Game\canvas.dsp
............此处省略9个文件信息
- 上一篇:linux电子词典小项目
- 下一篇:用C++实现MapInfo 的mif文件读取源码
评论
共有 条评论