游戏开发
文章平均质量分 93
wawa1203
这个作者很懒,什么都没留下…
展开
-
Utility AI 一种基于权重的游戏AI
游戏的目的是带给玩家乐趣,值得玩家去玩的游戏应该是玩家可以获得乐趣的游戏,但是类似《黑暗之魂》这样的游戏,玩家如何从中获得乐趣?这其中就涉及到游戏的娱乐性,玩家可以从游玩过程中学习和利用知识,并以此解决游戏中的问题。比如:《超级马里奥》中玩家通过学习跳跃、躲避障碍物,最后通过某一关卡;Dota中玩家通过学习补兵、对线、走位等等获得金钱和经验,并以此击败了对手;《黑暗之魂》中玩家通过一次次死亡摸清了BOSS的行动规律,最终击杀了BOSS等等。对待新事物人们总是充满好奇,这种好奇心会不断促使人们探索,直到人们完转载 2020-10-28 17:14:01 · 2122 阅读 · 0 评论 -
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 · 471 阅读 · 0 评论 -
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 · 367 阅读 · 0 评论 -
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 · 535 阅读 · 0 评论 -
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 · 642 阅读 · 0 评论 -
NGUI_2.6.3_教程五(角色信息跟随)
在一些网络游戏中,我们常常可以看到角色的上方显示着角色的名称,等级,血量等信息。它们可以跟随角色移动,并且可以显示和隐藏。今天我们就来学习一下这些功能的实现方法。1. 新建unity工 程,导入NGUI插件。对于字体按钮等的制作方法参见以前的系列教程。这里我们直接开始学习制作方法。首先新建一个2DUI,设置UI的层为NGUI。新 建完成后,使用菜单NGUI -->Create a Panel转载 2015-08-29 11:08:32 · 484 阅读 · 0 评论 -
NGUI_2.6.3_系列教程六(序列帧动画)
今天我给大家讲一下如何使用NGUI做序列帧动画。本节主要包括两方面内容,分别是使用UIspirit和使用UITexture 做序列帧动画。废话不说了,下面开始。还要在啰嗦一句,首先大家要准备一些序列帧的素材图片,最好是大图和小图各一套。我们先来将使用UISpirit做序列帧动画,这个方法只适合使用小图。在使用UISpirit 之前大家还要把准备好的序列帧图片做成Atlas,如何做Atlas转载 2015-08-29 11:11:16 · 458 阅读 · 0 评论 -
on duplicate key update简单使用
今天做项目的时候遇到了一个这种情况,就是可能要对某个数据表频繁的更新,如果更新的条目在数据表中就更新,如果不再数据表中就插入这条记录那么问题来了,传统的做法都是首用主键去查询数据表,如果数据表中有这条记录,则更新这条记录,如果没有,则讲这条记录插入到表中,这就需要三条sql语句来完成:例如一下数据表:+-----------+---------+------+-----+-----原创 2015-09-17 18:53:40 · 493 阅读 · 0 评论 -
再谈网游同步技术:实时动作游戏同步方式和传输协议选择
实时动作游戏在近年来得到迅猛的发展。而游戏同步问题,成为大家继续解决的核心问题之一。早在 2004年,国内游戏开发还处于慢节奏 RPG满天飞的情况下,我就开始实时动作游戏研究。分别在 2005-2006期间写了一系列相关文章,被好多网站转载: 帧间同步模式:《帧锁定同步算法》(2007):http://www.skywind.me/blog/archives/131 玩法规避转载 2016-03-24 18:48:44 · 1166 阅读 · 0 评论 -
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 · 442 阅读 · 0 评论 -
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 · 980 阅读 · 0 评论 -
cocos2dx在不同安卓机型下scrollview裁剪失败
最近项目上遇到个问题一直困扰着我,我用cocossstudio做了一个uiscrollview,结果在pc和大部分安卓手机上都能完美运行,但是在有些机型(我用小米4,三星S5, HTC one)上scrollview裁剪会失败,在上面划出显示区域仍然显示,为了解决这个问题,我上网查,各种试,问群里的大牛,最终终于找到了解决的办法。其实办法很简单,就是在代码中加注一句:setClippi原创 2015-04-13 18:31:09 · 1435 阅读 · 0 评论 -
Cocos2Dx之处理键盘输入
键盘输入在Cocos2Dx分为两个部分。第一部分是一些功能键的处理:后退键和菜单键。第二部分是处理字符输入。功能键相关的代码位于cocos2dx\keypad_dispatcher。字符输入的代码位于\cocos2dx\text_input_node。我们先看功能键的处理部分。功能键的处理比较简单,只是支持后退键和菜单键。而且功能键的支持只是对WP和Android有效。功能键部分的类关系如转载 2015-03-04 15:32:11 · 1547 阅读 · 0 评论 -
cocos2dx win32下的MainLoop分析(启动流程)
大家都知道,游戏其实就是在死循环中无限绘制,渲染的过程,里面参杂了许多操作,接下来在win32中查看一下cocos2dx的循环过程float dt; while (1) { ... update(dt); //通过时间差更新数据 present(dt);//通过时间差呈现、绘制游戏画面 ... } 所我是用VS在WIN32平台下查看,原创 2015-03-25 17:45:29 · 635 阅读 · 0 评论 -
cocos2d-x调度器原理,mainloop的Update
程序运行后每达到一帧的时间间隔就会执行一次mainLoopvoid CCDisplayLinkDirector::mainLoop(void){//判断是否需要释放CCDirector,通常游戏结束才会执行这个步骤 if (m_bPurgeDirecotorInNextLoop) { m_bPurgeDirecotorInNextLoop = false转载 2015-03-26 16:52:32 · 524 阅读 · 0 评论 -
什么时候用removeUnusedSpriteFrames和removeUnusedTextures
在一个使用cocos2d的项目中,当切换关卡或者说切换layer时,经常需要释放上一个关卡或者layer中使用的图片资源,这个时候需要用到下面两个函数:[CCSpriteFrameCache sharedSpriteFrameCache] removeUnusedSpriteFrames];[CCTextureCache sharedTextureCache] removeUnus转载 2015-03-30 10:24:47 · 2135 阅读 · 0 评论 -
场景切换时清理缓存!!CCTextureCache、CCSpriteFrameCache、CCAnimationCache
cocos2d-x中存在3个缓存类,都是全局单例模式。1.CCTextureCache首先是最底层也最有效的纹理缓存CCTextureCache,这里缓存的是加载到内存中的纹理资源,也就是图片资源。其原理是对加入缓存的纹理资源进行一次引用,使其引用计数加一,保持不被清除,其cocos2d-x的渲染机制是可以重复使用同一份纹理在不同的场合进行绘制,从而到达重复转载 2015-04-02 14:08:27 · 841 阅读 · 1 评论 -
如何优化cocos2d/x程序的内存使用和程序大小
评论(9) 收藏 举报目录(?)[+]本站文章均为 李华明Himi 原创,转载务必在明显处注明:转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/iphone-cocos2d/1043.html ☞ 点击订阅 ☜ 本博客最新动态!及时将最新博文通知您!貌似从Hi转载 2015-04-02 16:52:02 · 671 阅读 · 0 评论 -
cocos2d-x性能优化的那些事
年前在对我做的项目做性能优化,虽然在开发中,性能问题是一直关注着的,但是这个东西依然需要在后期做一段时间的优化的,也遇到不少坑,在这里分享下,也记作笔记,另外也欢迎大家有这方面的问题经验在这里讨论。性能的优化主要是亮点,内存的优化和运行效率的优化1.内存的优化 说内存的优化,首先要知道有什么东西会占据程序的内存,可优化的主要是两部分:数据和资源,先说数据,做短连转载 2015-04-02 11:15:27 · 813 阅读 · 0 评论 -
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 · 681 阅读 · 0 评论 -
cocos2dx setVisible 与setEnabled 小实例
初学cocos2dx时总弄不明白setVisible和setEnabled到底哪不一样,于是做一个下方的小例子:首先在一个新场景中创建一个menu CCMenuItemImage *pCloseItem = CCMenuItemImage::create("back.png","back.png",this,menu_selector(GameMain::menuBackCal原创 2014-11-04 22:34:44 · 6879 阅读 · 0 评论