自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 资源 (2)
  • 收藏
  • 关注

转载 Utility AI 一种基于权重的游戏AI

游戏的目的是带给玩家乐趣,值得玩家去玩的游戏应该是玩家可以获得乐趣的游戏,但是类似《黑暗之魂》这样的游戏,玩家如何从中获得乐趣?这其中就涉及到游戏的娱乐性,玩家可以从游玩过程中学习和利用知识,并以此解决游戏中的问题。比如:《超级马里奥》中玩家通过学习跳跃、躲避障碍物,最后通过某一关卡;Dota中玩家通过学习补兵、对线、走位等等获得金钱和经验,并以此击败了对手;《黑暗之魂》中玩家通过一次次死亡摸清了BOSS的行动规律,最终击杀了BOSS等等。对待新事物人们总是充满好奇,这种好奇心会不断促使人们探索,直到人们完

2020-10-28 17:14:01 1941

转载 AI PRO I 第4章 译文 Behavior Selection Algorithms An Overview

Behavior Selection AlgorithmsAn OverviewMichael Dawe, Steve Gargolinski, Luke Dicken,Troy Humphreys, and Dave Mark翻译:TraceYang,钱康来4.1 介绍 当家用机玩家对他们购买的游戏要求更高的时候,为游戏编写AI系统变得越来越难了。同时,一些移动平台的小游戏也突然开始活跃了,这使得让AI程序员知道如何在短时间内获得最佳的行为变得重要起来。...

2020-10-18 19:53:41 416

原创 c#使用zlib.net压缩解压byte数组

c#使用zlib.net压缩解压byte数组简单粗暴直接上代码遇到的小坑zlib是提供数据压缩用的函式库 ,本文简单介绍zlib.net解压数组碰到的痛点简单粗暴直接上代码 public static byte[] Compress(byte[] bytes) { return bytes; if (bytes.Length < 2) { return bytes;

2020-08-21 17:29:26 1402

原创 关于TTL大家容易忽略的地方

首先来科普一下什么是TTL:TTL值(Time To Live)生存时间又称为生存周期.就是说这个ping的数据包能在网络上存在多少时间。当我们对网络上的主机进行ping操作的时候,我们本地机器会发出一个ICMP数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致

2017-03-15 21:07:53 2144

转载 什么是PING值,PING值的计算方法

什么是PING值,PING值的计算方法PING (Packet Internet Grope),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答。  它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的

2016-11-16 14:42:01 15327

转载 序列化和反序列化

摘要  序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化。然而,序列化和反序列化的选型却是系统设计或重构一个重要的环节,在分布式、大数据量系统设计里面更为显著。恰当的序列化协议不仅可以提高系统的通用性、强健性、安全性、优化系统性能,而且会让系统更

2016-04-25 10:28:07 499

原创 golang windows环境下的配置安装

使用MSI文件,然后按照提示安装围棋工具。默认情况下,安装程序使用转到分布在c:\Go。安装程序应设置c:\Go\bin目录到Windows PATH环境变量。重新启动任何打开命令提示符,以使更改生效。1.在官网 Go:https://golang.org/dl/  下载  MSI文件,不过现在这个网站可能被墙了,所以如果不想使用最新版本可以不去翻墙,百度网盘里有很多安装文件2.安

2016-04-16 19:57:52 1728

转载 再谈网游同步技术:实时动作游戏同步方式和传输协议选择

实时动作游戏在近年来得到迅猛的发展。而游戏同步问题,成为大家继续解决的核心问题之一。早在 2004年,国内游戏开发还处于慢节奏 RPG满天飞的情况下,我就开始实时动作游戏研究。分别在 2005-2006期间写了一系列相关文章,被好多网站转载:  帧间同步模式:《帧锁定同步算法》(2007):http://www.skywind.me/blog/archives/131   玩法规避

2016-03-24 18:48:44 1043

转载 超经典:什么叫网关

计算机主机网关的作用是什么?  假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。  但是你不被允许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远

2016-03-16 23:43:16 421

转载 使用supervisor提高nodejs调试效率

在开发Node.js 实现的HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止 Node.js 再重新运行才会奏效。这是因为Node.js 只有在第一次引用到某部份时才会去解析脚 本文件,以后都会直接访问内存,避免重复载入,而PHP 则总是重新读取并解析脚本(如 果没有专门的优化配置)。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因 为我们在开发过程中

2015-11-22 21:43:00 1817

原创 Ubuntu环境下sublime3 nodejs安装与插件配置

在Ubuntu中按CTRL+ALT+T打开命令窗口,按下面步骤和命令进行安装即可:添加sublime text 3的仓库:1 sudo add-apt-repository ppa:webupd8team/sublime-text-3回车,出现很多信息。但是我们看看图片最后字知道,这地方在等待我们确认是否添加这个仓库,按enter键继续,按crtl+c取消。此时,按

2015-11-05 23:18:31 1686

原创 Linux下Nodejs安装

首先去官网下载代码,点击打开链接  这里一定要注意安装分两种,一种是Source Code源码,一种是编译后的文件。推荐用编译后的文件    (一) 编译好的文件    简单说就是解压后,在bin文件夹中已经存在node以及npm,如果你进入到对应文件的中执行命令行一点问题都没有:进入解压后的bin目录下运行./node -v 则可以查看当前安装

2015-11-05 00:48:01 863

原创 mysql保留字-关键字表

mysql保留字,关键字表搜藏,以备所需时查用ADDALLALTERANALYZEANDASASCASENSITIVEBEFOREBETWEENBIGINTBINARYBLOBBOTHBYCALLCASC

2015-10-13 09:44:36 537

转载 开源点评:Protocol Buffers介绍

本文来自CSDN博客:http://blog.csdn.net/program_think/article/details/4229773今天来介绍一下“Protocol Buffers”(以下简称protobuf)这个玩意儿。本来俺在构思“生产者/消费者模式 ”系列的下一个帖子:关于生产者和消费者之间的数据传输格式。由于里面扯到了protobuf,想想干脆单独开一个帖子算了。

2015-10-12 22:22:01 407

原创 C# list 多条件排序

今天在工作中遇到一个状况,一个骑乘列表,列表的排序规则优先级:1.首先按照骑乘等级降序排序2.其实按照骑乘上阵等级降序排列3.再次按照骑乘品质降序排列4.最后按照骑乘ID降序排列下午考虑了一下,觉得头大了,就索性睡了一觉,结果在梦中来了灵感!!!(看来以后遇到困难的问题得先睡觉啦)言归正传:已知条件是一个horseList, 一个HorseDate接下来就是

2015-09-22 20:21:56 9444 1

原创 on duplicate key update简单使用

今天做项目的时候遇到了一个这种情况,就是可能要对某个数据表频繁的更新,如果更新的条目在数据表中就更新,如果不再数据表中就插入这条记录那么问题来了,传统的做法都是首用主键去查询数据表,如果数据表中有这条记录,则更新这条记录,如果没有,则讲这条记录插入到表中,这就需要三条sql语句来完成:例如一下数据表:+-----------+---------+------+-----+-----

2015-09-17 18:53:40 464

转载 NGUI_2.6.3_(3D视图&ScrollView)

今天我们通过一个综合的例子来讲解NGUI的3dUI 和ScrollView。本例结合是了NGUI官方自带例子中的Example 6 - Draggable Window和Example 7 - Scroll View (Panel)两个场景的内容来讲的,帮助大家更好的理解这两个场景的内容。如果大家对这两个场景都很精通的话,可以忽略此教程。最终实现结果如下图:1.首先新建一个场景,通

2015-08-29 11:13:24 522

转载 NGUI_2.6.3_系列教程六(序列帧动画)

今天我给大家讲一下如何使用NGUI做序列帧动画。本节主要包括两方面内容,分别是使用UIspirit和使用UITexture 做序列帧动画。废话不说了,下面开始。还要在啰嗦一句,首先大家要准备一些序列帧的素材图片,最好是大图和小图各一套。我们先来将使用UISpirit做序列帧动画,这个方法只适合使用小图。在使用UISpirit 之前大家还要把准备好的序列帧图片做成Atlas,如何做Atlas

2015-08-29 11:11:16 445

转载 NGUI_2.6.3_教程五(角色信息跟随)

在一些网络游戏中,我们常常可以看到角色的上方显示着角色的名称,等级,血量等信息。它们可以跟随角色移动,并且可以显示和隐藏。今天我们就来学习一下这些功能的实现方法。1. 新建unity工 程,导入NGUI插件。对于字体按钮等的制作方法参见以前的系列教程。这里我们直接开始学习制作方法。首先新建一个2DUI,设置UI的层为NGUI。新 建完成后,使用菜单NGUI -->Create a Panel

2015-08-29 11:08:32 454

转载 NGUI_2.6.3_教程四(自定义Atlas,Font)

今天我们来看一下怎么自定义NGUIAtlas,制作属于自己风格的UI。第一部分:自定义 Atlas1 . 首先我们要准备一些图标素材,也就是我们的UI素材,将其导入到unity工程中。2. 全选我们需要用到的UI素材。选择菜单NGUI-->Open the Atlas Maker(快捷键 Alt +shift+M)。打开Atlas Maker窗口,如图我们可以看到,刚才

2015-08-29 11:07:13 431

转载 NGUI_2.6.3_系列教程三

接下来我们再来看Progress Bar和Slider,对比参数我们可以发现,Progress Bar和slider的明显区别在于slider多一个Thumb选项,这里的Thumb就是我们拖动的时候点击的按钮。 Empty 和Full选项其实就是前景和背景的Spirit。这里大家都已经熟悉了,我们看Slider和ProgressBar的根节点,也可以发现,Slider之比P

2015-08-29 11:05:47 623

转载 NGUI_2.6.3_系列教程二

接下来我们创建一个Label,NGUIàOpen the Widget Wizard,打开widgetTool对话框,在Template中选择Label,确定AddTo右侧选项为panel,点击,Add To完成Label创建。1.Label属性窗口如图1.下面的节奏可能有点快,大家可以先熟悉一下上面讲的流程,再进行下面的学习。接下来我们依次创建Button和Inp

2015-08-29 11:04:45 352

转载 NGUI_2.6.3_系列教程一

首先导入NGUI package,这里我们选用的是2.6.3版本的NGUI。在unity工程窗口中点击右键选择 Importpackageàcustom package,选择你下载的NGUI插件,导入完成后效果如图:1.选择菜单NGUIàOpen the UI Wizard,弹出创建UI对话框。点击Layer窗口右边对应的按钮,弹出层选择对话框,在这里我们选择AddLa

2015-08-29 11:03:16 544

转载 Select和epoll的区别

当一个节点和多个节点建立连接时,如何高效的处理多个连接的数据,下面具体分析两者的区别。1. select函数函数原型:int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);参数介绍:(1)nfds    -- fdset集合中最大

2015-06-08 20:04:08 365

转载 tcp socket的发送与接收缓冲区

1)应用程序可通过调用send(write, sendmsg等)利用tcp socket向网络发送应用数据,而tcp/ip协议栈再通过网络设备接口把已经组织成struct sk_buff的应用数据(tcp数据报)真正发送到网络上,由于应用程序调用send的速度跟网络介质发送数据的速度存在差异,所以,一部分应用数据被组织成tcp数据报之后,会缓存在tcp socket的发送缓存队列中,等待网络空

2015-06-08 20:01:12 3992

原创 Lua4.0 实现#操作,获取table大小

lua4.0没有实现#操作,#操作是lua5.0以后实现的,现在有个老项目要用lua4.0,则在网上找到了下述方法替代-- table.getn(tableName) 得到一个table的大小,等同于操作符#  -- 要注意的是:该table的key必须是有序的,索引是从1开始的。      --例如有序的  local xiang = {10,22,34,42

2015-05-19 18:04:32 953

原创 lua4.0中实现% 取余操作

相信大家对%取余很熟悉,lua5.0以上也完美的支持了,但是我最新的项目服务器使用%却莫名的报错,最后终于找到了罪魁祸首,#define LUA_VERSION "Lua 4.0" 是的,没看错,我们服务器使用的是lua 4.0版,而且lua4.0版并不支持%运算,最后使用 a - math.floor(a/b)*b  操作完美解决了这个问题 a % b == a 

2015-05-14 14:26:34 6772

转载 手游页游和端游的服务端的架构与区别

手游页游和端游的服务端本质上没区别,区别的是游戏类型。  类型1:卡牌、跑酷等弱交互服务端  卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP服务器:  登录时可以使用非对称加密(RSA, DH),服务器根据客户端uid,当前时间戳还有服务端私钥,计算哈希得到的

2015-05-05 21:07:41 1440

原创 cocos2dx在不同安卓机型下scrollview裁剪失败

最近项目上遇到个问题一直困扰着我,我用cocossstudio做了一个uiscrollview,结果在pc和大部分安卓手机上都能完美运行,但是在有些机型(我用小米4,三星S5, HTC one)上scrollview裁剪会失败,在上面划出显示区域仍然显示,为了解决这个问题,我上网查,各种试,问群里的大牛,最终终于找到了解决的办法。其实办法很简单,就是在代码中加注一句:setClippi

2015-04-13 18:31:09 1406

转载 STL-容器间的复制list&vector

#include #include #include #include int main(){ //copy list to list std::list oldList; std::list newList; oldList.push_back("test1"); oldList.push_back("test2"); oldList.push_back("test3")

2015-04-08 17:25:35 383

转载 recv函数返回值说明

ecv函数int recv( SOCKET s, char FAR *buf, int len, int flags);不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据。该函数的第一个参数指定接收端套接字描述符; 第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据; 第三个参数指明buf的长度; 第四个参数一般

2015-04-07 11:37:28 501

转载 UTF8,Unicode 的区别(zt)

UTF8并不算是一种电脑编码,而是一种储存和传送的格式,如前所述,每个Unicode/UCS字符都以 2或4个bytes来储存,看看以下的比较:   以"I am Chinese"为例  用ANSI储存:12 Bytes  用Unicode/UCS2储存:24 Bytes + 2 Bytes(header)  用UCS4储存:48 Bytes + 4 Bytes(header)

2015-04-07 11:24:20 661

转载 如何优化cocos2d/x程序的内存使用和程序大小

评论(9) 收藏 举报目录(?)[+]本站文章均为 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2d/1043.html          ☞ 点击订阅 ☜ 本博客最新动态!及时将最新博文通知您!貌似从Hi

2015-04-02 16:52:02 654

转载 场景切换时清理缓存!!CCTextureCache、CCSpriteFrameCache、CCAnimationCache

cocos2d-x中存在3个缓存类,都是全局单例模式。1.CCTextureCache首先是最底层也最有效的纹理缓存CCTextureCache,这里缓存的是加载到内存中的纹理资源,也就是图片资源。其原理是对加入缓存的纹理资源进行一次引用,使其引用计数加一,保持不被清除,其cocos2d-x的渲染机制是可以重复使用同一份纹理在不同的场合进行绘制,从而到达重复

2015-04-02 14:08:27 791 1

转载 cocos2d-x性能优化的那些事

年前在对我做的项目做性能优化,虽然在开发中,性能问题是一直关注着的,但是这个东西依然需要在后期做一段时间的优化的,也遇到不少坑,在这里分享下,也记作笔记,另外也欢迎大家有这方面的问题经验在这里讨论。性能的优化主要是亮点,内存的优化和运行效率的优化1.内存的优化       说内存的优化,首先要知道有什么东西会占据程序的内存,可优化的主要是两部分:数据和资源,先说数据,做短连

2015-04-02 11:15:27 795

转载 什么时候用removeUnusedSpriteFrames和removeUnusedTextures

在一个使用cocos2d的项目中,当切换关卡或者说切换layer时,经常需要释放上一个关卡或者layer中使用的图片资源,这个时候需要用到下面两个函数:[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames];[CCTextureCache sharedTextureCache] removeUnus

2015-03-30 10:24:47 2110

转载 cocos2d-x调度器原理,mainloop的Update

程序运行后每达到一帧的时间间隔就会执行一次mainLoopvoid CCDisplayLinkDirector::mainLoop(void){//判断是否需要释放CCDirector,通常游戏结束才会执行这个步骤 if (m_bPurgeDirecotorInNextLoop) { m_bPurgeDirecotorInNextLoop = false

2015-03-26 16:52:32 511

原创 cocos2dx win32下的MainLoop分析(启动流程)

大家都知道,游戏其实就是在死循环中无限绘制,渲染的过程,里面参杂了许多操作,接下来在win32中查看一下cocos2dx的循环过程float dt; while (1) { ... update(dt); //通过时间差更新数据 present(dt);//通过时间差呈现、绘制游戏画面 ... } 所我是用VS在WIN32平台下查看,

2015-03-25 17:45:29 623

转载 Cocos2Dx之处理键盘输入

键盘输入在Cocos2Dx分为两个部分。第一部分是一些功能键的处理:后退键和菜单键。第二部分是处理字符输入。功能键相关的代码位于cocos2dx\keypad_dispatcher。字符输入的代码位于\cocos2dx\text_input_node。我们先看功能键的处理部分。功能键的处理比较简单,只是支持后退键和菜单键。而且功能键的支持只是对WP和Android有效。功能键部分的类关系如

2015-03-04 15:32:11 1507

原创 notepad++ 中增加lua语法检查快捷键

默认已经安装了notepad++和lua ,没有安装的可以在网上直接下载安装,在此我就不再重复了首先不得不承认notepad++功能太强大了,虽然我只用过其中很小的一部分首先复制luac所在目录的路径,我将lua目录中的luac.exe拷贝到c盘下的lua目录下,所以路径为C:\lua\luac.exe输入下方命令cmd /k  C:\lua\luac.exe "$(FUL

2014-12-08 22:52:23 5131

lua调试工具Luadecode

lua调试工具Luadecode,只能在windows环境下调试

2014-10-31

install-templates-msvc.bat

解决cocos2d-x 高版本没有install-templates-msvc.bat,

2014-05-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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