接着上一篇,有了移动的小方块后我们就要设计背景了。由于是建立的单文档应用程序,所以要画背景还是很简单的。由于要考虑到重绘的问题所以可以在OnPaint 函数中画背景。用一个二维的数组存储背景的数据。该数组为Max [20][10]。该背景的长为10,高为20。长和高可以依自己的需要改变。然后在OnCreate函数中进行初始化。将其全部初始化为0。这样在OnDraw函数中将背景画出。这样一个背景就有了。背景有了,移动的方块有了,再就要考虑越界的问题了。我们可以在视类中添加一个成员函数Beyong 函数来判断是否越界了。Beyong函数的代码怎样写呢?我们可以判断小方块的横坐标,如果其横坐标超过了背景的范围就表明小方块越界了。反之就没有越界。在这里就需要给小方块添加键盘的响应消息了,这样小方块才能被我们控制。为视类添加WM_KeyDown消息,如果向右就使小方块的横坐标自增,如果向左就使小方块的横坐标自减。在这里需要说明的是在小方块的移动过程中需要将移动前的坐标保存下来。在OnDraw函数中进行绘图的时候首先将要上一次画的小方块清除,然后再画这次的小方块这样就可以看到正常方块移动。

判断了小方块左右是否越界,再就要判断小方块是否到达背景的底部。当第一个方块到达背景的底部时只需要判断该方块的纵坐标是否到达了背景的底部。当第二个方块下来时就要判断其是否落到上个方块的上面。

转载于:https://www.cnblogs.com/ximeng/archive/2009/03/28/1423874.html

一步步写俄罗斯方块(二)相关推荐

  1. 用C语言写俄罗斯方块

    用C语言写俄罗斯方块 目录(需求): 1.  屏幕作图与窗口实现: 2.  方块的构造与产生: 3.  方块的移动与翻转: 4.  中断计时与方块自由下落: 5.  判断方块碰撞与消行: 6.  按键 ...

  2. 从零开始---控制台用c写俄罗斯方块游戏(1)

    从零开始---控制台用c写俄罗斯方块游戏(1) 很少写博文,一来自身知识有限,二来自己知道,已经有很多这样的博文了,三就是因为懒,文笔也一般,四来刚出来工作,时间也不多 之所以写这篇博文,是因为应群里 ...

  3. 拆轮子系列之教你一步步写验证码控件

    拆轮子系列之教你一步步写验证码控件 前言 先看看效果 怎么样不错吧?别急下面我就一步一步的教你实现. 用到的知识点总结: 1.Canvas和pint的使用,我们用它画点,线,字 2.View的基本用法 ...

  4. Unity 讯飞实时语音转写(二)—— 接收转写结果

    目录 Unity 讯飞实时语音转写(一)-- 使用WebSocket连接讯飞语音服务器 Unity 讯飞实时语音转写(二)-- 接收转写结果 Unity 讯飞实时语音转写(三)-- 分析转写结果 正文 ...

  5. c语言俄罗斯方块视频,c语言自己写俄罗斯方块(完整版)

    还记得大笨兔以前在博客发的几篇关于如何使用C语言写俄罗斯方块游戏的文章吗? 当时大笨兔已经将基本的逻辑写完了,但还有两个功能没有加进去:游戏结束和游戏暂停. 所以这次大笨兔抽空就将这两个功能加进去了. ...

  6. c语言大作业俄罗斯方块,C语言自己写俄罗斯方块(完整版)

    还记得大笨兔以前在博客发的几篇关于如何使用C语言写俄罗斯方块游戏的文章吗? 当时大笨兔已经将基本的逻辑写完了,但还有两个功能没有加进去:游戏结束和游戏暂停. 所以这次大笨兔抽空就将这两个功能加进去了. ...

  7. 这笔投资你算过吗?―写给二本院校的苦逼青年

    说到投资,人们往往首先想到的是商业投资:投入大量的资源(时间和金钱等)到某个项目,期望得到丰厚的回报(利润).而实际上,除了商业,很多事情都可以从投资的角度来理解.就比如上大学,对于大多数人来说,其实 ...

  8. 机器人摘果子看图写话_小猴摘果子看图写话二年级

    篇一:小猴摘果子看图写话二年级 刘旭彬 一天,阳光灿烂,小猴子提着一个空篮筐来到苹果树下摘苹果.小猴子尾巴吊在苹果树上摘下苹果一个一个地扔到篮筐里.不一会儿,小猴子就摘满了一篮筐.它高高兴兴地背着一篮 ...

  9. 【学习分享】2、创龙 TMS320C6748开发板程序加载和烧写(二)

    此部分由于篇幅过长,将分为五个小点进行叙述,此处主讲基于串口的程序加载和烧写,所用器件为创龙TMS320C6748开发板.需要注意的点已在备注中进行说明. 如果需要从头开始进行本使用手册的阅读,欢迎阅 ...

  10. 一步步写STM32 OS【二】环境搭建

    一.安装IAR for ARM6.5 二.新建工程 1.选择处理器:STM32F407VG,暂不使用FPU 2.必要的路径配置和宏定义 3.使用SWO重定向IO输出 4.使用ST-LINK仿真器 5. ...

最新文章

  1. PAT Basic 1072
  2. Keras用动态数据生成器(DataGenerator)和fitgenerator动态训练模型
  3. 【教程】Matrikon OPC使用教程连载(四)
  4. C++ primer习题10.9
  5. 维修技嘉B250M-DS3H不开机一例
  6. Codeforces Round #167 (Div. 1) C. Dima and Horses(BFS+贪心)
  7. boost::sort模块实现在大多数排序的数组示例上展开排序
  8. 北京大学Tensorflow2.0笔记
  9. java 纯面向对象_Java到底是不是一种纯面向对象语言?
  10. ES6-使用 super 关键字访问原型对象
  11. Android模拟器SDL_app:emulator.exe 解决方法
  12. 如何在计算机中快速新建TXT文本文档
  13. python中def fun()是什么意思_PYTHON练习-def函数的基础
  14. 怎样在你的团队做 Code Review ?
  15. 【Orientation】详解Android中的屏幕方向
  16. 14.VRP介绍以及AC初始化配置_AC和AP的软件升级方法
  17. 垃圾分类小程序,包含垃圾图片识别,答题,添加垃圾,搜索垃圾,科普视频等功能
  18. java实现ln10_Java数学函数
  19. HDU 2190 悼念512汶川大地震遇难同胞——重建希望小学
  20. 如何去除短视频中的硬字幕

热门文章

  1. razor读取mysql_MVC 数据库增删改查(Razor)方法(1)和数据库
  2. codeforces 并查集_codeforces 892E 可撤销并查集
  3. php字符串怎么判断是否相等,php判断两个字符串是否相等
  4. java blowfish ecb,node.js – 使用nodejs crypto和php的mcrypt解密blowfish-ecb
  5. JavaSE基础——异常、File文件类
  6. MultipartFile接口实现文件上传
  7. 页面跳转_PyQt5多页面跳转
  8. linux Flatpak 安装包,snap卸载
  9. LayaAir 屏幕适配-分辨率、对齐模式
  10. MongoDB 数据集合导出 与 导入