前言

历时一个月,终于完成了人生中第一个游戏&计算机大作业《妮可迷惑日常》。首先自然是鸣谢一下两位合作大佬的帮助和包容。

关于游戏

这是一款基于DirectX中的DirectDraw和DirectInput,winapi开发的2D横版跑酷类游戏,游戏素材来自网络,游戏机制:玩家自主输入难度,空格二段跳,下滑键强制落地,碰撞判定机制是碰到障碍物(书本)扣血条,碰到“卷”标记加血条,超过100血条消失,超过150直接死亡,碰到地板左右边沿直接死亡。

内含小剧场,游戏结束且成功可能会套娃一些友好的小游戏。

内含服务器,可以pvp(局域网)。pvp具体操作见游戏说明。

以下是游戏安装的百度云连接,由于vs不会从debug改成release(错误太多qwq)所以安装流程比较繁琐,有兴趣下载并且看不懂安装教程的可以私我。

链接:https://pan.baidu.com/s/1Hhibhb9afhFjH_7rv0llsA
提取码:cho4
复制这段内容后打开百度网盘手机App,操作更方便哦

个人的游戏评价

可玩性基本达到预期,学习价值大于娱乐价值。DirectDraw是一款自由度比较高的底层插件,仅仅提供几个画图类接口函数,动画引擎全部自己编写,不足之处在所难免。地图结构勉强算是合理,但是也有一些比较阴间的地方,限于时间暂未改进。不过整体游戏框架完整,完成度比较优秀。

个人小结:技术篇(非信息类建议跳过)

1.接触了DirectX(一个很牛逼的玩意儿,但是很难用),初步了解COM编程(纯虚类+接口函数的编程框架和理念)。(推荐《windows游戏编程大师》,有点难啃但是很详尽,技术有些过时但是够用)(16位色彩窗口真滴阴间)

2.自己写了一个动画引擎,学会三缓冲视频技术(离屏表面,后备缓冲,主显示表面的相互转化),使得画面较为流畅(毕竟是直接和windows硬件协作的directdraw),还有一些设计碰撞箱的图像处理技术(透明度,色彩键,图形缩放)

3.基本掌握winapi窗口模式下的编程还有相关GDI的运用,还有GDI和DirectDraw的协作(自己写了一个CFont类,没用MFC真滴伤)。没怎么啃书,基本上直接套网上模板然后vs上用必应搜索。以及研读合作大佬的代码。

4.初步了解socket编程,大致理解了套接字的含义以及网络协议的相关运作,以前python上有看到过但是迷迷糊糊的,这次自己写了一个客户端实例化了之后还是蛮清楚的。当然还有windapi的多线程编程(其实就是一个函数CreateThread而已)

5.真正意义上接触OOP,游戏主体,地图等绝大部分(除了客户端和服务端)采用类及其实例化。以及纯虚类的使用和继承。基础框架要感谢合作大佬

个人小结:合作篇

1.终于改掉了多年积累的压行的坏习惯,现在看到一大段胖胖的代码就头疼。

2.学习了匈牙利命名法,写注释以及适时写函数和换行,这三招基本解决了大部分有关代码可读性的问题。

3.任务分配有时候协商不太到位,但是总体而言各司其职,想法不同时也会各抒己见达成共识。

4.整合代码花费了太多时间,强烈建议下一次合作工程再中后期阶段完整阐明程序改动的位置。

关于后续

本就是用于学习的工程,没有太过在意最后的结果(毕竟代码都这么长了好歹分不会太低吧)。不过地图设计也蛮好玩的(可以坑人丫),而且本地存档有成就系统也可以拓展,算是留了一个估计不太会填的坑。如果有人真的希望我更新游戏的话我会考虑有空的时候发布几波新的版本的(毕竟初代的碰撞箱和地图都有些一言难尽)。大家有什么地图设计的想法也可以发给我让我来填坑丫。

留在最后

人生第一个工程正式结束,为自己喝彩!干杯~

开元代码链接https://github.com/MaxtirError/Nico-s-confusing-daily-life

github限制没办法传所有图片,如要采用vs运行要下载安装包里的图片。(想看代码可以私我)

大一上计算机大作业个人小结:游戏《妮可迷惑日常》,DirectX,WinAPI实战相关推荐

  1. 大一上学期大作业贪吃蛇

    ************准备借此记录下自己的成长历 大一上学期就要结束 了 最后一个的c++大作业是 贪吃蛇 看了好多博主 百度了好多东西 又结合自己写出了这个代码 以下是自己写的代码 #includ ...

  2. 大一c语言大作业课题大全,昆明理工大学大一C语言大作业题目.doc

    昆明理工大学大一C语言大作业题目 综合性实践排序求平均值(包括将数拆散求最大最小值).函数ReadDat()随机产生100个存放到数组aa中00个jsSort()函数的功能是:进行降序排列.最后调用函 ...

  3. unity团队大作业-足球射门游戏

    unity团队大作业-足球射门游戏 unity团队大作业,足球射门游戏,有分数统计,达到一定分数会变难,适合初学者学习使用,如下动态图所示:(资源链接在文末) 点我下载资源

  4. 个人设计web前端大作业~响应式游戏网站源码(HTML+CSS+Bootstrap)

    HTML期末大作业课程设计游戏主题html5网页~响应式游戏网站(HTML+CSS+Bootstrap) ~个人设计web前端大作业 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到头 ...

  5. HTML5期末大作业:棋牌游戏网站设计——棋牌游戏(8页) HTML+CSS+JavaScript web大作业 静态网页

    HTML5期末大作业:棋牌游戏网站设计--棋牌游戏(8页) HTML+CSS+JavaScript web大作业 静态网页 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物 ...

  6. 计算机里面有鬼的恐怖游戏,胆小勿入!盘点史上十大最恐怖电脑游戏

    提到浣熊市.寂静岭.皆神村这些耳熟能详的地方,不知道留下了多少玩家的惊惧与心跳!而僵尸.怪物.恶灵这些面目狰狞的轮廓又多少次惊醒了酣梦中的人们?作为最能贯彻游戏电影化理念的AVG解谜游戏,在游戏的表现 ...

  7. WEB期末大作业 痒痒鼠游戏系统

    目录 开发环境 文件目录 数据库 网页展示 项目说明书 详细功能说明 设计环境 数据库设计 使用的前端框架 JSP页面的说明 心得体会 github指路 拖了好久终于想起来把WEB的期末作业传上来,系 ...

  8. python之穿越火线游戏代码_Python 大作业之五子棋游戏(附代码)

    Python 大作业--五子棋游戏 姓名:吴欣 学号: 姓名:张雨清 学号: 一 游戏介绍: 我们设计的是五子棋游戏,支持两人一个鼠标对下,黑方用左 键单击,白方用右键单击,谁先下均可,落子无悔,下过 ...

  9. python五子棋大作业报告_Python 大作业之五子棋游戏(附代码)

    Python 大作业--五子棋游戏 姓名:吴欣学号: 姓名:张雨清学号: 一游戏介绍: 我们设计的是五子棋游戏,支持两人一个鼠标对下,黑方用左键单击,白方用右键单击,谁先下均可,落子无悔,下过的棋子对 ...

最新文章

  1. 简述ospf的工作原理_物联网水表工作原理简述
  2. 马哥linux学习笔记:openssl的使用
  3. python如何安装torch_PyTorch安装与基本使用详解
  4. linux shell 脚本 supress,《linux Shell 脚本攻略》进阶学习(第一部分)
  5. Spring-发送QQ邮件
  6. 小程序Windows和linux,改进后的《自动显示天气预报》小程序(Linux和Windows环境都可以)...
  7. 拓端tecdat|R语言MCMC的rstan贝叶斯回归模型和标准线性回归模型比较
  8. 一文看尽 Stata 绘图
  9. 永恒之蓝 利用(复现)
  10. Unity 删除物体
  11. 英语听力采用计算机化考试,高考英语听力机考12问——访北京教育考试院有关负责人...
  12. 玩家交互体验—剑网3师徒系统
  13. javascript 建模_如何用JavaScript编写3D建模应用程序
  14. Android手势识别——上下左右滑动、屏幕上下左右中区域处理
  15. python图片切割以及识别图片中的文字
  16. exchange2007+outlook2007,无法使用外出助理
  17. perforce p4v linux,Perforce p4v下载
  18. 数据分析师是青春饭吗,前景如何?
  19. ZEMAX | 如何设置镜头卡口的机械参考以进行热分析
  20. java英语单词学习网站 Vue项目源码介绍

热门文章

  1. IPv4中,私有地址的范围
  2. 去掉双斜杠注释C语言,去掉双斜杠注释
  3. java addall 顺序_Java LinkedList addAll()方法
  4. java 抛硬币程序_C#的控制台应用程序实现模拟抛硬币的过程
  5. Unable to resolve service for type ‘Movies.Domin.MoviesAccount‘ while attempting to activate ‘Movies
  6. 基于LM317的可调直流电源
  7. Notificaton+IntentService下载
  8. 关于软件模块化设计方法
  9. R语言如何处理nc数据
  10. Linux猜1到100的随机数