📄 dkg15.cpp
字号:
// DKG15.cpp : Defines the entry point for the application.
//
#define STRICT
#define WIN32_LEAN_AND_MEAN
#include "stdafx.h"
#include "win.h"
#include "GameMain.h"
const TCHAR szProgram[] = _T("DKG15-《贪吃蛇》-DKink|棼紫制作");
const TCHAR szDeath[] = _T("蛇已阵亡,回车继续。");
HICON g_IconBody = NULL;
HICON g_IconFood = NULL;
HICON g_IconNoFood = NULL;
HICON G_IconLogo = NULL;
GameMain g_Main;
/////////////////////////////////////////////////////////
//初始化和释放资源
bool InitFunc()
{
HINSTANCE hInst = GetModuleHandle(NULL);
g_IconBody = LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON_BODY));
g_IconFood = LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON_FOOD));
g_IconNoFood = LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON_NOFOOD));
G_IconLogo = LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON_LOGO));
//MyMessageBox(NULL,_T("初始化资源"),NULL,MB_OK,IDI_ICON_APP);
return true;
}
bool FreeFunc()
{
//MyMessageBox(NULL,_T("释放资源"),NULL,MB_OK,IDI_ICON_APP);
return true;
}
//////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////
//逻辑运算
bool FrameFunc()
{
//MessageBox(NULL,NULL,NULL,MB_OK);
//MyMessageBox(NULL,NULL,NULL,MB_OK,IDI_ICON_APP);
g_Main.UpData();
return false;
}
//////////////////////////////////////////////////////////
//绘图
bool RenderFunc(HDC hDC)
{
////////////////////////////////////////////////////
//绘LOGO
if (g_Main.IsLogo())
{
SetBkMode(hDC, TRANSPARENT);
static TCHAR szName[]=_T("DK的《贪吃蛇》");
static TCHAR szIndex[]=_T("DKGame第15部");
static TCHAR szWirter[]=_T("DKink|棼紫 制作");
static TCHAR szQQ[]=_T("QQ:8566427");
static TCHAR szEmail[]=_T("DKink@qq.com");
static TCHAR szData[]=_T("2008/10/22");
static TCHAR szMsg[]=_T("Enter键开始,方向键移动");
static TCHAR szCR[]=_T("FanSin Studio CopyRight 2007-2008");
static TCHAR szMoto[]=_T("我们不断在努力进步!");
TextOut(hDC,32*2,32*1,szName,_tcslen(szName));
TextOut(hDC,32*2,32*2,szIndex,_tcslen(szIndex));
TextOut(hDC,32*2,32*3,szWirter,_tcslen(szWirter));
TextOut(hDC,32*2,32*4,szQQ,_tcslen(szQQ));
TextOut(hDC,32*2,32*5,szEmail,_tcslen(szEmail));
TextOut(hDC,32*2,32*6,szData,_tcslen(szData));
TextOut(hDC,32*2,32*7,szMsg,_tcslen(szMsg));
DrawIcon(hDC,32*2,32*8+16,G_IconLogo);
TextOut(hDC,32*3+6,32*9,szCR,_tcslen(szCR));
TextOut(hDC,32*2,32*10,szMoto,_tcslen(szMoto));
return true;
}
/////////////////////////////////
//绘制蛇身
int i;
for (i=0;i<g_Main.m_iBodySize;++i)
{
if (g_Main.m_Body[i].x != -1)
{
DrawIconEx(hDC,g_Main.m_Body[i].x,g_Main.m_Body[i].y,g_IconBody,16,16,0,NULL,DI_NORMAL);
}
}
/////////////////////////////////
//绘制食物
for (i=0;i<128;++i)
{
if (g_Main.m_Food[i].x != -1)
{
DrawIconEx(hDC,g_Main.m_Food[i].x,g_Main.m_Food[i].y,g_IconFood,16,16,0,NULL,DI_NORMAL);
}
}
/////////////////////////////////
//绘非食物
for (i=0;i<128;++i)
{
if (g_Main.m_NoFood[i].x != -1)
{
DrawIconEx(hDC,g_Main.m_NoFood[i].x,g_Main.m_NoFood[i].y,g_IconNoFood,16,16,0,NULL,DI_NORMAL);
}
}
////////////////////////////////////
//绘制死亡后的提示信息
if (g_Main.IsDeath())
{
TextOut(hDC, 200, 2, szDeath, lstrlen(szDeath));
}
return false;
}
class DWindow : public KWindow
{
void OnKeyDown(WPARAM wParam, LPARAM lParam)
{
////////////////////////
//Press ESC to quit
if ( wParam==VK_ESCAPE )
PostMessage(m_hWnd, WM_CLOSE, 0, 0);
////////////////////////////
//回车开始
if (((wParam==VK_RETURN)
&&(g_Main.IsLogo()))||g_Main.IsDeath())
{
g_Main.Start();
}
if (wParam==VK_UP)
{
g_Main.m_ivx = 0;
g_Main.m_ivy = -2;
}
if (wParam==VK_DOWN)
{
g_Main.m_ivx = 0;
g_Main.m_ivy = 2;
}
if (wParam==VK_LEFT)
{
g_Main.m_ivx = -2;
g_Main.m_ivy = 0;
}
if (wParam==VK_RIGHT)
{
g_Main.m_ivx = 2;
g_Main.m_ivy = 0;
}
}
void OnDraw(HDC hDC)
{
//TextOut(hDC, 0, 0, szHint, lstrlen(szHint));
}
public:
};
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE,
LPSTR lpCmd, int nShow)
{
DWindow win;
win.System_SetState(my_FRAMEFUNC,FrameFunc);
win.System_SetState(my_RENDERFUNC,(myCallback)RenderFunc);
win.System_SetState(my_FREEFUNC,FreeFunc);
win.CreateEx(
WS_EX_TOPMOST, szProgram, szProgram,
WS_POPUPWINDOW | WS_CAPTION | WS_MINIMIZEBOX,
400,
400,
NULL, NULL, hInst);
InitFunc();
win.ShowWindow(nShow);
win.UpdateWindow();
return win.MessageLoop();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -