c++课程设计打飞碟
08-C语言课程设计-打飞碟(提高篇)

C语言课程设计--打飞碟一、游戏介绍打飞碟游戏是玩家通过鼠标控制大炮发射炮弹以及大炮发射时指向的方向,击毁从天空落下的飞碟。
飞碟每次从不同的位置、以不同的速度向下落。
打中不同的飞碟可以得到不同的分数。
我们可以显示当前的得分。
二、实验目的综合应用C语言知识开发一款小游戏。
三、实验内容1、游戏初始界面如下图。
2、按下空格键后,“空格开始”消失,一局游戏开始。
3、游戏开始后:1)鼠标变成十字星;2)地面上有一门大炮,玩家通过移动鼠标可以控制炮口在一定范围内上下移动;3)单击鼠标左键,大炮发射炮弹;4)每局游戏时间为30秒,在屏幕左上方显示,并适时更新游戏剩余时间;5)有大中小三种飞碟,按不同时间频率随机从屏幕顶部的某个位置落下。
炮弹击中大飞碟加1分,击中中飞碟加2分,击中小飞碟加10分。
得分显示在屏幕左上角。
6)游戏时间到后,游戏停止,重新显示游戏初始界面。
7)记录最高的5次游戏得分,按从高到低顺序显示在游戏底部。
游戏初始界面四、实验准备本实验中可能用到的C语言标准库函数和FunCode API Stdio.hMath.hString.hFunCode APIfloatdSetSpritePositionX(const char* szName); 设置精灵中心点的X 坐标值floatdSetSpritePositionY(const char* szName); 设置精灵中心点的Y 坐标值voiddSetSpritePosition(const char* szName, const float fPosX, const float fPosY); 设置精灵中心点的X和Y坐标值,用来将精灵放置在某个指定位置。
dSetSpritePosition(“feichong_0”, 0, 0);将名称为”feichong_0”的精灵的中心点设置在坐标(0, 0)上void dSetSpriteLinearVelocityX( const char* szName, const float fVelX); 设置精灵X轴方向速度void dSetSpriteLinearVelocityY( const char* szName, const float fVelY); 设置精灵Y轴方向速度void dSetSpriteLinearVelocity(c onst char* szName, const float fVelX, const float fVelY); 设置精灵X轴和Y轴方向速度floatdGetSpriteRotation(const char* szName); 获取精灵的旋转角度原图的角度调整后的角度获得的旋转角度即为两张图片的角度差floatdSetSpriteRotation(const char* szName, float fRot); 设置图片的旋转角度fRot>0,图片顺时针旋转;fRot<0,图片逆时针旋转。
体育 飞碟的教案

体育飞碟的教案标题:体育-飞碟的教案教案概述:本教案旨在通过飞碟运动的学习,提高学生的手眼协调能力、团队合作和身体协调性。
通过多种教学方法和活动,帮助学生掌握飞碟基本技巧,并培养他们的运动兴趣和积极参与精神。
教学目标:1. 学习飞碟的基本技巧,包括抛掷、接球和传递。
2. 提高学生的手眼协调能力和身体协调性。
3. 培养学生的团队合作和沟通能力。
4. 培养学生对体育运动的兴趣和积极参与精神。
教学重点:1. 飞碟的基本技巧训练。
2. 学生的团队合作和沟通能力培养。
教学准备:1. 飞碟。
2. 操场或室内空旷的场地。
3. 标志物或锥桶。
教学过程:1. 热身活动(5分钟):- 进行全身热身操,包括拉伸、跑步等。
- 进行简单的手部和眼部热身运动,如手臂摆动、眼球转动等。
2. 技术训练(15分钟):- 教授飞碟的基本抛掷技巧,包括正确握持飞碟、抛掷的姿势和动作。
- 学生进行基本的抛掷练习,逐渐增加难度和距离。
3. 游戏活动(20分钟):- 分组进行飞碟接力赛,要求队员之间用飞碟传递。
- 设立目标区域,要求学生用飞碟尽量多次地命中目标。
- 进行飞碟接力赛,每组成员依次进行接球和抛掷,尽快完成比赛。
4. 团队合作训练(15分钟):- 将学生分成小组,要求他们合作进行飞碟传递,以完成特定任务,如围成一个圆圈。
- 引导学生在传递过程中进行有效的沟通和协作。
5. 游戏总结(5分钟):- 与学生一起回顾本节课所学的飞碟基本技巧和团队合作训练。
- 鼓励学生分享他们在游戏中的体验和感受。
- 提醒学生将所学的技能应用到实际生活中,积极参与体育运动。
教学延伸:1. 组织飞碟比赛,让学生展示他们在技巧和团队合作方面的进步。
2. 引导学生探索不同飞碟游戏的规则和策略,培养他们的创新思维和战略意识。
3. 鼓励学生在课余时间继续练习飞碟技巧,参加相关的比赛和活动。
教学评估:1. 观察学生在技术训练和游戏活动中的表现,评估他们的技能掌握程度。
小班体育活动玩飞碟教案

一、活动名称:小班体育活动玩飞碟教案二、活动目标:1. 培养幼儿对体育活动的兴趣,发展基本动作。
2. 锻炼幼儿的手眼协调能力和团队合作精神。
3. 培养幼儿的平衡能力和空间感知能力。
三、活动准备:1. 飞碟若干个2. 音乐播放设备3. 活动场地布置四、活动过程:1. 热身活动(5分钟)a. 教师带领幼儿做简单的热身运动,如捉迷藏、老鹰捉小鸡等。
b. 引导幼儿跑动、跳跃,活动身体的各个部位。
2. 飞碟投掷活动(5分钟)a. 教师向幼儿介绍飞碟的玩法,演示正确的投掷姿势。
b. 幼儿分组进行飞碟投掷练习,教师指导并纠正动作不规范的地方。
c. 设置投掷目标,如气球、图片等,增加幼儿的投掷兴趣。
3. 飞碟接力活动(5分钟)a. 教师将幼儿分成两个小组,每个小组手持一个飞碟。
b. 第一个幼儿将飞碟抛出,接着第二个幼儿接住飞碟并迅速抛出,以此类推。
c. 教师注意观察幼儿的抛接动作,纠正不规范的地方。
4. 飞碟平衡活动(5分钟)a. 教师将飞碟平放在幼儿的额头上,幼儿需要保持飞碟平衡,不能让飞碟掉落。
b. 幼儿在教师的指导下,尝试行走、转圈,保持飞碟平衡。
c. 教师鼓励幼儿相互竞争,提高平衡能力。
5. 结束活动(5分钟)a. 教师带领幼儿做简单的放松运动,如深呼吸、肌肉拉伸等。
c. 教师和幼儿一起收拾活动器材,结束本次体育活动。
五、活动注意事项:1. 确保活动场地安全,避免幼儿在活动中受伤。
2. 关注每个幼儿的活动情况,给予适当的指导和鼓励。
3. 活动过程中,教师要保持热情和耐心,营造积极的氛围。
4. 活动结束后,及时与幼儿家长沟通,分享幼儿在活动中的表现。
六、活动延伸:1. 家庭作业:教师请家长协助,鼓励幼儿在家中与家长一起进行飞碟投掷游戏,加强手眼协调能力。
2. 环境创设:教师在教室环境中布置飞碟主题墙饰,引导幼儿观察和讨论飞碟的形状、颜色等特征。
七、活动评价:1. 教师观察并记录幼儿在活动中的参与程度、动作技能、团队合作等情况。
拓展飞碟游戏教案设计

拓展飞碟游戏教案设计教案标题:拓展飞碟游戏教案设计教学目标:1. 了解飞碟游戏的基本规则和目标。
2. 提高学生的协作能力和团队合作精神。
3. 发展学生的运动技能和身体协调能力。
4. 培养学生的反应能力和判断力。
教学准备:1. 飞碟游戏器材:飞碟、标志物(如锥桶等)。
2. 教学场地:室内或室外空旷场地。
3. 讲解PPT或黑板、白板等。
教学过程:引入:1. 利用图片或视频展示飞碟游戏的场景和玩法,激发学生的兴趣。
2. 引导学生讨论他们对飞碟游戏的了解和经验。
主体:1. 规则介绍:a. 将学生分成两个团队,每个团队站在场地的两端。
b. 在场地中央放置标志物作为目标区域。
c. 每个团队轮流将飞碟尽量准确地投掷到对方的目标区域内。
d. 每个团队可以派出一名学生在自己的目标区域内进行防守,阻止对方投掷成功。
e. 每个团队根据成功投掷的飞碟数量得分,比赛时间结束后得分高的团队获胜。
2. 技能训练:a. 分别向学生示范正确的飞碟投掷姿势和技巧。
b. 让学生进行练习,重点训练准确性和力量控制。
c. 引导学生互相观察和给予改进意见,帮助他们提高技能水平。
3. 团队合作:a. 强调团队合作的重要性,鼓励学生相互协作、配合。
b. 设计一些团队合作的小游戏,如要求学生在规定时间内投掷飞碟到指定目标区域,以增强团队默契。
4. 比赛与反思:a. 安排学生进行飞碟游戏比赛,记录比赛结果。
b. 比赛结束后,组织学生进行反思讨论,分享比赛中的经验和教训。
c. 鼓励学生提出改进策略,以提高下一次比赛的表现。
总结:1. 总结飞碟游戏的规则和技巧,强调团队合作的重要性。
2. 提醒学生在日常生活中运用所学的协作和团队合作技巧。
拓展活动:1. 鼓励学生设计自己的飞碟游戏规则,并组织比赛。
2. 邀请专业飞碟选手或教练进行示范和指导。
评估方式:1. 观察学生在练习和比赛中的表现,评估其技能水平和团队合作能力。
2. 收集学生的自我评价和反思,了解他们对游戏过程的理解和体会。
飞盘教学课程设计

飞盘教学课程设计一、教学目标本课程旨在通过飞盘教学,让学生掌握飞盘的基本技巧,了解飞盘运动的历史和规则,培养学生的团队合作精神和竞技体育意识。
知识目标:使学生了解飞盘的起源、发展以及国际飞盘运动的相关,掌握飞盘的基本技巧和比赛规则。
技能目标:使学生能够熟练地完成飞盘的基本动作,如盘不离手、接盘、传盘、防守等,并在实战中运用。
情感态度价值观目标:培养学生热爱运动、积极向上的生活态度,增强团队合作意识,提高学生的自我约束力和竞技体育精神。
二、教学内容本课程的教学内容主要包括飞盘的基本技巧、飞盘运动的历史、飞盘比赛的规则以及团队合作精神的培养。
1.飞盘的基本技巧:包括盘不离手、接盘、传盘、防守等。
2.飞盘运动的历史:介绍飞盘的起源、发展以及国际飞盘运动的相关。
3.飞盘比赛的规则:详细讲解飞盘比赛的各种规则,包括比赛场地、人数、比赛时间等。
4.团队合作精神的培养:通过团队比赛和实战训练,培养学生的团队合作精神和竞技体育意识。
三、教学方法本课程采用多种教学方法,包括讲授法、示范法、实战训练法等。
1.讲授法:用于讲解飞盘的基本技巧、运动历史和比赛规则。
2.示范法:通过教师或优秀学生的示范,使学生更好地理解和掌握飞盘技巧。
3.实战训练法:通过团队比赛和实战训练,培养学生的团队合作精神和竞技体育意识。
四、教学资源本课程所需的教学资源包括飞盘教材、教学视频、飞盘设备等。
1.飞盘教材:用于为学生提供系统的飞盘知识。
2.教学视频:用于为学生提供直观的飞盘技巧和比赛规则讲解。
3.飞盘设备:包括飞盘、保护器材等,用于实战训练和学生练习。
五、教学评估本课程的评估方式包括平时表现、作业、考试和实践比赛等,以全面、客观、公正地评价学生的学习成果。
1.平时表现:评估学生在课堂上的参与度、态度、团队协作等方面的表现。
2.作业:布置相应的作业,评估学生的知识掌握和运用能力。
3.考试:设置理论考试和实践考试,检验学生对飞盘知识和技能的掌握。
小班体育活动玩飞碟教案

一、活动名称:小班体育活动玩飞碟教案二、活动目标:1. 让学生掌握玩飞碟的基本技巧,提高学生的身体协调能力。
2. 培养学生团队协作精神,增强集体荣誉感。
3. 培养学生勇敢、自信、积极的心理品质。
三、活动准备:1. 飞碟若干个2. 活动场地(室内或室外)3. 音乐播放设备四、活动过程:1. 热身活动(5分钟)教师带领学生做简单的热身运动,如捉迷藏、老鹰捉小鸡等,让学生充分活动身体,提高身体协调能力。
2. 飞碟基本技巧学习(10分钟)1. 教师向学生介绍飞碟的玩法,讲解投掷和接飞的技巧。
2. 学生分组练习,教师个别指导,纠正动作不规范的地方。
3. 学生互相交流心得,分享学习经验。
3. 团队竞技比赛(10分钟)1. 教师将学生分成若干小组,进行团队竞技比赛。
2. 比赛过程中,学生轮流投掷飞碟,接飞队友的飞碟。
3. 教师记录每组比赛成绩,为学生加油鼓劲。
4. 放松活动(5分钟)教师带领学生做放松运动,如轻轻摇摆、深呼吸等,让学生缓解疲劳。
五、活动总结:1. 教师和学生一起回顾活动过程,总结收获。
2. 学生分享自己在活动中的喜悦和成长。
3. 教师对学生在活动中的表现给予肯定和鼓励,提出改进意见。
六、活动评估:1. 观察学生在投掷和接飞碟时的动作是否规范、协调。
2. 关注学生在团队竞技比赛中的表现,记录每组的成绩。
3. 关注学生的团队协作精神,观察学生在比赛中的沟通能力、合作态度等。
七、安全提示:1. 确保学生在投掷飞碟时,周围没有其他同学,以免发生意外。
2. 提醒学生在接飞碟时,要注意自己的安全,避免碰撞或扭伤。
3. 教师要密切关注学生的活动,及时发现并制止不安全行为。
八、教学延伸:1. 邀请家长参与活动,增进亲子关系,提高家庭支持力度。
2. 组织类似的活动,让学生在其他体育项目中锻炼身体,提高综合素质。
九、活动反思:1. 教师要反思在活动中的教学方法、组织方式是否恰当,是否符合学生的实际情况。
2. 学生要反思自己在活动中的表现,找出不足之处,加以改进。
少儿编程scratch中级:激战飞碟教案
矿产资源开发利用方案编写内容要求及审查大纲
矿产资源开发利用方案编写内容要求及《矿产资源开发利用方案》审查大纲一、概述
㈠矿区位置、隶属关系和企业性质。
如为改扩建矿山, 应说明矿山现状、
特点及存在的主要问题。
㈡编制依据
(1简述项目前期工作进展情况及与有关方面对项目的意向性协议情况。
(2 列出开发利用方案编制所依据的主要基础性资料的名称。
如经储量管理部门认定的矿区地质勘探报告、选矿试验报告、加工利用试验报告、工程地质初评资料、矿区水文资料和供水资料等。
对改、扩建矿山应有生产实际资料, 如矿山总平面现状图、矿床开拓系统图、采场现状图和主要采选设备清单等。
二、矿产品需求现状和预测
㈠该矿产在国内需求情况和市场供应情况
1、矿产品现状及加工利用趋向。
2、国内近、远期的需求量及主要销向预测。
㈡产品价格分析
1、国内矿产品价格现状。
2、矿产品价格稳定性及变化趋势。
三、矿产资源概况
㈠矿区总体概况
1、矿区总体规划情况。
2、矿区矿产资源概况。
3、该设计与矿区总体开发的关系。
㈡该设计项目的资源概况
1、矿床地质及构造特征。
2、矿床开采技术条件及水文地质条件。
c课程设计打飞碟
实施教学:按照教学计划实施教学,包括讲解、演示、练习等
打飞碟游戏规则和玩法
04
打飞碟游戏规则介绍
游戏规则: a. 玩家轮流投掷飞镖,打中飞碟获得积分 b. 飞碟分为不同颜色和分数,打中不同颜色的飞碟获得不同的积分 c. 游戏结束后,积分最高的玩家获胜
课程设计实施中的评估和反馈机制
评估方式:采用问卷调查、访谈、观察等方式进行
反馈方式:通过教师、学生、家长等反馈渠道进行
反馈处理:对反馈信息进行分析,及时调整课程设计实施方案,提高教学质量
评估内容:包括课程设计目标、教学内容、教学方法、教学效果等方面
课程设计成果展示和评价
06
课程设计成果展示的方式和内容
实施教学:按照教学计划实施教学,包括讲解、演示、实验等
评估教学效果:通过考试、作业、实验等方式评估教学效果,并根据评估结果进行改进
课程设计实施中的难点和重点
重点:如何设计出吸引人的游戏界面和音效
重点:如何设计出易于上手的游戏操作和规则
难点:如何设计出有趣、有挑战性的游戏关卡
难点:如何平衡游戏的难度和玩家的能力
课程设计内容
03
课程设计的主题和目标
添加标题
添加标题
添加标题
添加标题
目标:提高学生的反应速度和手眼协调能力
主题:打飞碟
课程内容:包括飞碟的基本原理、打飞碟的技巧和方法、打飞碟的规则和比赛形式等
课程目标:让学生掌握打飞碟的基本技能,提高学生的反应速度和手眼协调能力,培养学生的团队合作精神和竞争意识。
课程设计应注重培养学生的自主学习能力和自我管理能力
对打飞碟游戏的展望和建议
游戏玩法创新:增加新的游戏模式,提高游戏的趣味性和挑战性
幼儿园小班体育游戏教案《玩飞碟》
幼儿园小班体育游戏教案《玩飞碟》一、教学目标1.培养幼儿对飞碟的兴趣,提高幼儿的投掷能力。
2.培养幼儿团队协作精神,增强集体荣誉感。
3.培养幼儿勇敢、自信的品质,提高幼儿的抗挫折能力。
二、教学重点与难点1.教学重点:幼儿能准确地投掷飞碟,掌握基本的投掷技巧。
2.教学难点:幼儿在游戏中能够遵守规则,积极配合队友。
三、教学准备1.飞碟若干个2.记分板3.音乐播放设备四、教学过程(一)导入1.教师带领幼儿做热身运动,活跃气氛。
2.教师出示飞碟,引发幼儿兴趣。
(二)基本技能训练1.教师示范投掷飞碟的动作,讲解要点。
2.幼儿分组进行投掷练习,教师巡回指导。
3.幼儿进行投掷比赛,评选出最佳投手。
(三)团队协作游戏1.游戏名称:飞碟接力2.游戏规则:(1)幼儿分成四队,每队五人。
(2)每队成员依次将飞碟投向对方队伍,对方队伍成员接住飞碟后,迅速跑回本队,交给下一个队员。
(3)在规定时间内,投掷次数最多的队伍获胜。
3.游戏过程:(1)教师组织幼儿进行游戏,讲解规则。
(2)幼儿进行游戏,教师巡回指导。
(3)游戏结束后,评选出获胜队伍,给予奖励。
2.幼儿分享自己在游戏中的感受。
五、教学反思重难点补充:教学重点:幼儿能准确地投掷飞碟,掌握基本的投掷技巧。
对话示例:教师:小朋友们,你们知道怎么才能把飞碟投得更远吗?幼儿A:要使劲扔!教师:嗯,使劲是需要的,但还要注意投掷的角度和力度哦。
我们一起来试试,看能不能投得更准更远。
教学难点:幼儿在游戏中能够遵守规则,积极配合队友。
对话示例:教师:我们玩游戏的时候,最重要的是什么?幼儿B:好玩!教师:对,好玩很重要,但还有一点,就是要遵守规则。
比如,我们要排队投掷,等别人投完了我们再投,还要互相帮助,这样可以吗?幼儿C:可以!教学过程补充:(一)导入教师展示飞碟,引导幼儿观察飞碟的形状和颜色。
教师:小朋友们,你们看看这个飞碟,它是什么形状的?什么颜色?你们想不想玩一玩?(二)基本技能训练教师一边示范投掷动作,一边讲解要点,如“手臂要伸直”,“眼睛要看准目标”。
大学生飞碟游戏教案
课程名称:游戏设计与开发授课对象:计算机科学与技术专业大学生课时安排:2课时教学目标:1. 了解飞碟游戏的基本概念和设计原则。
2. 掌握使用Unity引擎进行飞碟游戏的开发流程。
3. 学会使用Unity引擎中的基本组件和脚本进行游戏逻辑的实现。
4. 培养团队合作和问题解决能力。
教学重点:1. Unity引擎的基本操作和组件使用。
2. 飞碟游戏的核心逻辑设计。
教学难点:1. Unity引擎中的脚本编写和调试。
2. 游戏性能优化。
教学准备:1. 安装Unity引擎。
2. 准备Unity引擎的飞碟游戏开发环境。
3. 提供相关教学资料和参考书籍。
教学过程:第一课时一、导入1. 向学生介绍飞碟游戏的历史和发展。
2. 提出问题:如何设计一个有趣的飞碟游戏?二、讲解飞碟游戏设计原则1. 游戏性:游戏的核心玩法和目标。
2. 界面设计:游戏的视觉效果和交互方式。
3. 声音效果:背景音乐和音效的搭配。
三、Unity引擎基本操作1. 安装Unity引擎。
2. 创建新项目。
3. 导入飞碟游戏资源。
四、飞碟游戏界面设计1. 创建飞碟游戏场景。
2. 设计游戏界面,包括得分板、生命值等。
第二课时一、讲解飞碟游戏核心逻辑设计1. 飞碟移动逻辑。
2. 飞碟射击逻辑。
3. 敌人生成和移动逻辑。
4. 得分和生命值逻辑。
二、Unity引擎中的脚本编写1. 创建飞碟游戏脚本。
2. 编写飞碟移动脚本。
3. 编写飞碟射击脚本。
4. 编写敌人生成和移动脚本。
三、游戏调试与优化1. 调试游戏逻辑。
2. 优化游戏性能。
四、总结与作业1. 总结本节课所学内容。
2. 布置作业:根据所学知识,设计一个简单的飞碟游戏。
教学评价:1. 课堂参与度:观察学生在课堂上的参与程度。
2. 完成作业情况:检查学生完成作业的质量和进度。
3. 团队合作能力:观察学生在团队合作中的表现。
教学反思:1. 针对学生在学习过程中遇到的问题,及时调整教学方法和进度。
2. 加强对Unity引擎和游戏设计的讲解,提高学生的实际操作能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学与技术系课程设计报告2014~2015学年第二学期课程程序设计语言综合设计课程设计名称C++课程设计——打飞碟学生姓名L学号专业班级指导教师2015年6月功能描述本游戏源自科学幻想打飞碟!1、游戏运行,初试界面出现‘空格开始’的提示。
2、玩家按空格开始游戏,天上开始向下掉飞碟。
3、游戏开始后,用户每点击一次鼠标左键,发射一个炮弹。
4、被打到的飞碟会消失,屏幕上方的总分会加上该飞碟对应的分数。
5、游戏时长一局共30s。
6、一局游戏完成后,屏幕重新出现“空格开始”的标志,用户按空格可以继续游戏,如此往复。
数据结构1、int m_iGameState; // 游戏状态,0:结束或者等待开始;1:初始化;2:游戏进行中2、int m_iGameScore; // 本局游戏积分3、float m_fGameTime; // 本局游戏当前已经进行的时间,大于设定的时间之后,游戏结束4、Float m_fDapaoRotation; //大炮初始位置5、CSprite* m_pDapao; //大炮精灵6、CTextSprite* m_pTime; //时间文字显示精灵7、CTextSprite* m_pScore; //分数文字显示精灵8、CSprite* m_pKaishi; //空格开始精灵9、CSprite* m_pZhunxing; //准心精灵10、Float m_fPaodanLeftTime ;// 记录发射一发炮弹后,距离能发射第二发炮弹还剩多少时间11、float m_fScreenLeft ;// 屏幕上下左右4个边界值12、float m_fScreenRight ;13、float m_fScreenTop ;14、float m_fScreenBottom ;15、vector<CSprite*> m_vPaodan;//炮弹精灵数组16、int m_iCount; // 游戏中飞碟出现的架数17、vector<CSprite*> m_vUfo;//飞碟数组18、UFO* m_pHead; // 链表表头19、static float m_fBaseTime[3] ; // 三种飞碟出现的时间间隔20、static float m_fCurrentTime[3] ; // 三种飞碟,前一架出现后,距后一架出现剩余的时间21、static int m_iScore[3] ; // 三种飞碟,击中后,玩家得分22、static float m_fSpeed[3] ; // 三种飞碟的速度23、int m_iShootScore ; // 一局游戏得分24、static int m_iHighScore[5] ;//分数最高的五个25、CTextSprite* m_vScoreText[5];//游戏下方的文字显示精灵26、CEffect* m_pGunFire;27、CEffect* m_pExplode;28、CSound* m_pKaipao;29、CSound* m_pBaozha;流程图按空格键开始游戏通过鼠标控制大炮的炮口朝向和发射,准心精灵随鼠标移动否准心是否在飞碟上是点击鼠标左键,发射炮弹,获得分数设计思路本次实验可分为以下八个小的实验。
实验一:实验的创建实验内容:步骤一、打开FunCode,创建一个的C++语言项目;步骤二、导入UFO模板。
实验思路:导入的模板不仅包括界面设计,还包括该游戏可能要用到的其他精灵。
添加到“场景”中的精灵,都已经取好名称,并根据程序要求设置好中心点、链接点等,就可以直接编程了。
实验二: 改变大炮炮口朝向实验内容:步骤一、准心随鼠标移动步骤二、剩余时间显示步骤三、改变大炮炮口朝向实验思路:将鼠标的坐标赋给准心,同时隐藏掉鼠标。
同时计算大炮炮口和鼠标之间连续与x方向的夹角,以此来设置炮口朝向,具体可以参加实验指导。
实验三: 发射炮弹实验内容:步骤一、鼠标单击发射炮弹步骤二、判断炮弹是否越出世界边界实验思路:系统捕捉到鼠标单击消息的时候,获取大炮炮口中心点的坐标作为炮弹发射点,通过炮弹模板精灵创建炮弹精灵,使用SpriteMoveTo函数使炮弹移动到鼠标位置也即是准心精灵的位置,这样就实现了发射炮弹的效果了。
实验四: 显示多架飞碟实验内容:步骤一、初始化显示飞碟步骤二、处理飞碟与世界边界的碰撞实验思路:随机飞碟出现的x坐标位置,以精灵模板ufo_muban0创建飞碟精灵,同时调用SetSpriteLinearVelocityY函数使其运动即可。
实验五: 三种飞碟同时出现实验内容:步骤一、分情况创建三种飞碟精灵步骤二、根据飞碟精灵名称创建节点到链表步骤三、根据飞碟精灵名称删除链表节点实验思路:使用一个for循环分别创建不同的飞碟精灵,当循环因子为0的时候通过ufo_muban0创建飞碟精灵,循环因子为1的时候以ufo_muban1创建飞碟,循环因子为2的时候以ufo_muban2创建飞碟精灵。
同时调用AddToList函数将精灵名称加入链表中。
使用AddToList创建精灵节点,使用一个while循环遍历链表,判断pNode->pNext为NULL的时候,说明已经遍历到了链表的最后一个位置,此时将新添加的精灵名称赋给pNode->pNext即可。
使用DeleteNode删除精灵名称节点,首先要判断链表是否为空,如果不是则判断表头的精灵名称是否和传入的精灵名称相同,如果相同则删除表头,否则使用一个while循环判断节点中与传入精灵名称相同的节点,删除即可。
实验六: 射击飞碟实验内容:步骤一、处理炮弹精灵和飞碟精灵的碰撞步骤二、记录本局分数步骤三、根据精灵名称在链表中查找某个节点实验思路:系统检测到两个炮弹精灵和飞碟精灵的碰撞之后,通过FindPaoDanSpriteByName函数找到该炮弹精灵,通过FindUfoSpriteByName函数找到飞碟精灵,同时将两个精灵删除。
同时根据飞碟精灵的名称在链表中找到对应的节点,获取该击中该飞碟精灵所能得到的分数显示在游戏界面上。
利用FindNode函数查找对应的精灵数据,使用while循环,判断传入的精灵名称与链表中的节点保存的精灵名称相同的节点,读取它的分数信息即可。
实验七: 显示分值最高的五个分数实验内容:步骤、游戏界面下方显示分值最高的五个分数实验思路:将本局得分m_iGameScore与保存在m_iHighScore[5]数组中的5个值比较,由于m_iHighScore[5]数组中的值是按下标从大到小排列的,首先判断本局得分m_iGameScore与m_iHighScore[4]比较,如果小于该数,则无需继续与数组的其他值比较,否则,将m_iHighScore[4]的值替换为m_iGameScore,再利用一个for循环逆序遍历m_iHighScore数组,判断与其他数组的值的大小,如果大于它,则与数组该值进行交换,继续判断,否则结束循环,最后得到一个重新排序了的m_iHighScore[5]数组。
实验八:播放爆炸效果和声音实验内容:步骤一、播放开火和炸弹爆炸的效果步骤二、播放开火和炸弹爆炸的声音实验思路:定义CEffect 对象指针m_pGunFire和m_pExplode,用来显示大炮开火时的特效和炮弹爆炸时的特效。
定义CSound对象指针m_pKaipao和m_pBaozha,用来操纵大炮开火时的声音和炮弹爆炸时的声音。
算法描述有3种飞碟,存储在m_vUfo数组中,炮弹存储在m_vPaodan数组中;游戏状态SetGameState分为三种状态0,1,2,其中0表示游戏结束状态,1表示游戏初始化,2则表示游戏运行状态;0 → 1的转换为“空格开始”,初始化函数为GameInit函数;1 →2的转换自然发生,即游戏初始化函数后会自动将游戏状态从1置为2;2 表示游戏运行状态,在该状态,移动鼠标点击鼠标左键发射炮弹,击打飞碟;2 → 0的转换为当30s时间结束后发生,该轮游戏结束了;1.设计表示及功能CGameMain::CGameMain()构造函数完成初始化工作1、设置游戏状态为1.2、初始化游戏分数为0;3、新建炮弹精灵,新建准心精灵,新建开始精灵,新建时间文本,新建计分精灵;4、初始化设置炮弹发射间隔5、初始化屏幕山下左右边界6、设置分数记录数组,最多记录5个分数CGameMain::GameMainLoop(float fDeltaTime )游戏的主循环,根据游戏的状态切换逻辑1、当当游戏状态为0时,主循环一直循环,但不做处理,而是等待空格键按下,开始游戏。
2、当游戏状态为1时,调用GameInit()方法初始化游戏,然后置游戏状态为2。
3、当游戏状态为2时,调用GameRun(fDeltaTime)方法,移动鼠标并点击左键发射炮弹。
跳出该状态的条件是时间30s消耗完毕,游戏结束时会执行GameEnd且置状态为0CGameMain::GameInit()负责炮弹精灵的初始化1、创建炮弹精灵的对象,并保存CSprite数组中。
2、获取屏幕4个边界值。
CGameMain::GameRun(floatfDeltaTime )处理炮口角度和发射炮弹打飞碟,即击中飞碟后,获得相应的分数1、当有飞碟从天上落下来后,移动炮口角度,且点击左键发射炮弹击打飞碟CGameMain::OnKeyDown负责游戏开始的响应函数1、当按下空格键后,改变游戏状态为1,游戏开始,并初始化得分和时间,隐藏空格开始提示图片和鼠标CGameMain::OnMouseMove用来控制炮筒角度的函数,炮筒角度随鼠标移动而移动1、当鼠标移动时,准星随鼠标移动,炮筒中心点通过旋转和当前鼠标在一条直线上CGameMain::OnMouseClick用于控制炮弹发射的函数1、获取炮弹连接点的坐标作为炮弹的初始位置2、创建炮弹精灵,设置其世界边界的限制初始位置3、调用SpriteMoveTo函数使炮弹向准心位置移动,同时将该炮弹保存到炮弹向量数组m_vPaodan中4、播放大炮特效CGameMain::AddToList负责建立UFo的链表CGameMain::DeleteNode负责删除被击中或超出世界边界的UFO精灵CGameMain::OnSpriteColSprite负责控制当UFo被击中时调用DeleteNOde函数,并播放特效和爆炸声音上机调试过程遇到的问题(1)在实验六射击飞碟的调试中,无法击中第一个从天上落下的UFO,一旦击中,则内存不可read错误。
原因:在m_Ufo链表中,没有对头结点的下一个节点是否为空进行判断,导致下一个节点不存在,使得内存报错。