• 大小: 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个文件信息

评论

共有 条评论

相关资源