现在为止,一直都是通过键盘向下键往下移动方块的。实际游戏当中方块自己会往下掉。这又是怎么做的呢。
像这样自动的行为,从开发的角度来说,就是定时运行一段代码。
那我们就是需要在一定的时间间隔运行让方块下落的代码。
一定的时间间隔是怎么做的呢?首先我们要告诉系统我需要一个定时。这个函数是SetTimer。每次游戏开始的时候,也就是点了开始按钮的时候,我告诉系统说我需要一个定时器。
void Panel::start()
{
this->SetTimer(ID_TIMER,100,NULL);
...
}
SetTimer第一个参数是给定一个Timer的ID号。我把这个ID好DEFINE了一下。
#define ID_TIMER 1000
第二个参数是Timer的时间间隔,以毫秒计,100也就是代表的0.1秒。
最后一个参数是每个0.1秒后系统会自动调用的函数。NULL是指不指定额外的函数,让当前Wnd的标准定时函数(处理WM_TIMER消息的函数)来处理。
如何增加当前Wnd(也就是Panel的)标准定时处理函数呢。这和处理所有其他系统消息都是一样的。我们来回忆一下前几节我们是如何处理WM_PAINT消息的:
在类视图中选中Panel,打开属性窗口,选中消息,找到WM_PAINT消息,增加处理函数。
对WM_TIMER的处理方式也是一样的。
在类视图中选中Panel,打开属性窗口,选中消息,找到WM_TIMER消息,增加处理函数。
在产生的OnTimer函数中,我们调用moveDown函数。
void Panel::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (element!=NULL) element->moveDown();
Invalidate(false);
CWnd::OnTimer(nIDEvent);
}
大功告成,运行试一下吧
- 大小: 194.9 KB
分享到:
相关推荐
### C语言实现的俄罗斯方块游戏解析 #### 一、项目背景与介绍 在学习编程的过程中,通过实际项目来理解编程语言的特点是非常重要的一个环节。本篇文档将深入解析一个用C语言编写的俄罗斯方滴游戏源代码。该源代码...
俄罗斯方块是一款简单却引人入胜的游戏,玩家需要操控各种形状的方块,让它们在垂直下降的过程中尽可能地填满行,从而消除得分。 首先,我们需要了解绘图的基础知识。在C#中,我们可以使用System.Drawing命名空间中...
《cocos2d-x实现的俄罗斯方块游戏详解》 在游戏开发领域,经典的游戏总能引起开发者们的兴趣,而“俄罗斯方块”无疑是其中最具代表性的一款。本篇将深入探讨如何利用cocos2d-x游戏引擎来实现这一经典游戏。cocos2d-...
在本项目中,我们主要探讨的是如何利用C#编程语言和Unity引擎来实现经典的电子游戏——俄罗斯方块。Unity是一款强大的跨平台游戏开发工具,它提供了丰富的图形渲染、物理模拟和资源管理功能,使得游戏开发变得更为...
《深入解析Java Swing实现的俄罗斯方块小游戏源码》 在计算机编程领域,游戏开发是一项极具挑战性的任务,尤其对于初学者来说。今天我们将详细探讨一个基于Java和Swing库实现的“俄罗斯方块”小游戏的源码。这个...
6. **游戏逻辑**: 实现俄罗斯方块的核心在于游戏逻辑,包括方块的生成、移动、旋转和消除。这涉及到对二维数组的处理,以及检查行是否被填满并进行消除。 7. **碰撞检测**: 方块与现有方块阵列的碰撞检测是游戏中的...
《C语言实现的俄罗斯方块原始版解析》 俄罗斯方块,这个经典的电子游戏自1984年诞生以来,就以其独特的玩法和无尽的挑战性吸引了无数玩家。本项目是用C语言实现的俄罗斯方块游戏的最初完成版,它为我们提供了一个...
《VC6使用DirectX编写的俄罗斯方块游戏程序详解》 在编程领域,经典的游戏往往能成为技术学习的优秀案例,而俄罗斯方块便是其中之一。本文将深入探讨一个使用VC++ 6.0和DirectX技术编写的俄罗斯方块游戏程序,通过...
《人机对弈俄罗斯方块:C#编程与3D技术的应用》 俄罗斯方块,这一经典的电子游戏,自诞生以来就深受全球玩家的喜爱。在本文中,我们将深入探讨一个特别版本的“人机对弈俄罗斯方块”,该版本不仅保留了原版的基本玩...
《JavaScript实现俄罗斯方块》 在编程世界里,游戏开发是一项既能锻炼逻辑思维,又能提升技术实践能力的有趣任务。本文将围绕“JavaScript实现俄罗斯方块”这一主题,深入探讨如何利用JavaScript、CSS和HTML这三种...
### 俄罗斯方块核心算法详解 #### 一、游戏核心机制与实现原理 俄罗斯方块是一种经典的下落式拼图游戏,其核心算法涉及到多个方面,包括方块的生成、移动、旋转以及消除行等机制。 1. **游戏区域设置**: - 游戏...
《俄罗斯方块C# WinForm实现详解》 俄罗斯方块是一款经典的电子游戏,自1984年诞生以来,以其简单易上手、玩法多变的特点深受全球...当你成功地运行起自己的俄罗斯方块游戏时,那份成就感将是对所有努力最好的回报。
Java 俄罗斯方块是一款基于Java编程语言开发的经典游戏,它采用了设计模式中的MVC(Model-View-Controller)架构,以实现游戏逻辑、界面显示和用户交互的分离,提高代码的可读性和可维护性。游戏包含了三种不同的...
《MFC可视化程序设计:深度剖析俄罗斯方块的实现》 在信息技术的广阔领域中,MFC(Microsoft Foundation Classes)是微软提供的一种C++库,用于构建Windows应用程序。本篇文章将深入探讨如何利用MFC进行可视化程序...
《Linux环境下C语言实现的俄罗斯方块源码解析》 在计算机编程的世界中,经典游戏“俄罗斯方块”一直是学习新技能和理解编程原理的绝佳案例。本项目以C语言在Linux操作系统下实现了这一著名游戏,涉及的知识点包括...
在“Java Swing 俄罗斯方块”项目中,开发者使用了Swing库来构建一个经典的俄罗斯方块游戏。下面我们将深入探讨Java Swing以及如何利用它来实现俄罗斯方块。 首先,Java Swing 提供了一系列的组件,如JFrame、...
《俄罗斯方块:源代码解析与游戏开发深度...通过实际操作,你可以深入理解游戏开发的各个环节,提升自己的编程技能,也许还能创造出属于自己的独特“俄罗斯方块”版本。所以,何不立即动手,开启你的游戏开发之旅呢?
接下来,我们打开项目文件“九组俄罗斯方块.dsw”,这是一个Visual C++的工作空间文件,包含了项目的源代码和工程设置。使用VC6.0++打开此文件,我们可以看到项目的结构和各个源代码文件。这些文件通常包括游戏主...
《俄罗斯方块-C#编程实例》是一个非常适合C#初学者的项目,旨在通过实现经典游戏“俄罗斯方块”来深入理解和应用C#的基础知识。在这个项目中,你将学习到如何利用C#进行Windows应用程序开发,包括图形用户界面(GUI...
《俄罗斯方块:编程实践与算法解析》 俄罗斯方块是一款经典的电子游戏,自1984年诞生以来,就以其简洁的规则和无尽的挑战性吸引了无数玩家。在这个项目中,我们不仅将深入探讨俄罗斯方块的实现,还将通过Java语言来...