一、需求分析

    Running Hero是在接到大作业以前就已经有的想法,一直没有好的契机好好策划实现,正巧通过此次作业的机会,将它实现出来了。

      Running Hero 的初步定义是一款结合了传统的横版闯关以及当下最流行的酷跑模式的新型横版手游,大体上分成两个模块,单机闯关以及网络联机对战,由于技术不太成熟以及时间原因,暂时只开发了单机闯关板块。

      Running Hero 整体风格设计为卡通类型的,素材(能力有限,非原创)出自66rpg素材网,游戏流程设计为:

      通过避开关卡中的各种陷阱,收集主角升级所需的物品,提升等级来提升主角的各方面的能力值(攻击力,防御力,生命值,力量等)来让你的主角跑得更远;通过击败关卡中的小型怪物获取一些装备,提升主角能力值;通过击败一定距离之后的Boss解锁下一个场景,获得更多的位置元素以及更丰富的游戏玩法,提升游戏的可玩性,用当下比较流行的游戏次数限制(时间性恢复)延长游戏的寿命。

      游戏主要有开始界面,游戏界面,暂停界面,菜单界面,装备及属性界面。

      有较为丰富的游戏元素和玩法,比较完善的游戏场景,动作效果,音效,bgm等传统游戏所具有的基本功能。

      Running Hero 主要设定有2个角色(一前一后),玩家可自由设置主角的能力值,较为推荐的方式为前面一个厚血主要保护后面一个高攻角色的输出环境提升dps。

关卡设定有陷阱(击退角色并且扣除大量血量,无视防御值);

 

小型怪物(根据对比它和主角的能力值,计算击退距离,扣除双方血量,完成击杀随机获得物品);

Boss (有较为强力的能力值,初期玩家要多次尝试方可击败,击杀获得大量‘宝物’,解锁场景获得下一关卡的权限)。

       装备:静态属性(增加角色能力值),特效:特殊能力(暂不考虑);

 

二、概要设计

      1.游戏流程设计(流程图)

Running Hero.

2.游戏用例分析(用例图)

Running Hero.

Running Hero.

3.游戏类图设计

Running Hero.

 

三,详细设计及编码

 游戏核心部分代码,一些关联包没上传,等正式版出来了贴游戏apk以及全部源码

 1 package com.me.mygdxgame;
 2 
 3 import com.badlogic.gdx.maps.tiled.TiledMap;
 4 
 5 public class Collision {
 6     public static int[][] barriers_1;
 7     public static int[][] barriers_2;
 8     public static TiledMap map;
 9     public static int MAP_CELL_HEIGHT = 32;
10     public static int MAP_CELL_WIDTH = 32;
11 
12     static {
13         map = GameScreen.map;
14         barriers_1 = GameScreen.barriers_1;
15         barriers_2 = GameScreen.barriers_2;
16     }
17 
18     public static boolean onFloor(float x, float y) {
19         if (y > 0)
20             return barriers_1[(int) (y - 2) / MAP_CELL_HEIGHT][(int) x
21                     / MAP_CELL_WIDTH] != 0;
22         else
23             return true;
24     }
25 
26     public static boolean onCeiling(float x, float y) {
27         return barriers_2[(int) (y - 2) / MAP_CELL_HEIGHT][(int) x
28                 / MAP_CELL_WIDTH] != 0;
29     }
30 
31     public static boolean fight(Lead lead, Monster monster) {
32         if (lead.x + 32f > monster.x && lead.x < monster.x + 32
33                 && lead.y > monster.y - 32f && lead.y < monster.y + 32) {
34             return true;
35         }
36         return false;
37 
38     }
39 
40 }
Collision

相关文章: