/Cyclooctane

第一个自制游戏,用于黑框框比赛

Primary LanguageC++

Cyclooctane

副名:Who's the hunter now?

作者:Zedom

平台:Windows

用途:自我偷税,黑框框比赛,C++大作业

语言:C++

开发版本

  • 黑框框版本: 30天,2017/04/11->2017/05/10  完成代码量:3.6k+
  • 大作业版本: 暑假间断不定期开发,2017/07/12->2017/08/31

推荐分辨率:1920*1080

游戏概述

  • 陷入黑暗的勇者被迫进行轮回的战斗

游戏介绍

  • 房间内每秒都有怪物随机生成,可能出生在地刺上也可能就在玩家身边(距离至少50)
  • 在房间待一段时间后,玩家将会失去攻击能力,房间随机一处会开门,玩家可以选择停留在房间内,但怪物会继续生成并且速度会随玩家逗留时间增加而增加。(每个房间的时间随机,但总体随闯关房间增加而增加)
  • 每闯一定数目关卡有升级或切换人物机会
  • 地形分地刺和岩石,地刺有间歇型地刺和永久型地刺
  • 怪物分为普通怪物和精英怪物,精英怪物分别可无视地刺、岩石和怪物碰撞体积,速度较普通怪物快(温馨提示:用普通怪物碰撞体积卡住精英怪)
  • 玩家受伤会无敌并闪烁,无敌时间2s,初始血量固定但不显示即时血量
  • 为体现游戏恶意,开始游戏时玩家出生点不作判定,出生在岩石上会被弹开,出生在地刺上开局扣血

操作方式

  • WASD:操纵主角移动,移动菜单选项
  • 上下左右:发射子弹、激光或操纵悬浮子弹
  • Q:使用大招或切换形态
  • ESC:游戏中暂停、退出升级(没错你可以选择不升级)、返回
  • Enter:确定

游戏特色

  • 1.自行实现的基础计算机图形学函数
  • 2.未使用第三方图形库、游戏引擎、STL
  • 3.三个主角,6种特色攻击方式
  • 4.无限挑战模式, 狩猎角色变更玩法
  • 5.人物升级、更换系统
  • 6.基于分离轴原理的碰撞检测
  • 7.局部更新绘图
  • 8.利用有限状态机实现的游戏状态转移
  • 9.存读档系统
  • 10.基于游戏特性而作改动的A*寻路算法

角色介绍

Benzene:(定位:灵活血厚弱攻击型)

普通攻击为发射子弹,对怪物造成1点伤害 大招为立即消灭此时出现的所有怪物并获得旋转地图能力

无法自由切换普通攻击和大招,作为补偿大招无CD

Cyclohexadiene:(定位:缓慢脆皮多功能高杀伤型)

形态一为穿透激光

对直线上怪物造成一点伤害,对怪物有穿透能力

形态二为即死激光

秒杀碰到的怪物,但会因碰到怪物而反射

形态三为旋转地图能力

可自由切换形态

Pyran:(定位:中规中矩稳健型)

形态一为爆弹

在接触到第一个怪物后爆炸,产生半径75的圆并对其中所有的怪物造成秒杀效果(会伤害自己)

形态二为悬浮

子弹数目恒为一,子弹增大并脱离本体变为可操纵形态,用方向键操控悬浮子弹,能够吞食触碰的怪物并增加自己的体积,当体积达到一定程度后会爆炸,产生半径90的圆并对其中所有怪物造成秒杀效果(不会伤害自己)

可自由切换形态

怪物介绍

血量以边数进行衡量,最少为三角形,最多为六边形

普通怪物:速度适中,生命值随机,怪物间存在碰撞体积,受地刺伤害,受岩石阻挡

精英怪物:速度较普通怪物快

红色精英怪:无视地刺

棕色精英怪:无视岩石

白色精英怪:无视怪物间碰撞体积

展望

  • 1.金钱系统、商店系统、地图系统、成就系统(不做)
  • 2.特色道具(不做)
  • 3.可攻击的特殊精英怪物、BOSS(可能做)
  • 4.基于哈希函数的种子(重点2号做)
  • 5.分层闯关打BOSS模式(可能不做)
  • 6.用导航网格或IDA*或D*优化寻路(重点1号做)
  • 7.用四叉树优化碰撞检测(对该游戏优化提升不大,可能不做)
  • 8.增加侧边状态显示(偷懒不做了)
  • 9.增加游戏难易度选择(可能做)
  • 10.增加音乐(可能不做)