• C++ 面向对象 KOF-格斗游戏设计与开发


    KOF 格斗游戏开发

    前言

    这个程序是我在大二的上学期作为期末课程设计来完成的。
    实现的功能包括场景的选择,背景音乐的播放,人物的移动,人物的打斗伤害检测,人物技能的释放等等。

    效果展示

    实现方式

    • 基于MFC开发模式

    通过对于KEY_DOWN按键事件和WM_PAINT刷新事件的自定义完成整个的游戏逻辑。

    • 资源导入

    由于是格斗类游戏,少不了大量的人物、背景、音乐素材的导入,所以在这里对于整个的代码进行了封装。
    抽象出了一个资源类,用于动态的导入资源,减少工作量,代码逻辑也更加清晰。

    • 游戏的流程控制

    在整个的游戏当中,需要完成对于游戏场景的选择,游戏角色的选择,涉及场景的变换,这一过程通过变量GAME_STATUS来完成对于当前游戏状态的控制。

    • 人物的动作

    主要包括人物的移动和打斗动作,在这里对于游戏角色抽象出一个角色类,包括角色位置,角色的动作状态,角色的生命值等等。
    当我们得知当前人物的动作是什么之后,我们就可以通过画出关键动作帧的方式来画出人物的动作,从而实现人物移动的效果。
    由于自己在网上找的资源是jpg格式的,有上百张,自己转成png然后再去背景显然工作量就很离谱了,所以学习了一下python,一个脚本搞定

    • 双缓存

    在前期开发的时候,我都是直接在画布上操作这样子,但是造成的问题是会使得画面出现闪屏的问题,体验不佳,
    所以在后面使用了双缓存技术,也就是每次将所有内容都放在一个位图上,最后将这个位图贴到画布,那么对于画布来说就只有一次操作
    这就使得游戏流畅了很多。

    存在的问题

    • 文件分离性差

    整个项目就直接一个CPP,可以说没有半点分离性可言,自己当时也想将一些内容分装到独立的文件
    但是在实际操作的时候,出现了问题,编译一直过不去,最后实在是迫于无奈才将所有内容写入一个文件内。

    项目源码

    GITHUB链接

  • 相关阅读:
    django-搭建BBS关键点总结
    关于django中input标签中file类型以及开路由
    Bzoj1115 石子游戏Kam
    HDU1907 John
    HDU2509 Be the Winner
    洛谷P1082 同余方程
    POJ1065 Area
    Vijos1889 天真的因数分解
    Bzoj2440 完全平方数
    Bzoj2705 Longge的问题
  • 原文地址:https://www.cnblogs.com/loenvom/p/14359906.html
Copyright © 2020-2023  润新知