
打地鼠游戏设计优秀课件.ppt
15页打地鼠游戏设计打地鼠游戏设计本章主要讲述:本章主要讲述:Ø游戏界面设计游戏界面设计Ø数据数据结构构设计Ø游游戏任任务设计Ø任任务之之间的同步和通信的同步和通信设计Ø相关功能函数模相关功能函数模块实现游游戏界面界面设计一、游一、游戏方方阵设计789456123789F456E123D0ABC二、地鼠和贴出图片设计二、地鼠和贴出图片设计(大小与游戏方阵的方格大大小与游戏方阵的方格大小一致)小一致)三、人机交互设计三、人机交互设计Ø玩家通过键盘(触摸屏)进行游戏玩家通过键盘(触摸屏)进行游戏Ø地鼠按照一定的时间间隔(根据难度而定)地鼠按照一定的时间间隔(根据难度而定)随机出现在游戏方阵的一个方格里,并停留随机出现在游戏方阵的一个方格里,并停留一定的时间一定的时间Ø玩家通过按键(触摸)将铁锤砸向制定方格玩家通过按键(触摸)将铁锤砸向制定方格Ø如果铁锤砸中的方格和地鼠出现的方格一致,如果铁锤砸中的方格和地鼠出现的方格一致,则表示成功砸中一个,否则就算失误一次则表示成功砸中一个,否则就算失误一次游戏数据结构设计游戏数据结构设计一、游戏方阵位置的表示一、游戏方阵位置的表示Ø3X3方阵:从上到下、从左到右分别用方阵:从上到下、从左到右分别用0、、1、、。
Ø4X4方阵:从上到下、从左到右分别用方阵:从上到下、从左到右分别用0、、1、、15表示 二、键值和方格位置的对应关系二、键值和方格位置的对应关系Ø对于对于3X3方阵方阵Ø对于对于4X4方阵方阵游戏任务的设计游戏任务的设计Ø按键处理任务按键处理任务(TaskKey):对按键进行检测,:对按键进行检测,并获取按键的键值并获取按键的键值Ø显示锤击任务显示锤击任务(TaskDispHammer):根据玩:根据玩家按键在游戏方阵的相应方格显示锤子,并家按键在游戏方阵的相应方格显示锤子,并比较锤击位置和地鼠显示位置是否一致,如比较锤击位置和地鼠显示位置是否一致,如果一致,表示砸中,否则表示失误果一致,表示砸中,否则表示失误Ø显示地鼠任务显示地鼠任务(TaskDispMouse):产生一个随:产生一个随机数(机数(0~8或或0~15),并以该数作为位置显),并以该数作为位置显示地鼠,并停留一定的的时间间隔示地鼠,并停留一定的的时间间隔Ø游戏成绩显示任务游戏成绩显示任务TaskDispScore:显示锤击:显示锤击次数、砸中次数和失误的次数次数、砸中次数和失误的次数任务之间同步和通信设计任务之间同步和通信设计按键按键任务任务消息邮箱消息邮箱显示锤击显示锤击任务任务按键任务和显示锤击任务之间的通信内容按键任务和显示锤击任务之间的通信内容为方阵位置(根据键值查表得到)为方阵位置(根据键值查表得到)显示锤击显示锤击任务任务信号量信号量显示成绩显示成绩任务任务显示锤击任务和显示成绩任务之间的通过显示锤击任务和显示成绩任务之间的通过信号量实现同步(锤击后显示成绩,包括信号量实现同步(锤击后显示成绩,包括锤击次数、砸中次数、失误次数)锤击次数、砸中次数、失误次数)显示地鼠显示地鼠任务任务信号量信号量显示成绩显示成绩任务任务显示地鼠任务和显示成绩任务之间的通过显示地鼠任务和显示成绩任务之间的通过信号量实现同步(包括地鼠停留一定时间信号量实现同步(包括地鼠停留一定时间后消失,并对失误次数加一)后消失,并对失误次数加一)Ø“显示地鼠任务显示地鼠任务”需要访问需要访问“显示锤击任务显示锤击任务”中的位置中的位置信息,但是两者之间没有同步制约关系,所以不能信息,但是两者之间没有同步制约关系,所以不能采用消息邮箱实现两个任务之间的数据通信。
这时采用消息邮箱实现两个任务之间的数据通信这时候只有通过全局变量实现候只有通过全局变量实现Ø锤击任务可能需要唤醒显示地鼠任务锤击任务可能需要唤醒显示地鼠任务显示锤击显示锤击任务任务锤击位置锤击位置(全局变量)(全局变量)显示地鼠显示地鼠任务任务主要功能模块(函数)的实现主要功能模块(函数)的实现Ø显示游戏方阵显示游戏方阵Ø保存方格背景:根据方格位置保存方格背景:根据方格位置Ø恢复方格背景:根据参数为方格位置恢复方格背景:根据参数为方格位置Ø锤击(在方格中加载锤子图像):根据锤子像素数锤击(在方格中加载锤子图像):根据锤子像素数组和方格位置组和方格位置Ø冒地鼠(在方格中加载地鼠图像):根据地鼠像素冒地鼠(在方格中加载地鼠图像):根据地鼠像素数组和方格位置数组和方格位置Ø显示成绩:显示成绩:深入问题深入问题Ø能够设置游戏难度(地鼠停留的时间更短、可能同能够设置游戏难度(地鼠停留的时间更短、可能同时出现两个地鼠等)时出现两个地鼠等)Ø能够实现当玩家失误一定次数之后停止游戏,并重能够实现当玩家失误一定次数之后停止游戏,并重新开始新开始Ø通过鼠标(触摸屏)与游戏交互通过鼠标(触摸屏)与游戏交互。
Ø解决之道就是:利用消息队列来实现显解决之道就是:利用消息队列来实现显示任务与其他提出画面更新要求的任务示任务与其他提出画面更新要求的任务之间的通信之间的通信。
