Skip to content

dieWehmut/PhantomGenesis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

原开发仓库(如果号还活着):https://git.nju.edu.cn/dieWehmut/mygame0

🎮 游戏名称:PhantomGenesis

📖 游戏简介

该游戏是基于 C++和 qt (widget)框架开发的动作冒险游戏,

由类幸存者游戏中拓展而来

玩家需扮演一名👻幽灵,在游戏世界中与敌人交战并收集情报

🚀 开发流程

各阶段主要目标

第一阶段

构思游戏玩法,创建地图和可活动单位,添加基本界面

第二阶段

完善各个可活动单位的功能,添加多个界面和按钮,添加 bgm

第三阶段

情报设置,实现存档和读档、全部游戏设计和数值调整

第四阶段

完成最终版本,打包游戏,测试可移植性

🎯 玩法

玩家通过WASD控制幽灵移动,按空格释放波

可存档和读档,并且能在外部修改存档再读入(数值太离谱可能会崩溃,比如速度太大)

根据不同的条件会玩家有不同的结局

📋 项目基本介绍

⚙️ 基础功能

游戏逻辑

🗺️ 游戏场景

目前只设计了一个地图(留有第二个地图但是没用上),21×25,格子大小为 1024×1024

玩家可视区域边界实时拓展

不同格子有着不同的功能(有一些没来得及做),如:

xxPhantomBase 为 xxPhantom 生成点

portalStart,portalEnd 分别为传送门起点和终点

mazeExit 为迷宫出口

gameManager管理MapActiveObject

👾 角色或单位

ActiveObject:活动单位基类,有速度,范围指示器等,会发生碰撞

Player:继承ActiveObject,三种状态,有传送次数,护盾等

PhantomBase:继承ActiveObject,前期随机游走,后期锁定玩家

FlamePhantom:继承PhantomBase,近战攻击会击退玩家,范围减速🔥

LurkerPhantom:继承PhantomBase,有护盾,能闪现⚡

King:继承PhantomBase,多个PhantomBase聚集生成一个,能伤所有非己👑

Wave:继承ActiveObject,所有波的基类,有移向,射程等

PlayerWave:继承Wave,3 发,可加强,可击退、穿透、群伤

FlameWave:继承Wave,1 发,使玩家燃烧,持续 3 秒

LurkerWave:继承Wave,5 发

KingWave:继承Wave,8 个方向,仅击退玩家

💻 交互界面

完整界面

mainWindow 使用栈包含开始,游戏,存档,情报等界面(设置界面暂时没写) 存档界面8个存档框,可覆盖存档

交互方式

WASD 和空格操作玩家,射击方向为玩家最后移动的方向

🔊 操作反馈

玩家波类碰撞PhantomBase类和其他波类以及传送时有音效,拾取掉落物会有强化,如视野扩大等

🛠️ 其他功能

💾 存档(10)

1 个上次游戏文件和 8 个存档框,序列化存储倒计时秒数、DropItem和所有ActiveObject

商店或强化系统

玩家拾取flamePhantomlurkPhantomDropItem分别有不同的强化 如flamePhantomDrop强化顺序为:atk,sightRange,aoeRadius、atkRange...

FlamePhantom 范围减速 玩家波的伤害范围增强 第一次倒计时结束后,部分 PhantomBase 加强

📝 代码管理

充分运用 C++面向对象特性, h 和 cpp 文件总和 30+,变量名用小驼峰,类和文件名大驼峰,注释和变量名清晰明确

🎉 游戏体验

由情报引导真结局,难度中上

gui 文件数较多,不同界面和情形对应不同 bgm

💡 提示与剧透

🔍 提示

有一个**结局文件(.josn)**📄,记录结局是否达成,达到一定数量的结局后多达成一个结局多一个情报

同时还有多个json文件可在外部修改

PhantomBase类的数量都有最大上限

共两次倒计时⏰,第一次倒计时结束时音乐切换为trapped1,同时加强部分PhantomBase

第二次倒计时开始后传送门失效🚫,玩家可突破包围圈

玩家达到第 3 个结局时情报界面开始增加信息指导玩家

其中迷宫出口位于左上角(1,1)和右下角,地图对称🔄

PhantomBase也能随机传送

视野扩大后视野圈会跟着变大👁️,虽然有上限但是可在存档修改视野直接填满窗口

⚠️ 剧透

剧透结局设计:

deadEnd💀:玩家血量<=0

lostEnd🔄:传送次数达到一定次数

fakeEnd⏳:第二次倒计时结束

trueEnd✨:在迷宫出口停留几秒

About

Top-Down Shooting Game : Qt Widget | PC Game

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published