基于java的RPG回合制游戏

Gameisover

发布日期: 2018-10-22 23:45:45 浏览量: 1053
评分:
star star star star star star star star star star
*转载请注明来自write-bug.com

一、工作积累总结

1.1 简介

该项目是一个回合制RPG游戏,讲述了动物主角对抗人类,自逃出动物园开始,一路与人类对抗,提升能力,并寻找新队友组成团体,逼得人类不得不与之谈判,最终与人类达成了和平协议的故事。玩家可以通过全鼠标点击操控来体验游戏。

1.2 项目特色

  • 该项目使用Java语言编写,可以在多个不同平台上运行。
  • 界面设计简洁明了,操作简单易懂。
  • 拥有丰富的关卡,并且可反复挑战,提升能力,使后续关卡变得容易。
  • 拥有丰富的随机装备系统,装备种类多,且拥有自“破烂的”到“传说的”等共七种属性前缀,出现的几率逐级降低。装备可以在商店购买,可刷新当前商店货物,或者在挑战地图时随机掉落。
  • 拥有丰富的队伍系统,在挑战地图Area 2每个地区的第一关会固定有一个新成员请求加入,之后的关卡此事件随机出现,可以在基地界面通过上阵及休息指令来安排队伍组成。
  • 拥有等级系统,通过反复挑战地图来提升等级,提升能力。
  • 拥有完整的剧情,故事情节通过地图上每一个关卡名来揭示,按照Area的顺序进行游戏,即可获得全部故事体验。
  • 支持存读档功能,可以分多次完成游戏。

1.3 项目创新

全新的RPG回合制游戏,吸取了经典RPG游戏的基本元素:升级打怪打装备,同时配以 角色养成、队伍搭配等玩法,还有丰富完整的剧情体验,非常新颖。

二、总体需求分析

2.1 角色

作为一个RPG游戏,首先的需求便是玩家操控的角色,在此游戏中为各种动物,可随着地图探索的推进而逐渐加入。应该使玩家可以选择上阵队形。

2.2 敌人

其次需要与主角作战的敌人,在此游戏中为世界各地的人类,多为伤害动物者。

2.3 装备

为了增加游戏性,还需要装备系统,应分为不同品质,使玩家乐意花时间去刷装备,增加他们的游戏时间。

2.4 商店

对于不愿意靠运气的玩家,准备商店系统,可直接刷新、购买高品质装备。

2.5 存读档

游戏不可能一口气通关,应提供存读档功能。

三、系统设计

3.1 开始界面

  • 开始:创建新游戏

  • 载入:读取先前的存档进度

  • 帮助:各种按钮操作说明

  • 退出:离开游戏

3.2 战斗地图界面

  • Area 1 三关新手 难度横向增加

  • Area 2 分三个地区每个地区五关 横向难度相同竖向逐渐增加 在每个地区的第一关会固定有一个新成员请求加入,之后的关卡此事件随机出现

  • Area 3 终章难度横向增加
    已被征服的关卡名字变为蓝色,可反复挑战

3.3 战斗界面

  • 左上为敌人血量左中为敌人图像 左下为战斗进程描述

  • 右上为玩家角色血量右中为当前等待进行操作的角色图像 右下为可执行操作

  • 攻击:当前显示图像角色进行攻击,对象为与其顺序相应的敌人,此人倒下后,选择敌人组中第一个不为空血的进行攻击

  • 治疗:如果在基地购买了急救包,此时可以使用,为当前角色回复部分生命值,但同时敌人会继续攻击使之掉血

  • 逃跑:迅速离开战斗,回到地图界面,但会被敌人攻击一次

3.4 当前出战界面

显示当前上阵的角色数据最多三个

3.5 背包界面

  • 左侧为背包内存放的装备等物品,点击右键可以进行装备、出售、丢弃等操作

  • 左下为背包现存物品数及最大容量

  • 右为队伍成员数据信息

3.6 商店界面

  • 左侧每次新游戏随机显示不同品质装备

    • 购买:花费金钱将当前选中物品添加至背包

    • 刷新当前商品:随机刷新商店物品。

  • 右侧为队伍成员数据信息

    • 为它购买:直接为购买选中物品并给当前角色装备

    • 修理装备:统一增加当前角色所有装备耐久度

    • 全部卸下:将当前角色所有装备放入背包

3.7 基地界面

  • 左侧为成员信息

    • 上阵:若当前战斗队伍有空位,则该成员加入队伍,出现在战斗中最多三个

    • 休息:该成员离开战斗队伍,留在基地

  • 右侧为医疗室

    • 治疗:全体成员生命值回复满,消耗金钱

    • 购买急救包:急救包数量加一,可在战斗中使用

3.8 选项界面

  • 继续游戏:关闭选项卡,回到游戏

  • 保存游戏:将当前游戏数据保存至Save文件夹

  • 读取存档:读取上一次游戏保存的数据

四、系统实现

4.1 程序系统的结构

4.2 run类

  • 创建begin,map,data,bag,shop,base 等静态类对象作为各界面容器,便于跳转
  • Screen centre方法:使游戏界面位于正中央
  • Main方法:完善各框架设置,启动游戏进程

4.3 Beginning 类

  • 开始界面的各种按钮:开始、载入、帮助、退出
  • BeginLis监听器类:触发以上按钮点击事件,进行界面跳转

4.4 Map 类

  • 各种地图按钮:跳转至相应战斗
  • CreArray方法:根据输入参数创建相应战斗力的敌人组
  • MapLis 监听器类:触发以上按钮点击事件,进行界面跳转

4.5 Fighting 类

  • PrintHP方法:在界面上显示敌我双方的血量、等级等信息
  • CheckAlive 方法:开始战斗时计算我方血量不为零的角色数量
  • MyAttack 方法:我方攻击
  • EnAttack 方法:敌方攻击
  • Drop 方法:通过随机数决定本关是否掉落装备及装备品质
  • oPanel 方法:返回一个含战斗操作按钮的JPanel
  • attackLis 监听器:监听战斗操作,攻击、治疗、逃跑等

4.6 Data 类

  • Wargroup 数组:含当前上阵的角色
  • Money 静态变量:当前持有的金钱
  • 线程Description:随时刷新当前角色等级属性、装备数据等
  • CreateDes类:创建一个JPanel 能显示角色各种数据

4.7 Bag 类

  • dataBag类:创建背包界面
  • equipAdd方法:向背包中添加装备
  • Popup方法:返回一个PopupMenu,支持右键装备、出售、丢弃功能
  • dataDes 类:创建角色数据界面
  • CreateTab方法:以JTabbedPane的标签方式创建角色数据界面
  • 线程Description:随时刷新当前角色等级属性、装备数据等

4.8 Shop类

  • Store类:创建商店界面
  • buy方法:购买、刷新 使用按钮监听器
  • rollE方法:随机刷新装备品质
  • getEquip:得到按钮复选框中选中的装
  • Character类:创建角色面板
  • createTab方法:创建角色标签
  • 线程Description:随时刷新当前角色等级属性、装备数据等
  • BuyLis、FixLis监听器:进行购买及修理装备

4.9 Base类

  • createCharacter方法:创建角色面板
  • Go监听器:控制上下阵
  • AddMember方法:向队伍中加入新成员
  • 线程Description:随时刷新当前角色等级属性、装备数据等
  • cureKit类:急救包
  • isFullHealth方法:治疗前检测是否为满血
  • cure、buyKit监听器:治疗及购买急救包

4.10 属性设定类

4.10.1 Animals类

  • changeEquip方法:改变对象装备,将换下的放入背包
  • enduranceDown方法:根据攻击次数降低装备耐久
  • attack方法:攻击当前敌人对象
  • print方法:输出属性等数据
  • levelUp方法:以获得的经验来判断是否应该升级
  • 子类:Land(Tiger、Lion、Bear、Elephant) Sea(Whale) Sky(Eagle)

4.10.2 Equipment类

  • print方法:输出装备数据
  • changeQuality方法:根据随机数决定生成的装备品质
  • 子类:Blank AddATK(Teeth、Claws) AddDEF(Helmet、Breastplate、Kneecap)

4.10.3 Humen类

  • attack方法:攻击当前我方对象
  • setName方法:根据地图上不同地区的参数来修改名字,以产生新种类的敌人
  • 子类:HumenZoo HumenLand HumenSea HumenSky HumenEnd

4.11 ActMenu类

  • shutdown方法:隐藏当前所有界面,便于根据需要显示
  • ActLis监听器:根据按钮跳转界面
  • opLis监听器:进行存档、读档、继续游戏的操作

4.12 S_L类

  • Save方法:将队伍成员数据、金钱数、商店货物状态、背包物品、地图进度写入文件
  • Load 方法:读取存档
上传的附件 cloud_download 基于java的RPG游戏.zip ( 988.21kb, 165次下载 )
error_outline 下载需要3点积分

发送私信

修行的路总是孤独的,因为智慧必然来自孤独

8
文章数
11
评论数
最近文章
eject