本课内容 接下来的几节课,我们要利用C语言开发一些游戏 本节课开发一个俄罗斯方块游戏 游戏规则.

Slides:



Advertisements
Similar presentations
广州市小学信息技术教学同步资源 第一册 第二章 第六节 《 Window窗口》 广州市荔湾区西华路小学 董绮珊.
Advertisements

客房備品管理 新竹老爺大酒店 客房部 協理 邱建銘.
第六 章数据库访问页 6.1 数据访问页视图 6.2 创建数据访问页 6.3 编辑数据访问页 6.4 查看数据访问页 退出.
校园信息管理系统 河北科技大学网络中心 2000/4/10.
二级综合医院等级评审要点 及注意事项解读 (管理组)
简 介 简 介 庞各庄镇中心卫生院始建于1956年,占地11.5亩,总建筑面积4500平方米。下辖1个综合门诊部,8个社区卫生服务站。门诊部占地8.5亩,总建筑面积1500平方米;8个社区卫生服务站总建筑面积2000余平方米,平均占地1.2亩建筑面积210平方米。 我院现有职工134人,实有病床50张,主要为全镇53个自然村的4.2万人口和外来流动人口1.5万人提供预防、保健、医疗、健教、康复、计划生育等项服务。
厂务公开与民主管理 主讲人:范丽娜 电话:
“携手灭烟,拥抱晴天”无烟环境倡导活动 媒体倡导模式及发动要点 新探健康发展研究中心 范彩虹
徵收苗栗市福全段147、1588及文心段10、11地號等4筆土地之
插入超链接 高邮市第一实验小学 范太国 任务一:设置文本超链接 任务一:设置文字超链接 步骤:1、选定文字并右击,在快捷菜单 中选择“超链接”命令。 2、在弹出的对话框中选择左侧“链接到:”中的“本文档中的位置(A)”项,在“请选择文档中的位置(C):”中选择需要链接的幻灯片,单击“确定”按钮。
讲 义 大家好!根据局领导的指示,在局会计科和各业务科室的安排下,我给各位简要介绍支付中心的工作职能和集中支付的业务流程。这样使我们之间沟通更融洽,便于我们为预算单位提供更优质的服务。 下面我主要从三方面介绍集中支付业务,一是网上支付系统,二是集中支付业务流程及规定等,
Visual C++ 程序开发案例教学 教材案例9 俄罗斯方块.
撰写报告:擅用精练检索、被引文献检索,引文追踪及作者身份唯一标识系统
中国人民公安大学经费管理办法(试行) 第一章总则 第四条:“一支笔” “一支笔”--仅指单位主要负责人。负责对本 单位的经费进行审核审批。
102學年度預算編製說明會 主辦單位:會計室 102/02/22.
PRESENTED BY OfficePLUS
Arduino单片机—— 迷你游戏机 王睿涵 杨梦迪.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
学校幼托机构春季 传染病防控 镇海区CDC 吴永.
Android快速开发入门 巫文杰、Android工程师 讲师的CSDN博客地址
第9课 北美大陆上的新体制 导入新课 新课教学 课堂小结 知识结构 巩固练习
第5章 文本与字体 2018/11/14 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/11/14 Huang Weitong.
第5章 图形和文本输出.
學術論文建檔說明 國家圖書館 - 全國博碩士論文資訊網 95.5.
学习前的准备工作 讲师:burning.
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
第5章 文本与字体 2018/12/3 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2018/12/3 Huang Weitong.
SVN服务器的搭建(Windows) 柳峰
走进编程 程序的顺序结构(二).
辅导课程六.
大数据管理技术 --NoSQL数据库 HBase 陈 辉 大数据分析技术.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
Zhao4zhong1 (赵中) C语言指针与汇编语言地址.
PostgreSQL 8.3 安装要点 四川大学计算机学院 段 磊
本节内容 模拟线程切换 视频提供:昆山滴水信息技术有限公司 官网地址: 论坛地址: QQ交流 :
VSS使用简介 王树升
POWERPOINT TEMPLATE HI.
第八章 文档/视图结构应用程序 8.1 文档/视图结构 8.2 图形与文字输出 8.3 定时器 8.4 鼠标和键盘消息处理 8.5 对话框
PRESENTED BY OfficePLUS
安徽省中小学信息技术课件(初中) 初中信息技术八年级下册第一单元 活动2 会徽制作显创意 活动2 会徽制作显创意 马鞍山市丹阳中学 刘斌.
VISUAL C++ 编程中的图形 图形设备接口(Graphic device interface)
产品推广 PRODUCT PROMOTION PRESENTED BY OfficePLUS.
海洋臺灣 臺灣的海洋 可以是南島文化的延伸 也可以是短短的四百年臺灣史 還有達悟的海洋、 鯨魚的海洋、 漁人的海洋、 不同的角度、
标准配色方案 背景 文本和线条 阴影 强调色 主色一 主色二 主色三 主色四 推荐应用顺序. 标准配色方案 背景 文本和线条 阴影 强调色 主色一 主色二 主色三 主色四 推荐应用顺序.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
《面向对象程序设计与Visual C++6.0教程》
网页设计与制作 —— 学习情境二:网页模板设计
PRESENTED BY OfficePLUS
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
微信商城系统操作说明 色卡会智能门店.
第5章 文本与字体 2019/4/25 面向对象与可视化 程序设计 --Visual C++ 编程 主讲教师: 唐 龙教授 (计算机科学与技术系) 黄维通博士 (计算机与信息管理中心) 清 华 大 学 2001年2月 2019/4/25 Huang Weitong.
iSIGHT 基本培训 使用 Excel的栅栏问题
PPT中视频的播放控制 苏州电教馆在线课程培训教程:PPT2003教程   制作:赵立锋 更多教程请见:
第六章 素材的加工与处理 第13讲 用GoldWave进行音频的截取、合并、淡入淡出操作
_13简单的GDI绘图操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
VRP教程 2011.
Delphi 7.0开发示例.
计算机绘图 AutoCAD2016.
Python 环境搭建 基于Anaconda和VSCode.
MFC控件 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang 官网地址:
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
MFC的六大核心 机制 命令传递 本节内容 视频提供:昆山爱达人信息技术有限公司 视频录制:yang
回归分析实验课程 (实验三) 多项式回归和定性变量的处理.
所得稅法第14條、第126條修正條文 薪資所得計算方式二擇一 定額減除 特定費用減除 維持現行薪資所得特別扣除額20萬元減除方式
大綱 一.受試者之禮券/禮品所得稅規範 二.範例介紹 三.自主管理 四.財務室提醒.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
本课内容 接下来的几节课,我们要利用C语言开发一些游戏 本节课开发一个俄罗斯方块游戏 游戏规则.
点击此处添加标题 PPT背景图片: PPT图表下载:
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
《手把手教你学STM32-STemWin》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司
Presentation transcript:

本课内容 接下来的几节课,我们要利用C语言开发一些游戏 本节课开发一个俄罗斯方块游戏 游戏规则

开发第一步 打开资源视图:修改Menu的菜单选项: 注:修改每一项的菜单ID

游戏规则 导入ICON资源并修改其ID:

游戏规则(牌型比较) 1:添加一个设置对话框,并修改其ID为:IDD_DLG_SETTING 2:添加下面的控件,并修改其ID

开发第二步(进行游戏实战) 右键上图的对话框: 添加一个类名为:CSettingDlg

开发第二步(进行游戏实战) 添加control bar 和 status bar: 第一步:MainFrm.h中添加成员变量: CToolBar m_wndToolBar; 第二步:MainFrm.cpp中修改OnCreate函数,添加如下代码: 1:CImageList img; //对图片进行处理的类 CString str; //设置按钮的宽度和长度 m_wndToolBar.GetToolBarCtrl().SetButtonWidth(40, 100); //改变属性 m_wndToolBar.ModifyStyle(0, TBSTYLE_FLAT |CBRS_TOOLTIPS | TBSTYLE_TRANSPARENT|TBBS_CHECKBOX ); //设置按钮数为 m_wndToolBar.SetButtons(NULL,4);

开发第二步(进行游戏实战) 2. 添加图像设置"热/hot"状态的的位图 img.Create(28, 28, ILC_COLOR8|ILC_MASK,2,2); img.SetBkColor(RGB(0, 0, 102)); 顺序增添按键的图标 img.Add(AfxGetApp()->LoadIcon(IDI_ICON_START)); img.Add(AfxGetApp()->LoadIcon(IDI_ICON_PAUSE)); img.Add(AfxGetApp()->LoadIcon(IDI_ICON_END)); img.Add(AfxGetApp()->LoadIcon(IDI_ICON_SET)); m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img); img.Detach(); 设置"冷/cold"状态的位图 img.Create(32, 32, ILC_COLOR8|ILC_MASK, 2,2); img.SetBkColor(::GetSysColor(COLOR_BTNFACE));

开发第二步(进行游戏实战) 顺序增添按键的图标 img.Add(AfxGetApp()->LoadIcon(IDI_ICON_START)); img.Add(AfxGetApp()->LoadIcon(IDI_ICON_PAUSE)); img.Add(AfxGetApp()->LoadIcon(IDI_ICON_END)); img.Add(AfxGetApp()->LoadIcon(IDI_ICON_SET)); m_wndToolBar.GetToolBarCtrl().SetImageList(&img); img.Detach(); 3. 设置文字 m_wndToolBar.SetButtonInfo(0, ID_GAME_START, TBSTYLE_BUTTON, 0); m_wndToolBar.SetButtonText(0, "开始"); m_wndToolBar.SetButtonInfo(1, ID_GAME_PAUSH, TBSTYLE_BUTTON, 1); m_wndToolBar.SetButtonText(1, "暂停"); m_wndToolBar.SetButtonInfo(2, ID_GAME_END, TBSTYLE_BUTTON,2); m_wndToolBar.SetButtonText(2, "结束"); m_wndToolBar.SetButtonInfo(3, ID_GAME_OPTION, TBSTYLE_BUTTON,3); m_wndToolBar.SetButtonText(3, "设置");

开发第二步(进行游戏实战) 4:设置工具BAR开始的大小 CRect rectToolBar; //得到按钮的大小 m_wndToolBar.GetItemRect(0, &rectToolBar); //设置按钮的大小 m_wndToolBar.SetSizes(rectToolBar.Size(), CSize(32,32));

绘制游戏客户区 在视图类中添加一个OnDraw()虚函数: 1:函数体内添加DcInit(): if(m_bFistPlay) { m_bFistPlay = FALSE; //用默认的参数,获取当前屏幕设备环境 CDC *pWindowDC = GetDC(); //1.用于映射屏幕的内存设备环境 //获取游戏窗口的大小用于下面设置内存位图的尺寸 CRect windowRect; GetClientRect(&windowRect); m_nWidth = windowRect.Width(); m_nHeight = windowRect.Height(); //内存设备环境与屏幕设备环境关联(兼容) m_memDC.CreateCompatibleDC(pWindowDC); //内存位图与与屏幕关联(兼容),大小为游戏窗口的尺寸 m_memBmp.CreateCompatibleBitmap(pWindowDC,m_nWidth,m_nHeight); //内存设备环境与内存位图关联,以便通过m_memDC在内存位图上作画 m_memDC.SelectObject(&m_memBmp); //2.存储方块位图的内存资源 m_memRectDC.CreateCompatibleDC(pWindowDC); //相当于将外部位图rect.bmp动态载入m_hMemRectBmp中 m_hMemRectBmp=(HBITMAP)LoadImage(NULL,"rect.bmp",IMAGE_BITMAP,150,30,LR_LOADFROMFILE); //内存设备环境与内存位图关联,以便通过m_memRectDC在内存位图上作画 SelectObject(m_memRectDC.m_hDC, m_hMemRectBmp); //黑色的黑笔 m_pBlackPen = new CPen(PS_SOLID,1,BLACK); //画刷 m_pGrayBrush = new CBrush(RGB(66,66,66)); m_pBlackBrush = new CBrush(BLACK); }

绘制游戏客户区 1:函数体内添加DrawGame (CDC *pCDC): 1:绘制游戏区域的背景 //选用黑色画刷,绘制整个游戏所在窗口的背景 pDC -> SelectObject(m_pBlackBrush); CRect rect; GetClientRect(&rect); pDC -> Rectangle(rect); //选用灰色画刷,绘制游戏区域的背景 pDC -> SelectObject(m_pGrayBrush); pDC -> Rectangle(m_iStartY ,m_iStartX, m_iStartY + 301, m_iStartX + 360); pDC->SelectObject(m_pBlackPen); 2:绘制网格

绘制游戏客户区 //画网格线 if (m_bDrawGrid) { //画横线 for (i=0;i<m_iRow;i++) pDC->MoveTo(m_iStartY, m_iStartX + i*m_iLarge); pDC->LineTo(m_iStartY+300, m_iStartX +i*m_iLarge); } //画竖线 for (i=0;i<m_iCol;i++) pDC->MoveTo(m_iStartY+i*m_iLarge, m_iStartX); pDC->LineTo(m_iStartY+i*m_iLarge, m_iStartX+360);

课程讲授完毕 感谢聆听! www.dut-px.com/