Skip to content

Latest commit

 

History

History
70 lines (55 loc) · 3.36 KB

从零开始写一个武侠冒险游戏-11-角色的技能系统.md

File metadata and controls

70 lines (55 loc) · 3.36 KB

从零开始写一个武侠冒险游戏-11-角色的技能系统

  • 作者:FreeBlues
  • 修订记录
    • 2016.06.21 初稿完成.
    • 2016.08.03 增加对 XCode 项目文件的说明.

概述

因为我们打算做一个有趣的游戏, 在这个游戏中世界必须是动态变化的, 而不是静止不动的, 因此, 我们在本章引入世界时间的概念. 简单来说, 就是有了世界时间后, 从此这个游戏世界就有了自己的周期变化规则, 有了四季变化, 有了昼夜交替, 那么我们游戏世界中的植物也就有了生长枯荣, 另外一点就是游戏角色也要要受到季节昼夜的影响.

既然是游戏, 那么时间就不一定必须是单向的了, 所以我们可能会增加一些诸如:时间停止,时间回溯,时间快进,时间放慢 之类的功能, 让我们的游戏世界更有趣.

实现思路

现在有两种实现思路, 一种是通过主流程来设置不同的时间场景, 显式地表现出时间切换; 另一种是主流程只负责提供一个全局性的时间变量, 具体到各个体在不同时间场景下的不同行为表现由各模块根据这个全局性的时间变量自行处理, 第一种方法乍看起来流程比较清晰, 但是等到代码增多时就会让主流程越来越臃肿, 而且也不方便微调, 而第二种方法既可以保持主流程的简洁, 又方便精细化的控制, 而且接口清晰, 唯一的缺点就是其他模块跟世界时间会有较深的耦合, 综合考虑后, 为了避免日后越写越痛苦的悲惨结局, 我们选择第二种方法.

世界时间类: WorldTime

Github项目地址

Github项目地址, 源代码放在 src/ 目录下, 图片素材放在 assets/ 目录下, XCode项目文件放在 MyAdventureGame 目录下, 整个项目文件结构如下:

Air:Write-A-Adventure-Game-From-Zero admin$ tree
.
├── MyAdventureGame
│   ├── Assets
│   │   ├── ...
│   ├── Libs 
│   │   ├── ...
│   ├── MyAdventureGame
│   │   ├──...
│   ├── MyAdventureGame.codea
│   │   ├──...
│   ├── MyAdventureGame.xcodeproj
│   │   ├──...
│   └── libversion
├── README.md
├── Vim 列编辑功能详细讲解.md
├── assets
│   ├── ...
│   └── runner.png
├── src
│   ├── c01.lua
│   ├── c02.lua
│   ├── c03.lua
│   ├── c04.lua
│   ├── c05.lua
│   ├── c06-01.lua
│   ├── c06-02.lua
│   ├── c06-03.lua
│   └── c06.lua
├── 从零开始写一个武侠冒险游戏-0-开发框架Codea简介.md
├── 从零开始写一个武侠冒险游戏-1-状态原型.md
├── 从零开始写一个武侠冒险游戏-2-帧动画.md
├── 从零开始写一个武侠冒险游戏-3-地图生成.md
├── 从零开始写一个武侠冒险游戏-4-第一次整合.md
├── 从零开始写一个武侠冒险游戏-5-使用协程.md
├── 从零开始写一个武侠冒险游戏-6-用GPU提升性能(1).md
├── 从零开始写一个武侠冒险游戏-7-用GPU提升性能(2).md
└── 从零开始写一个武侠冒险游戏-8-用GPU提升性能(3).md

2 directories, 26 files
Air:Write-A-Adventure-Game-From-Zero admin$