资源简介
自己写的俄罗斯方块游戏,用C语言,WIN32框架,学习C语言,游戏编写思路
代码片段和文件信息
#include
struct Boarder
{
bool Have[15][10];
int Per_WidthPer_Height;
int Width_ExHeight_Ex;
};
struct Boarder boarder;
struct Shape
{
bool Have[4][4];
int xy;
};
struct Shape shapes[19];
struct Shape shape;
HDC hdc;
HWND hwnd;
RECT wndrect;
char title[10]=“Game“;
int direct;
int shape_num;
float last_time;
float now_time;
void Init();
void clearscreen();
void Draw();
void TestLeft();
void TestBottom();
void TestDisappear();
void TestChange();
LRESULT Windowproc(HWNDUINTWPARAMLPARAM);
int APIENTRY WinMain(HINSTANCE hInstance HINSTANCE hPrevInstance LPSTR lpcmdLineint nCmdShow)
{
MSG msg;
WNDCLASS wc;
wc.style =CS_HREDRAW|CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC)Windowproc;
wc.cbWndExtra =0;
wc.cbClsExtra =0;
wc.hInstance = hInstance;
wc.hIcon =NULL;
wc.hCursor =NULL;
wc.hbrBackground =(HBRUSH)GetStockobject(BLACK_BRUSH);
wc.lpszClassName =title;
wc.lpszMenuName =NULL;
if (!hInstance)
{
return 0;
}
RegisterClass(&wc);
hwnd=CreateWindow(titletitleWS_OVERLAPPEDWINDOW00800600NULLNULLhInstanceNULL);
if(!hwnd)
{
return 0;
}
ShowWindow(hwndnCmdShow);
UpdateWindow(hwnd);
Init();
while (1)
{
if (PeekMessage(&msgNULL00PM_REMOVE))
{
if (msg.message ==WM_QUIT) break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
now_time=(float)timeGetTime();
if(now_time>last_time+400)
{
last_time=now_time;
clearscreen();
Draw();
TestDisappear();
TestBottom();
TestLeft();
TestChange();
}
}
}
return 0;
}
LRESULT Windowproc(HWND hwnd UINT message WPARAM wParam LPARAM lParam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0);
return 1;
case WM_KEYDOWN:
{
switch (wParam)
{
case VK_ESCAPE:
PostMessage(hwndWM_CLOSE00);
break;
case VK_LEFT:
direct= 1;
break;
case VK_RIGHT:
direct= 2;
break;
case VK_UP:
direct= 3;
break;
}
break;
}
}
return DefWindowProc(hwndmessagewParamlParam);
}
void TestBottom()
{
int ij;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(shape.Have[i][j] && shape.y+i ==14)
{
for(int p =0;p<4;p++)
{
for(int q=0;q<4;q++)
{
if(shape.Have[p][q])
{
boarder.Have[shape.y +p][shape.x +q]=true;
}
}
}
shape_num=rand()%19;
shape=shapes[shape_num];//换shape记录
return;
}
if(shape.Have[i][j] && boarder.Have[shape.y +i+1][shape.x+j])
{
for(int p =0;p<4;p++)
{
for(int q=0;q<4;q++)
{
if(shape.Have[p][q])
{
boarder.Have[shape.y +p][shape.x +q]=true;
}
}
}
shape_num=rand()%19;
shape=shapes[shape_num];
return;
}
}
}
shape.y +=1;
}
void Init()
{
int ij;
hdc=GetDC(hwnd);
GetWindowRect(hwnd&wndrect);
direct=0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 196658 2013-05-19 10:47 els3\Debug\els3.exe
文件 212728 2013-05-19 10:47 els3\Debug\els3.ilk
文件 3557688 2013-05-19 10:44 els3\Debug\els3.pch
文件 377856 2013-05-19 10:47 els3\Debug\els3.pdb
文件 27768 2013-05-19 10:44 els3\Debug\main.obj
文件 140288 2013-05-19 10:48 els3\Debug\vc60.idb
文件 77824 2013-05-19 10:44 els3\Debug\vc60.pdb
文件 3933 2013-05-19 10:47 els3\els3.dsp
文件 516 2013-05-19 10:43 els3\els3.dsw
文件 41984 2013-05-19 10:48 els3\els3.ncb
文件 48640 2013-05-19 10:48 els3\els3.opt
文件 754 2013-05-19 10:47 els3\els3.plg
文件 9616 2013-05-19 10:44 els3\main.cpp
目录 0 2013-05-19 10:52 els3\Debug
目录 0 2013-05-19 10:52 els3
----------- --------- ---------- ----- ----
4696253 15
相关资源
- 26190C语言在测量与控制中的应用王彤
- C语言非常道
- c语言实现ftp文件传输
- [数据结构(C语言版)].严蔚敏_吴伟民
- C语言写的音乐播放器含源代码
- 编译原理 课程设计 DAG 报告+源码C++版
- 用c语言进行图片处理
- C语言程序 产生服从正态分布、瑞利分
- 《大棚温湿度自动控制系统》 包括
- ATM(用C语言编写)的
- 经典小游戏大集合(C++ 源码)
- C语言程序设计(第五版) 谭浩强课件
- 分别用c语言和c++mfc实现正态分布曲线
- gdi+游戏框架这是一个用vc6.0写的Win3
- eDNA实时历史数据库接口功能说明及
- C语言点滴
- C++游戏开发指南C++ Game Development Cook
- 手机缴费系统
- Code_Note_2
- STM32实现俄罗斯方块游戏C语言
- 单片机C语言程序设计实训100例--基于
- 混沌理论的实现
- C++小型回合制游戏的雏形
- 超级玛丽 闯关游戏 c++
- 手把手教你用vc6 c++ 做俄罗斯方块小游
- 郝斌C语言详细笔记
- C语言程序设计 中文第二版教材+习题
- C语言 opengl 3d 游戏开发 源码
- SDL Game Development.pdf
- VC++版贪吃蛇游戏源代码
评论
共有 条评论