画完了底板,再来画方块。根据我们最开始的类结构可以知道:不同俄罗斯方块形状的画的方法都是一样的,就是把body的4个小方块显示一下就可以了。所以同样的代码可以写在他们共同的基类中
在基类中增加一个print方法,参数就是那个画板CPaintDC & 或者CDC &.(CPaintDC继承自CDC)
void Element::print(CDC& dc)
{
for(int i = 0; i < 4; i++)
body[i].print(dc);
}
而小方块的现实如下:
void Box::print(CDC& dc)
{
CRect rect(x*step,y*step,(x+1)*step,(y+1)*step);
CBrush brush(RGB(255,255,0));
dc.FillRect(rect, &brush );
}
这里的step用来说明每个小方块占用几个像素。如果step=10,将会画出一个10*10像素的正方形。这个值在整个游戏期间不会变,所以我们可以把它申明成Box类的static const成员
class Box
{
private:
int x;
int y;
public:
static const int step=10;
最后,需要寻找时机调用显示函数,这个时机就是在底板Panel获取WM_PAINT消息时
void Panel::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rect;
this->GetClientRect(rect);
CBrush brushbg( RGB(125,125,125) );
dc.FillRect(rect,& brushbg);
if (element!=NULL)
element->print(dc);
分享到:
相关推荐
本主题将探讨如何利用C#实现经典游戏——俄罗斯方块的绘图功能。俄罗斯方块是一款简单却引人入胜的游戏,玩家需要操控各种形状的方块,让它们在垂直下降的过程中尽可能地填满行,从而消除得分。 首先,我们需要了解...
在本文中,我们将深入探讨如何使用Cocos框架开发微信小游戏,特别是以经典的“俄罗斯方块”为例。Cocos是一款强大的2D游戏开发引擎,而微信小游戏则是腾讯为微信用户提供的一个轻量级游戏平台,它允许开发者利用...
《深入解析Flash俄罗斯方块源代码》 在游戏开发领域,经典的俄罗斯方块以其独特的玩法和无尽的挑战性,始终吸引着众多开发者去实现。本篇将详细探讨一款使用Flash技术编写的俄罗斯方块源代码,帮助你理解并学习...
《MFC编写的俄罗斯方块》是一款利用Microsoft Foundation Classes (MFC)库开发的经典小游戏,它结合了声音效果和用户友好的图形界面,为玩家提供了一种沉浸式的游戏体验。MFC是微软提供的一个C++类库,它使得开发者...
《使用LABVIEW构建的俄罗斯方块游戏详解》 在编程世界中,各种工具和语言都有其独特的魅力和应用领域。其中,LABVIEW(Laboratory Virtual Instrument Engineering Workbench)以其图形化编程界面和强大的数据处理...
根据给定的文件信息,我们可以总结出以下关于“使用 Win32 和 GDI 实现俄罗斯方块”的相关知识点: ### 一、项目概述 #### 1. 项目目标: 本项目旨在通过 Windows API (Win32) 和图形设备接口 (GDI) 来开发一个...
【Cocos 俄罗斯方块游戏源码解析】 Cocos 是一款强大的游戏开发框架,它提供了丰富的功能和便捷的工具,让开发者能够轻松地创建2D和3D游戏。本源码是基于Cocos Creator构建的俄罗斯方块游戏,Cocos Creator是Cocos...
《用API编写的俄罗斯方块》是一款基于API技术开发的单机版俄罗斯方块游戏,它摒弃了传统的二维表格实现方式,转而利用API(应用程序接口)进行编程,为玩家带来独特的游戏体验。本文将深入探讨这款游戏中涉及到的API...
《俄罗斯方块——iOS源码解析》 在深入探讨俄罗斯方块的iOS源码之前,我们先简单回顾一下“俄罗斯方块”这款游戏的历史与基本玩法。俄罗斯方块是由苏联程序员阿列克谢·帕基特诺夫在1984年创造的一款经典益智游戏,...
【Java版俄罗斯方块】 增加保存配置信息到文件的功能,声音设置、显示设置、关卡选择等配置信息在修改后将会保存在jar包同级目录下(以jar相同的文件名+.cfg后缀保存) 2010-10-05 【Java版俄罗斯方块】 这个程序...
"俄罗斯方块C++课程设计" 本课程设计旨在使用C++语言来实现经典的小游戏俄罗斯方块。该游戏的设计将涉及到游戏需求分析、系统设计、方块设计、游戏控制等多个方面。 一、需求分析 1.1、游戏需求:游戏需要随机...
《 LABVIEW俄罗斯方块:深入理解与学习指南》 LabVIEW,全称为Laboratory Virtual Instrument Engineering Workbench(实验室虚拟仪器工程工作台),是一款由美国国家仪器(National Instruments, NI)公司开发的...
《俄罗斯方块源代码加详细注释》是一个非常适合初学者学习的游戏开发资源,它提供了完整的俄罗斯方块游戏的源代码,并且附带了详尽的注释,方便理解每个部分的功能和逻辑。在这个项目中,我们可以深入学习到游戏编程...
【jQuery 游戏 俄罗斯方块 代码】是一款基于JavaScript库jQuery实现的网页版俄罗斯方块游戏。这个游戏的特色在于其简洁高效的代码实现,通过利用jQuery的事件处理和DOM操作功能,使得开发者可以用相对较少的代码量...
《C#实现的简单俄罗斯方块游戏详解》 在编程世界中,开发一款经典的小游戏是许多初学者和爱好者热衷的项目。本篇将详细解析一个使用C#语言编写的简单俄罗斯方块游戏,带你深入理解游戏的核心机制以及C#编程在游戏...
在这个"全新版vue.js俄罗斯方块"项目中,开发者利用Vue.js的强大功能,结合算法,创建了一个完整的俄罗斯方块游戏。让我们深入探讨这个项目中的关键知识点。 1. **Vue.js组件化开发**: - Vue.js的核心理念是组件...
《C语言实现俄罗斯方块详解》 在编程世界中,C语言以其简洁高效的特点深受程序员喜爱,而将这种基础语言应用于游戏开发,更是对编程能力的一种挑战。本篇将详细介绍如何利用C语言编写经典的休闲游戏——俄罗斯方块...
【基于OpenGL的俄罗斯方块游戏开发】 在计算机图形学领域,OpenGL是一个强大的跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。本项目是基于OpenGL实现的一个简单的俄罗斯方块游戏,旨在展示如何利用OpenGL进行...
《C++ EasyX 俄罗斯方块代码》是一个关于利用C++编程语言和EasyX图形库实现经典游戏"俄罗斯方块"的项目。EasyX是一个轻量级的C++图形库,它为C++程序员提供了简单易用的图形绘制功能,使得开发2D游戏或图形界面变得...
《cocos2d-x实现的俄罗斯方块游戏详解》 在游戏开发领域,经典的游戏总能引起开发者们的兴趣,而“俄罗斯方块”无疑是其中最具代表性的一款。本篇将深入探讨如何利用cocos2d-x游戏引擎来实现这一经典游戏。cocos2d-...