Skip to content

NewtonVan/T0m-J3rry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

T0m-J3rry

Funny Gam3

添加功能如下(不正经版)


这部分时边实现边记录的

  • 一只能咬我的狗(T&J里好像叫鲁宾还是啥子的)
  • R键rush技能,世界上速度最快的程序员猫(速度1024)
  • 可以化身射手Tom,发射小猫球(鼠标右键)
  • 小萝莉猫,纯受,躲不了,色Tom逮着就是一顿...魔法加成,速度更快了or射手资源更足了or再获得一条命(别问为什么开始没有九条命)
  • 御姐猫,具有欲擒故纵被动技能,其他和萝莉猫相比,体验(加成)double
  • 设定了游戏记录设定,History文件夹下,record.txt记录了每局时间以及分数,rank.txt记录历史前十分数与时间不过有个毛病,时间目前还是UNIX时间戳。。。算法太复杂了。。
  • 增加了一个将UNIX时间戳转化为北京时间的函数,算法有点巨...
  • 优化了游戏UI,增加了游戏历史最高,以及生命等数据显示
  • 设计了暗门,版权所有,白嫖大实验必凉兄die,你是看不到的,但是老师是能看到的哈哈哈哈哈哈哈哈哈
  • 加入游戏时BGM

大实验第四关详细叙述,以及十个功能介绍


实现完成第四关:封装,继承,多态,以及新增功能。

一、 利用封装,继承,多态等思想实现原有精灵:

  1. 玩家所控制Tom猫

  2. 普通精灵Jerry鼠

  3. 会逃跑的金丝雀精灵 二、 利用新增原有类的成员,新增类,新增函数等途径设置新功能 新增功能如下(以下每个功能除UI优化,均同时涉及封装,继承,多态,同时大部分功能设计了新的类):

  4. 玩家所控制类UsrSprite增加生命值属性,并且当玩家收到伤害生命值小于等于0时, 游戏自动结束记为GameOver事件,当此事件触发后,程序将在存档后结束背景音乐退出。同时玩家生命值也可以通过捕获奖励精灵获得的随机奖励恢复。

  5. 玩家所控制类增加Rush技能,利用玩家新的被封装成员Rush实现。当玩家Rush技能拥有数大于等于时使用“R”键可以使得玩家获得加速技能,使得玩家速度提升为原来的四倍,但是玩家的一次Rush技能状态持续1024单位时间,而再次按下“R”键只会将技能有效时间再增加1024而不会提高速度。

  6. 增加了可以攻击玩家对玩家造成伤害狗EnemySprite类,继承自AutoSprite类,此类具有生命值攻击力等成员并被封装,同时设计一系列接口函数,其中部分函数实现了多态,例如SpriteBase中虚函数move()等等函数,一些函数实现了对玩家的攻击效果,一旦此精灵与玩家精灵相撞,发动一次攻击,此类对象同时减少一点生命值,同时迅速与玩家所控制精灵弹开,生命值小于等于0时,此类将被判定delete。

  7. 玩家所控制Tom可以通过鼠标右键化身射手猫,发射具有攻击力的“猫球”,此猫球是一个新的类CBall类,具有生命值且被封装。同时玩家具有新的被封装成员weapon,当玩家所具有的weapon数量大于0,并且玩家单击鼠标右键发动特定鼠标事件时,便会发射猫球弹,猫球弹一旦捕获其他精灵,消灭精灵获取分数,若是奖励精灵玩家同时获取技能加成奖励。猫球具有群伤效果,但猫球生命值小于等于0时,猫球消失

  8. 增加奖励精灵设定,此奖励精灵利用一个新的继承自AutoSprite类的类实现,当捕获奖励精灵时,玩家在获得生命的同时,还可以随机获得以下奖励之一:生命值增加1点、Rush技能包加1,或是装配6个猫球弹。同时玩家精灵处设置接受奖励函数。

  9. 增加会逃逸的奖励精灵设定,利用新的、继承自普通奖励精灵类的类,此精灵实现当玩家距离过小时,此奖励精灵会迅速弹开,但一旦捕获,将获取相较于普通奖励精灵双倍的额外奖励。

  10. 增加历史记录设定,此功能实现设计新的类HistoryBase,具有游戏北京时间分数等被封装成员,并提供接口函数,并利用文件IO知识,从History文件夹下的rank.txt读取玩家游戏分数榜前十的游戏时间以及所获得的分数,并将本局游戏分数在输出到记录玩家每一局的record.txt文件中(也在History文件夹下)同时,重新选出玩家游戏记录前十并将对应时间以及分数输出到rank.txt文件中。

  11. 获取实时游戏时间,并将UNIX时间戳转化为北京时间,最终供历史记录中游戏时间使用

  12. 对于游戏UI的优化,在程序的运行框表头设计个人“签名”,加入游戏运行时背景音乐,实时显示玩家所获得的历史最高分,当前分数,生命值,拥有武器数量,拥有Rush技能数量,以及当前时间的时钟,同时涉及暗门以及一系列加密函数,确保本人代码版权,因本人代码在完成时上传到github,若是有人抄袭,此加密机制可确保本人原创,加密机制为在1月5号23点59分59秒之后,会自动浮现本人签名于右下角,其中签名内容为:H4ck3r Id!0tN3

10.设计了游戏彩蛋


原有:

  • T0m
  • J3rry
  • Canary(AvoidSprite)

添加

  • Robin(EnemySprite)
  • Girl(PrizeSprite)
  • ButiGirl(PrizeSprite1)
  • Weapon Cat(Ball)
  • History(HistoryBase)

Ea5t3rEgg(彩蛋)


加速状态,有概率获得双倍奖励,当然也有概率三倍伤害。。。

编译文件方法


在命令行下打开,且配置好Mingw

gcc -c *.c 
g++ -c *.cpp 
g++ *.o -lgdi32 -lole32 -loleaut32 -luuid -lwinmm -lmsimg32 -o sprite.exe

Releases

No releases published

Packages

No packages published