您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 3D游戏开发步步高系列课程(6):添加多
3D游戏开发步步高系列课程(6)添加多层级和角色功能付仲恺微软特邀开发专家我们将涉及到…•学习3D游戏‘PucthePirate’的开发议题•添加多层级对象–查看胜利和失败的层级•添加角色功能–使得角色可以跳跃•在游戏中添加文本–显示帧率基础知识•基本计算机知识•基本软件开发(C#)知识Level200Level2003D游戏引擎使用需求•Microsoft®.NETFramework2.0•Microsoft®VisualC#®ExpressEdition•Microsoft®DirectX®SoftwareDevelopmentKit(SDK)议题•添加多层级对象–查看胜利和失败的层级•添加角色功能–使得角色可以跳跃•在游戏中添加文本–显示帧率什么是层级•层级在一个游戏阶段中,包含了这个阶段所特有的元素和逻辑的对象–例如:游戏操作逻辑–每个层级往往有自己特定的更新和渲染函数•在游戏的不同阶段有不同的层级–例如:每一关为一个层级,每一场景为一个层级–在Puc中,菜单,游戏,胜利和失败都是不同的层级修改我们游戏的更新函数•之前,在我们的游戏中只有一个层级,现在我们需要添加新的层级•现在,在更新层级之前,我们需要先来检查一下游戏的状态•如果符合状态,那么我们切换到新的层级更改游戏状态•在我们当前的游戏中,还没有触发层级变化的条件•为了便于测试,我们改变了游戏中胜利和失败的状态变化的触发条件•切换到胜利状态,按“W”键•切换到失败状态,按“L”键查看胜利和失败的层级议题•添加多层级对象–查看胜利和失败的层级•添加角色功能–使得角色可以跳跃•在游戏中添加文本–显示帧率帮助Puc跳跃•跳跃•Puc的跳跃与它的移动完全无关–两个完全在方向上正交的运动»考虑斜抛动作•在玩家的Update函数中处理跳跃运动–在处理跳跃上,有很多不同的方法•在拥有健壮的,真实的物理引擎的游戏中,使用牛顿力处理•在简单的游戏中,准确的匀加速运动能够有效地模拟重力重力如何影响位移?•下面这三个物理量是我们需要关心的:•位移•速度•加速度•它们相互之间的关系•由于速度,位移随着时间发生变化•由于加速度,速度随着时间发生变化•更加精确的计算和关系描述一般通过微积分描述简单的物理量关系图匀加速运动•传统的匀加速运动等式•NewPosition=OldPosition+Velocity*elapsedTime+1/2*accel*elapsedTime^2•PucthePirate的匀加速运动等式•Position.Z=-(-0.01f*JumpIncremental*JumpIncremental+0.6f*JumpIncremental+3);•代码位于Player.cs文件中玩家的更新(Update)函数•为了加速处理采用近似数值运动中的Puc相关等式•在Puc的跳跃等式中•1/2*accel替换为0.01•Velocity替换为0.6•在Z轴上的初始位置替换为3•由于Puc沿着Z轴负方向跳跃,因此这个表达式为负值»换句话说,Puc的Z轴值越小,它在空中跳跃的就越高•ElapsedTime替换为“JumpIncremental”变量,当Puc位于空中时,JumpIncremental表示Puc在空中的时间添加Puc的跳跃功能议题•添加多层级对象–查看胜利和失败的层级•添加角色功能–使得角色可以跳跃•在游戏中添加文本–显示帧率在游戏中添加文本•所有的游戏都需要一些类型的文本•字符文本–定性描述–指令,脚本,选项•数字文本–定量描述–分数,弹药,生命值,流逝时间每秒显示帧数•计算每秒显示帧数•什么是每秒显示帧数?•在1秒钟内,游戏更新和渲染的帧的数量•我们希望这个数值保持在60左右•如何计算•帧时间和每秒显示帧数之间的关系与周期和频率相同周期和频率•周期–完成一次循环所需要的时间长度•地球围绕太阳旋转的周期为365日•频率–在给定的一段时间内,循环执行的次数•每1日就是地球旋转的频率1(日)/365(日)=1/365•周期=1/频率•频率=1/周期如何从周期和频率中获得FPS?•帧时间表示这个帧执行所需要的时间•因此,在某一刻,频率或者游戏的每秒钟帧数等于1(秒)/帧周期(帧时间)•对于每秒钟60帧,60等于1帧处理的时间•帧时间=1/60或者.016秒•.016秒=16毫秒在哪里计算FPS•UpdateFrameStats是用于计算FPS的函数•位于Render3DEnvironment函数调用•GameFramework.FrameStats是内嵌信息的格式化后的字符串•使用TextHelper类显示文本显示帧率课程总结•添加多层级对象–查看胜利和失败的层级•添加角色功能–使得角色可以跳跃•在游戏中添加文本–显示帧率获取更多MSDN资源•MSDN中文网站•MSDN中文网络广播•MSDNFlash•MSDN开发中心如需提出问题,请单击“提问”按钮并在随后显示的浮动面板中输入问题内容。一旦完成问题输入后,请单击“提问”按钮。
本文标题:3D游戏开发步步高系列课程(6):添加多
链接地址:https://www.777doc.com/doc-4395504 .html