C++小游戏射击类

  • S3_602356
    了解作者
  • 2MB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-06-13 08:18
    上传日期
自己研究的 希望大家一起分享 一起学习 是用C++代码做的 VS2008平台
2014-03-06.rar
内容介绍
#include <windows.h> #include<tchar.h> #include <string> using namespace std; //GDI+图形库头文件 #include <gdiplus.h> #pragma comment(lib,"gdiplus.lib") using namespace Gdiplus; #include "resource.h" HWND g_hWnd; //定义窗体句柄 ULONG_PTR g_GdiplusToken; //GDI+使用标志 Graphics * g_pGraphics; //画图对象指针 int flag;int x;int y;int z; int Game_Init() //游戏资源的初始化 { //初始化GDI+图形库 GdiplusStartupInput gdiplusStartupInput; GdiplusStartup(&g_GdiplusToken, &gdiplusStartupInput, NULL); g_pGraphics = new Graphics(GetDC(g_hWnd)); if (g_pGraphics == NULL) return 0; return 1; } void Game_Shutdown() //释放游戏资源 { //释放GDI+图形库 delete g_pGraphics; GdiplusShutdown(g_GdiplusToken); } void DrawShap() //游戏画图 { Pen MyPen(Color(x,y,z)); FontFamily fontfamily(L"宋体"); Font m_textFont(&fontfamily,25); SolidBrush *m_textBrush; m_textBrush = new SolidBrush(Color(255,0,0,255)); //g_pGraphics->DrawString(g_text,wcslen(g_text),&m_textFont,PointF(300,300),m_textBrush); // 写字 switch(flag) { case 1: g_pGraphics->DrawLine(&MyPen,100,100,200,200); break; case 2: g_pGraphics->DrawRectangle(&MyPen,100,100,200,200); break; case 3: g_pGraphics->DrawEllipse(&MyPen,100,100,100,300); break; case 4: g_pGraphics->DrawEllipse(&MyPen,100,100,200,200); break; } } //自定义窗体的消息处理函数 LRESULT CALLBACK //回调函数 (自动调用的函数) WinProc(HWND hWnd, //窗体的句柄 UINT message, //消息的类型 WPARAM wParam ,LPARAM lParam //消息的参数 ) { switch(message) { case WM_DESTROY: //窗体关闭 PostQuitMessage(0); //程序结束 return 0; case WM_KEYDOWN: { switch(wParam) { case VK_ESCAPE: //当按下ESC键时候触发关闭窗口的消息 PostMessage(hWnd, WM_CLOSE,0,0); break; case '1': flag = 1; x = 255; y = 0; z = 0; InvalidateRect(hWnd,NULL,true); break; case '2': flag = 2; x = 255; y = 0; z = 0; InvalidateRect(hWnd,NULL,true); break; case '3': flag = 3; x = 255; y = 0; z = 0; InvalidateRect(hWnd,NULL,true); break; case '4': flag = 4; x = 255; y = 0; z = 0; InvalidateRect(hWnd,NULL,true); break; case '5': flag = 1; x = 0; y = 255; z = 0; InvalidateRect(hWnd,NULL,true); break; case '6': flag = 2; x = 0; y = 0; z = 255; InvalidateRect(hWnd,NULL,true); break; case '7': flag = 3; x = 128; y = 128; z = 128; InvalidateRect(hWnd,NULL,true); break; case '8': flag = 4; x = 110; y = 110; z = 0; InvalidateRect(hWnd,NULL,true); break; } } default: return DefWindowProc(hWnd,message,wParam,lParam); } } int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { WNDCLASS wc; //定义窗口信息的结构体 //初始化窗体信息的结构 wc.cbClsExtra = 0; //附加内存空间 wc.cbWndExtra = 0; //附加内存空间 wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //背景刷 wc.hCursor = LoadCursorFromFile(L"资源/cursor/normal.ani");//设置窗口鼠标的形状 wc.hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDIGNORE));//窗口的图标 wc.hInstance = hInstance; //窗口的实例化句柄 wc.lpfnWndProc = WinProc; //自定义的消息处理函数 wc.lpszClassName = L"mywindow"; //窗口名称(它的名称必须和下面的窗口类名一模一样) wc.lpszMenuName = NULL; //窗口菜单 wc.style = CS_HREDRAW | CS_VREDRAW ; //支持水平和垂直重绘 RegisterClass(&wc); //注册窗口 int posx, posy; posx = (GetSystemMetrics(SM_CXSCREEN)-800)/2; //屏幕宽度 posy = (GetSystemMetrics(SM_CYSCREEN)-600)/2; //屏幕高度 g_hWnd = CreateWindow( L"mywindow", //窗口类名必须和上面的窗体名称一模一样 L"我的游戏", //窗口的标题 WS_OVERLAPPEDWINDOW, //窗口的风格 posx, //窗体左上角相对于屏幕的X坐标 posy, //窗体左上角相对于屏幕的Y坐标 800,600, //窗体的宽度和高度 NULL, //父窗口句柄 NULL, //窗口菜单句柄 hInstance, //实例句柄 NULL); //附加信息 ShowWindow(g_hWnd, SW_SHOWNORMAL); //正常显示窗口 UpdateWindow(g_hWnd); if (Game_Init() == 0) { MessageBox(NULL,L"游戏初始化失败",L"错误",MB_OK); return 0; } MSG msg; //定义一个消息的对象 // 主消息循环: while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); DrawShap(); } Game_Shutdown(); return (int) msg.wParam; }
评论
    相关推荐
    • c++课件
      c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件c++课件
    • C++ PRrimer
      本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。本版对前一版进行了彻底的...
    • C++
      C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
    • Effective C++
      学习c++的经典书籍!每一个学习c++的人有时间最好看看!你会获得很大收获!
    • c++information
      c++c++c++c++c++c++c++c++c++c++c++c++
    • SourceStyler C++
      用DEV-C++写代码很方便,就是不能格式化有点郁闷 c++格式化的好工具 效率高
    • c++yuyanbiancheng
      这是C和C++集成的编程环境!这是C和C++集成的编程环境!这是C和C++集成的编程环境!这是C和C++集成的编程环境!这是C和C++集成的编程环境!
    • C++ primier
      学习C++的经典之作,希望大家学习愉快,快速掌握C++的各种知识。多下哈
    • effective C++
      有关C++编程方面的检验性介绍,对由C转向C++,和有C++编程基础的程序员有帮助,不过是英文版
    • effective c++
      C++经典书籍Effective C++ By Scott Meyers, 已译成中文,chm格式,方便检阅 Uploaded by save (chaisave@sohu.com)