自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 C\C++开发的经典魔塔小游戏--(5)运行展示

2019-08-14 10:45:49

阅读数 189

评论数 2

原创 C\C++开发的经典魔塔小游戏--(4)楼层控制,背景音乐,个人元素

楼层切换是游戏中必不可少的一个元素,总不能一直待在某一层,这样就无法享受通关的快感,在原本的设想中,我打算画十层地图,并且每层地图都添加一些新的素材进去,后来发现,太过繁琐,于是这个游戏就成了一个半成品。 但是主要的逻辑已经实现完毕,剩下的主要是画地图。如果哪位有精力的朋友,可以试试画他几百张地图...

2019-08-14 10:35:49

阅读数 273

评论数 0

原创 C\C++开发的经典魔塔小游戏--(3)主要逻辑处理,角色控制

对于一个游戏来说,最重要的是什么? 没错,是充钱,充钱,再充钱! 当然,游戏本身也要能动弹,不然钱充的不流畅。 所以,我们来看看如何流畅的处理逻辑。 对于一个界面化的小游戏来说,最主要的就是角色的移动,我们通过C\C++的一个函数了处理键盘的响应,以及一个句柄API来处理一些弹窗问题。话不多说...

2019-08-14 10:10:29

阅读数 396

评论数 0

原创 C\C++开发的经典魔塔小游戏--(2)制作地图以及画出地图

这篇文章主要介绍如何制作以及画出地图,顺便会填充一些个人认为有趣的东西介绍给大家。 C用来写图形化界面其实是一个很费力的过程,但是面向过程的语言结构,让人在做一些逻辑处理的时候更加的清晰,而不像C++一样,抽象化的方式让查看代码的人眼花缭乱,防不胜防,势必增加维护成本。但是C++更加高级的重写机制...

2019-08-14 09:56:10

阅读数 313

评论数 0

原创 C\C++开发的经典魔塔小游戏--(1)图形库的使用

最近突发奇想,想起了当年和小伙伴们一起奋斗在村里黑网吧的日子。于是乎,萌发了动手写一个下游戏的念头。这个经典的小游戏名字叫“魔塔”。大致就是你是一个骑士什么的,深入魔塔拯救大妹子的故事。 设计思路还是很简单的,具体就是一些C/C++图形库的引用,将收集好的图片素材显示在界面上各个位置,然后通过接受...

2019-08-14 09:36:08

阅读数 376

评论数 1

原创 上传项目以及克隆项目(git)

上传本地项目到github 创建一个本地项目 2.建立本地仓库   git init //把这个目录变成Git可以管理的仓库   git add README.md //文件添加到仓库   git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的...

2019-08-01 16:01:07

阅读数 25

评论数 0

原创 简单的聊天室服务器 基于Boost asio(8)--last

到此,我们的简单服务器算是基本完成了,至于以后将消息扩展,将逻辑扩展就在于每个人不同的想法了 而在服务器运行中会有很多无法预知的错误出现,我们必须能把握错误出现的地方才能更好的去维护他。 最后,向服务器中再添加一个日志,用来记录他的操作与行为,方便以后出现问题及时的去改正。 创建一个"s...

2019-08-01 12:44:45

阅读数 22

评论数 0

原创 简单的聊天室服务器 基于Boost asio(7)--多线程+读写保护

通过几次修改,我们现在可以愉快的交流了。但是当用户越来越多的时候,我们发现,服务器顶不住了,人太多了,消息完全处理不过来。发了个消息,三年后对方才收到,于是我们想着给他"多整几个CPU",让他多些线路去处理消息 首先 让我们看看什么是线程 线程(thread, 台湾称"...

2019-08-01 12:37:06

阅读数 25

评论数 0

原创 简单的聊天室服务器 基于Boost asio(6)--消息类型的控制

ok,服务器的结构已经构建完毕。尝试运行后发现,一个莫名的东西在那里不停的嘀嘀咕咕,你只知道了他在说话,你不知道他是谁。就跟QQ开启了匿名一样,有时候很好。但是,当某个键盘侠骂了你,你想提着“青龙偃月刀”去他家给他切个水果的时候,你发现不知道这个货是谁,你很生气。 所以,我们要添加一个分辨用户名字...

2019-08-01 12:12:40

阅读数 22

评论数 0

原创 简单的聊天室服务器 基于Boost asio(5)--客户端设计

ok,我们在上一次的学习中,了解到了服务器是如何去收发消息,缓存消息的。今天我们就来看看客户端是如何处理消息。 依旧是使用双向队列来实现消息队列的方法。方便消息的刷新和淘汰,其实考虑过双向链表list<>也可以实现这种结构,但是链表的存储结构注定了他的占存比较大,所以最好的选择还是de...

2019-08-01 12:00:31

阅读数 17

评论数 0

原创 消息收发的保护--序列化的方式

序列化 (Serialization) 将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。 序列化使其他代码可以查看或修改,那些不序列化便无法访问的对象实例数据。确切地说,代码...

2019-08-01 11:00:00

阅读数 20

评论数 0

原创 简单的聊天室服务器 基于Boost asio(4)--服务器设计

这篇文章主要解析,聊天室服务器的设计。 首先,他是通过一个TCP连接来提供服务。 通过asio的io_service来实现与底层操作系统io之间的对接。 通过,async_来实现异步的收发消息。 通过deque来实现存储消息的数据结构。 通过tcp::endpoint来监听消息传递 通过 tcp...

2019-07-30 09:28:00

阅读数 37

评论数 0

原创 简单的聊天室服务器 基于Boost asio(3)--消息协议设计

客户端如果要和服务器做交流,那么肯定需要一套双方都认可的交流方式。比如说我们日常都说普通话,忽然来一个阿拉斯加“”汪汪汪“”的和你说话,这时候,就算你换成英语也没用。必须有一套双方都遵循的交流规则。 也就是 消息协议。 话不多说 上代码 class chat_message { public: ...

2019-07-30 09:15:09

阅读数 28

评论数 0

原创 简单的聊天室服务器 基于Boost asio(2)--io_service

这次我们来学习一下asio中,最主要的部分,也就是service_io. IO模型 io_service对象是asio框架中的调度器,所有异步io事件都是通过它来分发处理的(io对象的构造函数中都需要传入一个io_service对象)。 asio::io_service io_service; a...

2019-07-30 08:57:20

阅读数 30

评论数 0

原创 简单的聊天室服务器 基于Boost asio(1)--boost库

**最近学习了一些boost asio的知识,所以决定解读一下官方文档。继而编写一个简单的聊天服务器。 ** 在开始搞代码之前,得先弄清楚,这个玩意(boost asio)是干什么的。 Boost.Asio是一个跨平台的、主要用于网络和其他一些底层输入/输出编程的C++库。 关于网络处理已经有很...

2019-07-30 08:46:42

阅读数 95

评论数 0

原创 操作系统 C/C++实现的银行家算法

银行家算法是一种最有代表性的避免死锁的算法。 为实现银行家算法,每一个进程进入系统时,都要查看在运行过程中需要每种资源的最大数目,其数目应该不超过系统持有的最大资源数目。 数据结构: 1.可利用资源向量Available。 目前系统中可用的资源队列。 2.最大需求矩阵 max 某个进程队友各类资源...

2019-07-20 10:17:29

阅读数 141

评论数 0

原创 OS C实现的短作业优先

用C语言和数组实现的短作业优先调度 非常简单 #include using namespace std; #define N 3 struct MM{ int id;//标号 int index; char name[5];//进程名 int cometime;//到达时间 int workti...

2019-07-20 09:36:30

阅读数 34

评论数 0

提示
确定要删除当前文章?
取消 删除