论文部分内容阅读
[摘要]随着嵌入式技术及手机互联网技术的发展,手机游戏业也进入了一个新的网络游戏时代。好多大学设置了嵌入式游戏设计课程,高尔夫球游戏设计是在嵌入式系统环境下,使用标准C语言编程实现高尔夫球或类似的击球入洞游戏。游戏将模拟高尔夫球的抛物线及滚动运动,地面的阻尼变化和进洞。对培养适应社会需求的嵌入式技术人才有着重要意义。
[关键词]嵌入式技术 高尔夫球游戏 课程设计
[中图分类号]G434 [文献标识码]A
一、引言
作为一种时尚或某种身份的隐约暗示,高尔夫球已逐渐渗透到我们的都市生活之中,但高尔夫球训练场成本高及对自然环境的破坏,使得现在国家队高尔夫球场用地的批复尤为慎重。嵌入式系统设计的高尔夫球游戏使得玩家可以随时随地不受场地限制玩游戏,使得嵌入式游戏市场进一步扩大[1]。高尔夫球起源于苏格兰,后成为苏格兰的一项传统项目,然后传入英格兰。“高尔夫”,本是英语golf的译音。在英语中,golf一词是由绿(green)、氧气(oxygen)、阳光 (light)和友谊(friendship)这四个单词的打头字母所组成的。一项运动,能兼有上述四项诱人的内容,在崇尚休闲的现代社会中,使它成为人们的宠儿。
二、嵌入式沙壶球游戏概述
在游戏中,游戏者的目标是将小球击入洞内,左侧操作区内将显示游戏者的杆数和标准杆数,左下角则在提示信息区显示提示信息,左中部有方向圈和力度槽,方向圈控制小球运动的方向,力度槽控制小球运动的距离,按下两次确定键选择方向和力度后小球开始运动;运动的实际方向和长度将受到地形和阻力的影响,最终小球将进洞或者由于阻力停下。如果进洞,游戏者将返回上层菜单或开始下一局;如果没有进洞,游戏者将继续击球直至进洞。小球进洞后可以重新开始游戏[2]。
在游戏设计中,主要的流程控制方法是事件响应控制,包括状态值控制、键盘响应控制、满足条件的特殊事件控制。状态值控制是在程序中定义不重复的状态值,在游戏运行的每一个阶段,都有相对应的状态值;键盘响应控制主要在键盘响应函数中,根据输入不同的键值,在不同的状态,触发不同事件;满足条件的特殊事件控制是指由于游戏者的操作达到某些事件发生条件时(例如球出界或进洞等),触发不同事件[3]。
整个游戏流程图如图1所示:
图1:高尔夫球游戏设计的流程图
(1)初始化及部分游戏系统提示模块详细设计
包括:进入游戏时,程序将进行初始化,包括初始化三角函数表,将资源读入缓冲区以及将系统数据定义为初始状态;每关开始时,程序进行关卡初始化,包括读入地图,将游戏数据定义为指定值,显示方向圈、力度槽、进入关卡。
(2)球的运动及状况判断模块
包括:处理运动受地形和阻力影响速度和方向的改变;判断球是否出界和进洞。
(3)键盘响应及流程控制模块
包括:键盘响应;控制游戏流程、菜单选择。
三、高尔夫球游戏算法部分
1.动画原理
动画效果实际上是“欺骗”眼睛的结果,由于人的眼睛处理信息的数量有限,每次看到的景象会在大脑中残留0.1秒左右,由此,只要在一个景象显示0.1秒内显示下一个景象,看上起就好像动起来了一样;如果在一秒内连续显示24个以上的景象,人眼就会看成是流畅的运动。所以,所有的动画都是反复显示图像的结果。例如在本游戏中,小球的运动就是通过在每秒钟显示30次以上的不同位置的小球图像来实现的。
2.地面的阻尼变化
地表阻力fric是声明在程序中的全局变量,并通过测试被定义为0.8。只要小球运动,就有相反方向的阻力,如图2所示i。根据勾股定理:
fricx=fric*(-(theball.speedx))/sqrt((theball.speedx*theball.speedx)+(theball.speedy*theball.speedy));
fricy=fric*(-(theball.speedy))/sqrt((theball.speedx*theball.speedx)+(theball.speedy*theball.speedy));
图2:地表阻力分析图
fircx和fricy是小球水平和垂直方向受阻力影响改变的速度:
addspeedx+=fricx;
addspeedy+=fricy;
斜坡受力braefric也是声明在程序中的全局变量,并通过测试被定义为0.15。根据局数不同,在小球运动中取小球坐标然后在速度变化函数中取得斜坡受力[4]。
小球如果处于朝向游戏者的斜坡上,所以应受到垂直正方向上的斜坡受力。
addspeedy+=braefri;
经过处理地表阻力和斜坡受力,最后,水平速度变化量、垂直速度变化量是地表阻力和斜坡阻力的加和。
3.镂空动画技术
在游戏开发中,镂空是十分重要的一项技术。所谓镂空,是指在背景上显示角色或其他背景。因为所有的语言只能显示矩形位图文件,如果不使用镂空技术,在显示角色时,角色周围将留有原位图文件的多余部分,如图3所示:
图3:镂空动画技术显示图
四、总结
与嵌入式技术相结合的高尔夫球游戏娱乐性已经不输于真实版高尔夫球游戏,使游戏的操作更方便,感觉更逼真。人们从游戏中可以得到视觉、听觉甚至触觉的感官刺激,如果将来新的技术可以带来新的感官刺激,它将很快运用到游戏技术中。
基金项目:北京信息科技大学《嵌入式系统及安全》课程建设项目
[参考文献]
[1]胡昭民. 游戏设计概论(第3版). 北京:清华大学出版社,2011
[2](美)Scott Jacobs. 游戏编程精粹7[M]. 北京:北人民邮电出版社,2010
[3]王小妮、魏桂英、杨根兴. 嵌入式组件设计[M].北京航空航天大学出版社,2012
[4](美)Andrew Binstock. 程序员实用算法[M]. 北京:机械工业出版社,2009
(作者单位:北京信息科技大学 理学院 北京)
[关键词]嵌入式技术 高尔夫球游戏 课程设计
[中图分类号]G434 [文献标识码]A
一、引言
作为一种时尚或某种身份的隐约暗示,高尔夫球已逐渐渗透到我们的都市生活之中,但高尔夫球训练场成本高及对自然环境的破坏,使得现在国家队高尔夫球场用地的批复尤为慎重。嵌入式系统设计的高尔夫球游戏使得玩家可以随时随地不受场地限制玩游戏,使得嵌入式游戏市场进一步扩大[1]。高尔夫球起源于苏格兰,后成为苏格兰的一项传统项目,然后传入英格兰。“高尔夫”,本是英语golf的译音。在英语中,golf一词是由绿(green)、氧气(oxygen)、阳光 (light)和友谊(friendship)这四个单词的打头字母所组成的。一项运动,能兼有上述四项诱人的内容,在崇尚休闲的现代社会中,使它成为人们的宠儿。
二、嵌入式沙壶球游戏概述
在游戏中,游戏者的目标是将小球击入洞内,左侧操作区内将显示游戏者的杆数和标准杆数,左下角则在提示信息区显示提示信息,左中部有方向圈和力度槽,方向圈控制小球运动的方向,力度槽控制小球运动的距离,按下两次确定键选择方向和力度后小球开始运动;运动的实际方向和长度将受到地形和阻力的影响,最终小球将进洞或者由于阻力停下。如果进洞,游戏者将返回上层菜单或开始下一局;如果没有进洞,游戏者将继续击球直至进洞。小球进洞后可以重新开始游戏[2]。
在游戏设计中,主要的流程控制方法是事件响应控制,包括状态值控制、键盘响应控制、满足条件的特殊事件控制。状态值控制是在程序中定义不重复的状态值,在游戏运行的每一个阶段,都有相对应的状态值;键盘响应控制主要在键盘响应函数中,根据输入不同的键值,在不同的状态,触发不同事件;满足条件的特殊事件控制是指由于游戏者的操作达到某些事件发生条件时(例如球出界或进洞等),触发不同事件[3]。
整个游戏流程图如图1所示:
图1:高尔夫球游戏设计的流程图
(1)初始化及部分游戏系统提示模块详细设计
包括:进入游戏时,程序将进行初始化,包括初始化三角函数表,将资源读入缓冲区以及将系统数据定义为初始状态;每关开始时,程序进行关卡初始化,包括读入地图,将游戏数据定义为指定值,显示方向圈、力度槽、进入关卡。
(2)球的运动及状况判断模块
包括:处理运动受地形和阻力影响速度和方向的改变;判断球是否出界和进洞。
(3)键盘响应及流程控制模块
包括:键盘响应;控制游戏流程、菜单选择。
三、高尔夫球游戏算法部分
1.动画原理
动画效果实际上是“欺骗”眼睛的结果,由于人的眼睛处理信息的数量有限,每次看到的景象会在大脑中残留0.1秒左右,由此,只要在一个景象显示0.1秒内显示下一个景象,看上起就好像动起来了一样;如果在一秒内连续显示24个以上的景象,人眼就会看成是流畅的运动。所以,所有的动画都是反复显示图像的结果。例如在本游戏中,小球的运动就是通过在每秒钟显示30次以上的不同位置的小球图像来实现的。
2.地面的阻尼变化
地表阻力fric是声明在程序中的全局变量,并通过测试被定义为0.8。只要小球运动,就有相反方向的阻力,如图2所示i。根据勾股定理:
fricx=fric*(-(theball.speedx))/sqrt((theball.speedx*theball.speedx)+(theball.speedy*theball.speedy));
fricy=fric*(-(theball.speedy))/sqrt((theball.speedx*theball.speedx)+(theball.speedy*theball.speedy));
图2:地表阻力分析图
fircx和fricy是小球水平和垂直方向受阻力影响改变的速度:
addspeedx+=fricx;
addspeedy+=fricy;
斜坡受力braefric也是声明在程序中的全局变量,并通过测试被定义为0.15。根据局数不同,在小球运动中取小球坐标然后在速度变化函数中取得斜坡受力[4]。
小球如果处于朝向游戏者的斜坡上,所以应受到垂直正方向上的斜坡受力。
addspeedy+=braefri;
经过处理地表阻力和斜坡受力,最后,水平速度变化量、垂直速度变化量是地表阻力和斜坡阻力的加和。
3.镂空动画技术
在游戏开发中,镂空是十分重要的一项技术。所谓镂空,是指在背景上显示角色或其他背景。因为所有的语言只能显示矩形位图文件,如果不使用镂空技术,在显示角色时,角色周围将留有原位图文件的多余部分,如图3所示:
图3:镂空动画技术显示图
四、总结
与嵌入式技术相结合的高尔夫球游戏娱乐性已经不输于真实版高尔夫球游戏,使游戏的操作更方便,感觉更逼真。人们从游戏中可以得到视觉、听觉甚至触觉的感官刺激,如果将来新的技术可以带来新的感官刺激,它将很快运用到游戏技术中。
基金项目:北京信息科技大学《嵌入式系统及安全》课程建设项目
[参考文献]
[1]胡昭民. 游戏设计概论(第3版). 北京:清华大学出版社,2011
[2](美)Scott Jacobs. 游戏编程精粹7[M]. 北京:北人民邮电出版社,2010
[3]王小妮、魏桂英、杨根兴. 嵌入式组件设计[M].北京航空航天大学出版社,2012
[4](美)Andrew Binstock. 程序员实用算法[M]. 北京:机械工业出版社,2009
(作者单位:北京信息科技大学 理学院 北京)