游戏开发

《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇:简介及目录》(附上完整工程文件)

孤人 提交于 2019-12-06 20:43:44
跑酷游戏制作 游戏类型: 此游戏Demo,为跑酷类游戏。 框架简介: 游戏通常由程序代码和资源组成。如果说模型、贴图、声音之类的可以给游戏环境提供一个物理描述和设置,那么脚本和代码块会给游戏赋予生命,实现游戏的可玩性。Genesis-3D不仅为游戏开发者提供部分已经编译好脚本的编辑器,并且可以自己编写脚本,通过API接口调用,在引擎中实现制作游戏所需的功能。跑酷游戏框架涉及如下几部分内容: (1)道路的自动生成。 (2)内购如何实现 (3)暂停游戏 (4)触控操作 (5)二段跳的实现 (6)移动版优化指南 游戏操作介绍: 触控操作上:左右划屏控制角色左右移动,向上划屏控制跳跃,向下划屏控制角色下蹲。 按键操作上:"AD"控制角色左右移动,"空格"控制角色跳跃"S"控制角色下蹲。 游戏运行,效果如下图1所示 图1 本框架实例工程文件下载地址: 请点这里 引擎官方网站: http://www.genesis-3d.com.cn/ 官方论坛: http://bbs.9tech.cn/genesis-3d/ 官方千人大群:59113309 135439306 YY频道-游戏开发大讲堂(完全免费,定期开课):51735288 Genesis-3D开源游戏引擎:游戏起源,皆因有我!!! 来源: oschina 链接: https://my.oschina.net/u/1432254/blog

《Genesis-3D开源游戏引擎--横版格斗游戏制作教程04:技能的输入与检测》

落花浮王杯 提交于 2019-12-06 20:43:28
4.技能的输入与检测 概述: 技能系统的用户体验,制约着玩家对整个游戏的体验。游戏角色的技能华丽度,连招的顺利过渡,以及逼真的打击感,都作为一款游戏的卖点吸引着玩家的注意。开发者在开发游戏初期,会根据玩家对此类游戏的惯性操作,设定技能控制按键。同时Genesis引擎为开发者提供的众多API接口,包含了按键过程、按键按下和抬起的识别功能。当玩家根据游戏设定的按键操作,输入后。系统会记录按键操作的命令,然后程序通过对玩家当前输入状态,以及输入的过程检测,判定技能输入是否为有效输入。 技能系统的用户体验,制约着玩家对整个游戏的体验。游戏角色的技能华丽度,连招的顺利过渡,以及逼真的打击感,都作为一款游戏的卖点吸引着玩家的注意。开发者在开发游戏初期,会根据玩家对此类游戏的惯性操作,设定技能控制按键。同时Genesis-3D引擎为开发者提供的众多API接口,包含了按键过程、按键按下和抬起的识别功能。当玩家根据游戏设定的按键操作,输入后。系统会记录按键操作的命令,然后程序通过对玩家当前输入状态,以及输入的过程检测,判定技能输入是否为有效输入。 原理: 按键定义->输入->检测输入状态->检测输入过程。 图4-1 技能输入检测的实现: 步骤1: 引擎提供了相应的API接口,供开发者使用,其中就包括三个与按键相关的接口,一个是按键过程中、按键按下、按键抬起。在ScriptRuntime命名里

《Genesis-3D开源游戏引擎--横版格斗游戏制作教程03:碰撞检测》

眉间皱痕 提交于 2019-12-06 20:43:15
3.碰撞检测 碰撞检测的概述: 碰撞在物理学中表现为两粒子或物体间极端的相互作用。而在游戏世界中,游戏对象在游戏世界自身并不受物理左右,为了模拟真实世界的效果,需要开发者为其添加属性,以模拟真实事件的运动效果。在游戏世界里,当游戏主角与其它游戏对象发生碰撞时,都会触发一个相应的事件发生。这时候就需要开发者先检测到碰撞现象,即碰撞检测。在Genesis-3D引擎中,能检测碰撞发生的方式有两种:一种是利用碰撞器,一种是利用触发器。 碰撞检测原理: 为需要检测碰撞事件的物体创建子空Actor,作为检测碰撞物体的包装盒,用于程序对碰撞事件发生的判定。实时检测包围盒之间是否发生交叉、包含等关系时候,如若发生,及判定检测碰撞发生,触发碰撞事件。 图3-1-1 实现方法: 实现整个碰撞事件过程中,值得开发者花心思的是检测这一块内容。举例:主角攻击敌人的碰撞检测事件。在一定范围内,玩家控制主角攻击敌人,武器与敌人发生碰撞检测事件,敌人掉血。本来一系列的程序设定都十分顺畅,但这里要注意,因为碰撞检测是实时监测,但是碰撞结果掉血在这一过程中只发生一次,如何在一定事件内,只发生一次碰撞事件的成功检测,值得开发者考究一下。 步骤1: 碰撞检测体包围盒的制作。在场景中创建->空物体(空物体,即空Actor),将空Actor拖动到物体上,成为其子空Actor。 步骤2: 程序上碰撞提包围盒的创建如下所示。

《Genesis-3D开源游戏引擎--横版格斗游戏制作教程08:虚拟键盘实现》完结

三世轮回 提交于 2019-12-06 20:42:50
8.虚拟键盘实现 概述: 硬键盘就是物理键盘,平时敲的那种。软键盘是虚拟的键盘,不是在键盘上,而是在"屏幕"上。虚拟按键就是虚拟键盘的一部分,根据功能需求,提供部分按键效果的UI可操控按钮,尤其是在平板电脑、触控手机上,虚拟按键得到了更多的应用。在触控平台上的游戏,一部分通过手指在屏幕上相应的滑动产生相应的指令;还有一部分增设虚拟按键,完成对游戏的操控。 实现原理: UI基本制作->功能实现 实现方法: 步骤1: 按照7UI的制作方法,完成UI的制作,最终效果图,如8-1-1所示。左侧为摇杆按钮,为双侧的BUTTON,一层做摇杆的底部按钮背景,一层与用户交互发生相应事件。右侧围控制攻击和跳跃的按钮。 图8-1-1 步骤2: 脚本实现按钮功能。 初始化虚拟按键UI。 01 public void Init() 02 { 03  //注册攻击按钮layout文件 04  GUI.RegisterLayout(_attackWindowName, @"Layout\AttackButton.layout", false, true); 05  //注册按钮点击事件 1.layout名字 2.控件名字 3.回调函数 4.事件控制类型 06  GUI.UIWidget.SetEventMouseButtonClick(_attackWindowName, "AttackBtn",

《Genesis-3D游戏引擎系列教程-进阶篇》5:场景-水

老子叫甜甜 提交于 2019-12-06 05:43:23
注:本系列进阶教程仅针对 引擎编辑器: v1.2.2 及以下版本 场景水 资源下载 工程文件 这是一个简单的场景水实例,制作了一个具有反射和折射效果的场景水,帮助用户学习如何在Genesis-3D编辑器中制作出一个流动的水的效果。 1.创建项目water,因为本实例中我们要制作水场景,所以需要勾选WaterSurface资源包: 2.在工程目录下打开WaterSurface资源包,可以看到三种水模板: BasicWater:基本水 ReflectWater:具有反射效果的水 RefractiveWater:具有反射和折射效果的水 3.这里选择第三种水模板RefractiveWater(具有反射和折射效果的水),将其拖到场景中: 4.为了体现出明显的反射和折射效果,我们为其添加天空盒。"环境"——"天空盒"——勾选"开启天空盒": 5.从外界导入天空盒图片。因为天空盒是由立方体组成的,所以我们需要6个面的贴图材质。在资源管理器中导入6张贴图: 6.选择图片。分别对应六侧选择相应图片来构建完整的天空盒。双击目标图片,图片即被选入。我们依次为右侧、左侧、顶侧、底侧、前侧、后侧选择04,02,05,05,01,03图片: 7.点击“开关场景中的网格”按钮,关闭场景中的网格,是水场景显示更加美观。按钮显示灰色表示已经关闭网格: 8.美丽的天空盒已经添加成功,效果如下

《Genesis-3D游戏引擎系列教程-进阶篇》3:转动的球体

前提是你 提交于 2019-12-06 05:43:09
注:本系列进阶教程仅针对 引擎编辑器: v1.2.2 及以下版本 转动的球体 资源下载 工程文件 当我们掌握了一些Genesis-3D编辑器的操作技巧之后,现在来尝试着做一个非常简单的游戏,一个转动的球体,仅仅依靠编辑器自带的一些资源就可以成功,让我们开始吧! 1.导入fbx文件。点击工程面板的“导入”按钮会弹出如下对话框,找到sphere.fbx文件,点击打开。 2. 在场景中放入球体。导入之后看到下方的fbx文件将其拖拽进场景里,可以看到模型出现在场景中 3.为球体添加材质。网格的外观由材质决定,所以在为球体添加颜色和贴图之前我们应该为其添加材质,步骤如图,再把创建好的材质拖到场景中的球体上 4.为球体贴图。给球体添加材质之后,可以在材质面板中为球体贴图。这里应该注意的是,贴图图片的尺寸,长宽均应为2的n次方倍。挑选好图片之后我们将其导入编辑器 然后将其贴在球体上,如图所示 贴好之后我们的球体会变得美观 5.为球体添加脚本。想要让这个球体如真实的地球一样转动,我们需要为它添加脚本。 点击“在资源管理器中显示资源”后,在创建的脚本历我们要添加代码以实现控制球体转动。步骤如下图所示: 代码如图所示: using System; using System.Runtime.CompilerServices; using ScriptRuntime; namespace

《Genesis-3D游戏引擎系列教程-入门篇》三:资源的导入

喜夏-厌秋 提交于 2019-12-06 05:42:38
注:本系列入门教程仅针对 引擎编辑器: v1.2.2 及以下版本 1、FBX文件的导入 模型导入是所有3D程序最基本的功能,但常常也是让很多新手最头疼的问题之一,现在就让我们来学习一下FBX文件导入的步骤。 一、首先要将模型与动画文件从3dsmax软件中导出,并生成fbx文件。 1.导出3dsmax中的资源。点击左上角的绿色按键,按照图中所示点击Export按钮。 2.保存文件。填写文件名并选择保存类型与保存路径,确认无误后点击保存按钮。 二、将资源导入我们的Genesis-3D编辑器中。 1.打开工程,在工程视图中点击导入按钮会弹出如下对话框,按图中操作所示,在对话框中找到我们从3dsmax中导出的资源,点击打开。 2.导入fbx文件。导入之后看到下方的fbx文件将其拖拽进场景里,可以看到模型出现在场景中,右边的属性栏里出现了存储在fbx文件中的动画文件。 3.给模型附上贴图。还是导入你的贴图资源,放入资源管理器,贴图会自动匹配到模型上。 三、使用引擎压缩资源。 1.在资源管理器中选中fbx文件,在右边栏目内打开资源面板,点击网格,可以看到下面的操作界面。 2. 设置好网格压缩的压缩程度,点击右下角的对勾,开始重新导入压缩后的.FBX文件。 3.导入过程如下图。 2、动画文件的分割导入 在设计一个游戏的过程中,动画文件的分割导入技巧是十分必要的

《Genesis-3D游戏引擎系列教程-进阶篇》2:声音

血红的双手。 提交于 2019-12-06 05:42:28
注:本系列进阶教程仅针对 引擎编辑器: v1.2.2 及以下版本 声音 众所周知,声音系统是一个游戏中非常重要的组成部分,优秀的游戏音乐是许多玩家能够长时间享受其中的重要因素。因此,熟悉和使用声音系统是一个游戏制作者的必修功课,本篇文档将为大家介绍声音系统中一些简单按键的功能和使用方法,以及实现用脚本控制音乐的播放。 一、声源组件的按钮介绍 1.创建声音。在Genesis-3D中,有两种创建声音的方法,本质上没有区别。一是点击场景树中的创建按钮,选择栏目中的声音一项。如图所示 方法二是在场景树中右键点击任一actor,选择栏目中的组件,在组件栏目中点击音源。如图所示 2.在音源面板添加音频。当我们使用上述两种方法创建声音之后,便可以在属性栏看到音源面板,我们需要在资源管理器中导入音乐文件,然后在音频面板中点击 ,可以添加音频。如图所示 3.自动播放与循环播放。假如你希望这个音乐一直作为背景音乐重复播放,那么就应点击下方的自动播放与循环播放按钮。假如你想要用脚本控制音乐的播放便不应该勾选这两项,如图所示 4.音量与音调。可以在播放音乐的同时调节它们来达到最佳效果。如图所示 5.声音类型。声音类型中有一个卷展栏,其中的选项是2D、3D。它们的区别是:选择2D类型时,listener收听的声音从始至终保持一致。当选择3D类型时

《Genesis-3D游戏引擎系列教程-进阶篇》1:物理

依然范特西╮ 提交于 2019-12-06 05:42:15
注:本系列进阶教程仅针对 引擎编辑器: v1.2.2 及以下版本 物理 资源下载 工程文件 物理组件是实现游戏功能的重要组成部分,Genesis-3D中三种物理组件刚体、碰撞器、角色控制器分别有其各自的作用,本篇文档将通过给简单的物体模型添加物理组件的方式来向大家展示物理组件的作用和使用方法。 1.创建游戏工程,参照“转动的球体”文档,在场景中导入一个球体。 2.在场景中添加一个立方体。如图所示,点击创建,立方体。 3.调整球体和立方体的大小。为了做出球体落在立方体平面上弹起的效果,我们需要变换球体和立方体的大小,这可以在变换界面通过输入数值来实现,也可以通过Ctrl+R来实现。调整之后的场景如图所示 4.添加碰撞体。点击属性面板最下面的“+添加组件”,球体添加球形碰撞体,立方体添加立方体碰撞体。如图所示 5.修改刚体类型。刚体使你的游戏对象受物理引擎控制,为球体添加动态刚体,立方体添加静态刚体即可。 6.在资源管理器添加物理材质。 7.调整弹力。为了使球体能够接近现实中落下弹起并幅度逐渐减小的现象,在环境面板中的物理环境下,点击“默认材质” 后的小箭头,选择刚刚添加的物理材质。 这时在右侧的资源面板中可以看到动态、静态摩擦力、弹力等,以下是我设置的参数,你也可以自己尝试修改,达到不一样的效果。 8.添加脚本。为了赋予这个球体一个初始的自由下落的高度,用Space键控制

《Genesis-3D游戏引擎系列教程-进阶篇》6:动画

有些话、适合烂在心里 提交于 2019-12-06 05:42:02
注:本系列进阶教程仅针对 引擎编辑器: v1.2.2 及以下版本 脚本控制与分割动画 资源下载 工程文件 经过一些编辑器基本操作技巧的学习之后,我们可以尝试着做一个简单的人物操纵设计,这其中最重要的技巧就是动画切割与脚本控制动画的播放,本篇将会详细的阐述该过程。 1.创建一个场景,加入人物模型。在之前的文档中已经介绍过方法,人物模型加入后如图所示 2.分割动画。将动画分割成几部分,需要其中的几个挂载在动画面板中。 3.创建脚本。点击工程面板下的创建按钮,选择c#脚本。 4.挂载脚本。将新创建的脚本文件拖拽到右侧人物属性栏内,即可将脚本挂载在人物模型上面。 5.用MonoDevelop打开脚本。 6.编写代码。我们想要实现一项简单的功能:用w按键控制人物向前走动,其他情况下人物原地放松,具体代码如下图所示。 01 using System; 02 using System.Runtime.CompilerServices; 03 using ScriptRuntime; 04 namespace ScriptRuntime 05 { 06 public class ChactorControll : ScriptableClass 07 { 08 string ForwardAnim = "asset:forward.anim"; 09 string RelaxAnim =