• 大小: 40KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-08-12
  • 语言: C/C++
  • 标签:

资源简介

基于C++控制台窗体绘图(GDI)的小游戏,俄罗斯方块,回调函数处理消息,有完整的实现逻辑,包括计分关卡机制,下一个方块预览,游戏文字说明等

资源截图

代码片段和文件信息

/*
Author: ATP
Date:2015-7-25
*/
#include “stdafx.h“
#include“Brick.h“
#include 
#include 
#include 
#include 
#include 
#include 

#define FONTHEITH 15 //remark the font is not all limited by this define 15 is the default

extern HWND hwnd;

//the seven type brick‘s locate
int typeBK[7][4][2] = {
{ { 0 0 } { 0 1 } { 1 0 } { 1 1 } }
{ { -1 0 } { 0 0 } { 1 0 } { 2 0 } }
{ { 0 0 } { 1 0 } { 2 0 } { 0 1 } }
{ { -1 0 } { 0 0 } { 0 1 } { 1 1 } }
{ { -1 1 } { 0 0 } { 0 1 } { 1 0 } }
{ { -2 0 } { -1 0 } { 0 0 } { 0 1 } }
{ { -1 0 } { 0 0 } { 1 0 } { 0 1 } }
};
//the min/max x/y of the brick
int typeBKxy[7][4] = {
{ 0 1 0 1 }
{ -1 2 0 0 }
{ 0 2 0 1 }
{ -1 1 0 1 }
{ -1 1 0 1 }
{ -2 0 0 1 }
{ -1 1 0 1 }
};

Brick::Brick(){
srand(time(NULL));

memset(gameArea 0 sizeof(gameArea));
score = 0;
speed = 500;

nextType = rand() % 7;
firstrandBK();
judgeScore();
}

Brick::~Brick(){

}

//output certain text to the certain places
void PutOutText(char* lpsz int X int Y unsigned long fontcolor){
HDC hdc;
HFONT hF_black; //定义两种字体句柄
TEXTMETRIC tm; //定义一个TEXTMETRIC结构,用以记录字体信息

//HWND hwnd=GetForegroundWindow(); //找到程序运行窗口的句柄
hdc = GetDC((HWND)hwnd);//通过窗口句柄得到该窗口的设备场境句柄
hF_black = CreateFont //创建自定义字体

FONTHEITH //字体的高度
0 //由系统根据高宽比选取字体最佳宽度值
0 //文本的倾斜度为0,表示水平
0 //字体的倾斜度为0
FW_NORMAL //字体的粗度,FW_HEAVY为最粗
0 //非斜体字
0 //无下划线
0 //无删除线
GB2312_CHARSET //表示所用的字符集为ANSI_CHARSET
OUT_DEFAULT_PRECIS //输出精度为缺省精度
CLIP_DEFAULT_PRECIS //剪裁精度为缺省精度
DEFAULT_QUALITY //输出质量为缺省值
DEFAULT_PITCH | FF_DONTCARE//字间距和字体系列使用缺省值
(LPCWSTR)“粗体字“ //字体名称
);
SetTextColor(hdc fontcolor); //设置文本颜色为绿色
SetBkColor(hdc RGB(0 0 0));
Selectobject(hdc hF_black); //将自定义字体选入设备环境
GetTextMetrics(hdc &tm); //获取字体的信息,并写入tm结构中

TextOutA(hdc X Ylpsz strlen(lpsz)); //使用当前字体输出文本

ReleaseDC(hwnd hdc);
Deleteobject(hF_black); //删除自定义字体句柄
}

//
void Brick::firstrandBK(){
int randType = rand() % 7;
memcpy(activeBK.unit typeBK[randType] sizeof(activeBK.unit));
activeBK.minX = typeBKxy[randType][0];
activeBK.maxX = typeBKxy[randType][1];
activeBK.minY = typeBKxy[randType][2];
activeBK.maxY = typeBKxy[randType][3];
nextType = rand() % 7;
nextDirect = rand() % 4;
rotateBK(rand() % 4 0);
do{
activeBK.locaX = rand() % AREAWIDTH;
activeBK.locaY = -activeBK.maxY;

} while ((activeBK.minX + activeBK.locaX) < 0 || (activeBK.maxX + activeBK.locaX) > AREAWIDTH - 1);
drawNextBk();
}

//generate a random brick 
void Brick::randBK(){
memcpy(activeBK.unit typeBK[nextType] sizeof(activeBK.unit));
activeBK.minX = typeBKxy[nextType][0];
activeBK.maxX = typeBKxy[nextType][1];
activeBK.minY = typeBKxy[nextType][2];
activeBK.maxY = typeB

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

    I.A....     88064  2015-07-25 19:08  RussianBrick-2015-7-25-final\Debug\RussianBrick.exe

    I.A....     10211  2017-07-13 12:44  RussianBrick-2015-7-25-final\RussianBrick\Brick.cpp

    I.A....       841  2017-07-13 12:44  RussianBrick-2015-7-25-final\RussianBrick\Brick.h

    I.A....      2310  2015-07-12 08:51  RussianBrick-2015-7-25-final\RussianBrick\ReadMe.txt

    I.A....      1766  2015-07-12 13:25  RussianBrick-2015-7-25-final\RussianBrick\resource.h

    I.A....      9912  2015-07-12 13:25  RussianBrick-2015-7-25-final\RussianBrick\RussianBrick.aps

    I.A....     13632  2017-07-13 12:44  RussianBrick-2015-7-25-final\RussianBrick\RussianBrick.cpp

    I.A....        39  2015-07-12 08:51  RussianBrick-2015-7-25-final\RussianBrick\RussianBrick.h

    I......      2998  2013-07-22 01:18  RussianBrick-2015-7-25-final\RussianBrick\RussianBrick.ico

    I.A....      5604  2015-07-12 13:25  RussianBrick-2015-7-25-final\RussianBrick\RussianBrick.rc

    I.A....      4883  2015-07-12 13:21  RussianBrick-2015-7-25-final\RussianBrick\RussianBrick.vcxproj

    I.A....      2026  2015-07-12 13:21  RussianBrick-2015-7-25-final\RussianBrick\RussianBrick.vcxproj.filters

    I......      2998  2013-07-22 01:18  RussianBrick-2015-7-25-final\RussianBrick\small.ico

    I.A....       218  2015-07-12 08:51  RussianBrick-2015-7-25-final\RussianBrick\stdafx.cpp

    I.A....       422  2015-07-12 08:51  RussianBrick-2015-7-25-final\RussianBrick\stdafx.h

    I.A....       236  2015-07-12 08:51  RussianBrick-2015-7-25-final\RussianBrick\targetver.h

    I.A....       982  2015-07-12 08:51  RussianBrick-2015-7-25-final\RussianBrick.sln

    I.A..H.     32768  2015-07-25 19:16  RussianBrick-2015-7-25-final\RussianBrick.v12.suo

     文件          0  2017-12-29 11:03  RussianBrick-2015-7-25-final\源码.txt

    I..D...         0  2015-11-08 22:55  RussianBrick-2015-7-25-final\Debug

    I..D...         0  2015-11-08 22:56  RussianBrick-2015-7-25-final\RussianBrick

    I..D...         0  2017-12-29 11:09  RussianBrick-2015-7-25-final

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

               179910                    22


评论

共有 条评论