• 大小: 4.58MB
    文件类型: .rar
    金币: 2
    下载: 2 次
    发布日期: 2023-11-12
  • 语言: C/C++
  • 标签: C++  游戏  MFC  Win32  

资源简介

为了挑战一个新的高度,作者原创了他从事WEB编程以来的第一个Win32 API应用,之所以编写一个游戏,是因为游戏考察的知识面很综合,之所以选择俄罗斯方块,一是自己曾被瘾过,二是发现这款游戏几乎包含了Widows入门的很多知识,比如窗口、消息、菜单、工具栏、资源、对话框、计时器、自绘按钮、GDI位图操作、Windows目录操作、INI文件操作等等,拿来练手会收获不少。本游戏是带有背景音乐的,一边玩游戏一边欣赏音乐的感觉相信很舒服。

资源截图

代码片段和文件信息

//=========================================================
// Project Win32 俄罗斯方块程序
// File Tetris.cpp 主程序
// Update 2009.04
// Author 沉淪 http://www.EasyIDE.cn
// Download 源码爱好者:http://www.NewXing.com
// Tools Visual C++ 6.0 & Editplus 3
//=========================================================

#include “Tetris.h“

//Windows 入口函数
int WINAPI WinMain(HINSTANCE hInstanceHINSTANCE hPrevInstanceLPSTR szCmdLineint iCmdShow)
{
static TCHAR szClsName[] = TEXT(“Tetris“);
HWND hwnd;
MSG msg;
WNDCLASSEX wndclass;

InitCommonControls(); //初始化通用控件类库

//程序启动时初始化数据
hInst = hInstance;
RandomBlock(&ii&jj&cc);
//x = 4; y = -1;
iLevel = 1; iSorce = 0;
ilayer = 0; iSorceMax = TetrisIni(0);
hDcAlert = CreateCompatibleDC(NULL);

//注册窗口类
wndclass.hInstance = hInstance;
wndclass.lpszClassName = szClsName;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.cbSize = sizeof(WNDCLASSEX);
wndclass.style = CS_HREDRAW|CS_VREDRAW;
wndclass.hIcon = LoadIcon(hInstanceMAKEINTRESOURCE(IDI_ICON1));
wndclass.hIconSm = NULL;
wndclass.hCursor = LoadCursor(NULLIDC_ARROW);
wndclass.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
wndclass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
if ( !RegisterClassEx(&wndclass) )
{
MessageBox(
NULL
TEXT(“This program requires Windows NT!“)
TEXT(“RegisterClass ERROR“)
MB_IConerror);
return 0;

}

//创建主窗口
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE
szClsName
TEXT(“俄罗斯方块Win32版“)
WS_MINIMIZEBOX|WS_SYSMENU
GetSystemMetrics(SM_CXFULLSCREEN)/2-370/2
GetSystemMetrics(SM_CYFULLSCREEN)/2-520/2
370
520
NULL
NULL
hInstance
NULL);

//显示窗口并刷新客户区
ShowWindow(hwndiCmdShow);
UpdateWindow(hwnd);

//构建消息循环
while ( GetMessage(&msgNULL00) )
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return msg.wParam;
}

//主窗口过程
LRESULT CALLBACK WndProc(HWND hwndUINT messageWPARAM wParamLPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;

switch ( message )
{
case WM_CREATE:
GameUI(hwnd); //创建界面控件
GameStart(hwnd); //数据初始化
//背景音乐初始化
bMusicOn = TRUE;
iMusicBG = IDR_WAVE1;
hMenu = GetMenu(hwnd);
MusicItem(IDM_MUSIC1);
return 0;
case WM_PAINT:
hdc = BeginPaint(hwnd&ps);
DrawMatrix(hdc); //绘制游戏区
DrawTetris(hdc000); //绘制方块
DrawNext(hdc); //绘制预览区
BitBlt(hdc4020016050hDcAlert00SRCCOPY);//绘制提示语
EndPaint(hwnd&ps);
return 0;
case WM_TIMER:
DropTetris(hwnd);
return 0;
case WM_DRAWITEM:
DrawButton(lParam); //绘制方向按钮
return TRUE;
case WM_KEYDOWN:
switch ( (int)wParam )
{
case VK_LEFT:
if ( !bStart ) break;
if ( CheckBlock(x-1y) )
{
x --;
hdc = GetDC(hwnd);
DrawTetris(hdc-100);
ReleaseDC(hwndhdc);
}

break;
case VK_RIGHT:
if ( !bStart ) break;
if ( CheckBlock(x+1y) )
{
x ++;
hdc = GetDC(hwnd);
DrawTe

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      23767  2013-12-02 04:29  Tetris.cpp

     文件        457  2009-04-24 15:45  Tetris.dep

     文件       5075  2009-04-25 15:50  Tetris.dsp

     文件        537  2009-04-14 21:03  Tetris.dsw

     文件       3679  2013-12-02 04:29  Tetris.h

     文件       4625  2009-04-24 15:45  Tetris.mak

     文件      66560  2009-05-02 15:51  Tetris.ncb

     文件      53760  2009-05-02 15:51  Tetris.opt

     文件       1159  2009-05-02 15:51  Tetris.plg

    .......      1254  2009-04-18 22:13  Resource\1.bmp

    .......      1254  2009-04-18 22:13  Resource\2.bmp

    .......      1254  2009-04-18 22:13  Resource\3.bmp

    .......      1254  2009-04-18 22:13  Resource\4.bmp

    .......      1254  2009-04-18 22:13  Resource\5.bmp

    .......      1254  2009-04-18 22:13  Resource\6.bmp

    .......      1254  2009-04-18 22:13  Resource\7.bmp

    .......       886  2009-04-15 21:45  Resource\bitmap1.bmp

    .......     24056  2009-04-20 00:15  Resource\gameover.bmp

    .......   1668244  2009-04-25 12:39  Resource\Hawker‘sSong1.wav

    .......    759642  2009-04-25 12:39  Resource\Hawker‘sSong2.wav

     文件       2136  2013-12-02 04:29  Resource\resource.h

    .......   2487424  2009-04-25 21:06  Resource\Tetris.aps

    .......      3574  2009-04-14 21:27  Resource\Tetris.ico

    .......      6797  2009-04-25 20:06  Resource\Tetris.rc

    .......       766  2003-09-22 16:09  Resource\TetrisM.ico

    ..A.SH.     23552  2009-04-24 12:40  Resource\Thumbs.db

    .......       358  2009-04-16 20:05  Resource\toolbar.bmp

    .......    190115  2009-04-18 16:50  Resource\UI.psd

     目录          0  2009-05-02 15:49  Resource

----------- ---------  ---------- -----  ----

............此处省略2个文件信息

评论

共有 条评论