Fork me on GitHub

2012年3月14日

摘要: 二叉树是非线性结构,即每个数据结点至多只有一个前驱,但可以有多个后继。它可采用顺序存储结构和链式存储结构。1.顺序存储结构二叉树的顺序存储,就是用一组连续的存储单元存放二叉树中的结点。因此,必须把二叉树的所有结点安排成为一个恰当的序列,结点在这个序列中的相互位置能反映出结点之间的逻辑关系,用编号的方法从树根起,自上层至下层,每层自左至右地给所有结点编号,缺点是有可能对存储空间造成极大的浪费,在最坏的情况下,一个深度为k且只有k个结点的右单支树需要2k-1个结点存储空间。依据二叉树的性质,完全二叉树和满二叉树采用顺序存储比较合适,树中结点的序号可以唯一地反映出结点之间的逻辑关系,这样既能够最大可 阅读全文
posted @ 2012-03-14 19:22 pengyingh 阅读(38647) 评论(1) 推荐(3)
摘要: 动态规划,Dijkstra算法,A*算法的框架是相同的,不同点仅在于“推进点的选取”和“算法终止条件”。一,动态规划:(参见http://blog.csdn.net/iwantnon/archive/2009/07/07/4329269.aspx)推进点选取:(1),在粗犷的动态规划算法中:根本不进行选择,而是对所有已存在节点全部推进一遍。这可能造成如下两点浪费:[1],重复推进:对某点v已经作了推进,而下一次在其valu值没有发生更改的情况下又一次对它进行推进,显然这第二次推进得不到任何新东西,所以是白费的。[2],推进失效:对某点v作了推进以后,又对点u作推进,而u恰好将点v的valu值刷 阅读全文
posted @ 2012-03-14 19:03 pengyingh 阅读(2073) 评论(0) 推荐(1)
摘要: 6、教你从头到尾彻底理解KMP算法作者:July、saturnma 时间;二零一一年一月一日-----------------------本文参考:数据结构(c语言版) 李云清等编著、算法导论作者声明:个人July 对此24个经典算法系列,享有版权,转载请注明出处。引言:在文本编辑中,我们经常要在一段文本中某个特定的位置找出 某个特定的字符或模式。由此,便产生了字符串的匹配问题。本文由简单的字符串匹配算法开始,再到KMP算法,由浅入深,教你从头到尾彻底理解KMP算法。来看算法导论一书上关于此字符串问题的定义:假设文本是一个长度为n的数组T[1...n],模式是一个长度为m<=n的数组P[ 阅读全文
posted @ 2012-03-14 19:00 pengyingh 阅读(370) 评论(0) 推荐(0)
摘要: 红黑树算法的层层剖析与逐步实现----作者July二零一零年十二月三十一日本文主要参考:算法导论第二版本文主要代码:参考算法导论。本文图片来源:个人手工画成、算法导论原书。推荐阅读:Leo J. Guibas 和 Robert Sedgewick 于1978年写的关于红黑树的一篇论文。--------------------------------------------------------------红黑树系列,四篇文章于今日已经完成。[二零一一年一月九日]教你透彻了解红黑树:http://blog.csdn.net/v_JULY_v/archive/2010/12/29/610563. 阅读全文
posted @ 2012-03-14 18:55 pengyingh 阅读(416) 评论(0) 推荐(0)
摘要: 4、教你通透彻底理解:BFS和DFS优先搜索算法作者:July二零一一年一月一日---------------------------------本人参考:算法导论本人声明:个人原创,转载请注明出处。ok,开始。翻遍网上,关于此类BFS和DFS算法的文章,很多。但,都说不出个所以然来。读完此文,我想,你对图的广度优先搜索和深度优先搜索定会有个通通透透,彻彻底底的认识。---------------------咱们由BFS开始:首先,看下算法导论一书关于 此BFS 广度优先搜索算法的概述。算法导论第二版,中译本,第324页。广度优先搜索(BFS)在Prime最小生成树算法,和Dijkstra单源 阅读全文
posted @ 2012-03-14 18:43 pengyingh 阅读(18445) 评论(0) 推荐(0)
摘要: 作者July二零一零年十二月三十一日本文参考:微软面试100题系列V0.1版第19、56题、算法导论、维基百科。ok,咱们先来了解下什么是动态规划算法。动态规划一般也只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地说,问题能够分解成子问题来解决。动态规划算法分以下4个步骤:1.描述最优解的结构2.递归定义最优解的值3.按自底向上的方式计算最优解的值 //此3步构成动态规划解的基础。4.由计算出的结果构造一个最优解。 //此步如果只要求计算最优解的值时,可省略。好,接下来,咱们讨论适合采用动态规划方法 阅读全文
posted @ 2012-03-14 18:38 pengyingh 阅读(6754) 评论(0) 推荐(0)
摘要: 经典算法研究系列:二、Dijkstra算法初探July 二零一一年一月======================本文主要参考:算法导论 第二版、维基百科。写的不好之处,还望见谅。本经典算法研究系列文章,永久勘误,永久更新、永久维护。 July、二零一一年二月十日更新。------------------------------------一、A*搜索算法三、dynamic programming二、Dijkstra 算法五(续)、教你透彻了解红黑树五、红黑树算法的实现与剖析六、教你从头到尾彻底理解KMP算法四、BFS和DFS优先搜索算法---------------------------- 阅读全文
posted @ 2012-03-14 18:31 pengyingh 阅读(8187) 评论(0) 推荐(1)
摘要: 作者:July、二零一一年一月----------------------------------博主说明:1、本经典算法研究系列,此系列文章写的不够好之处,还望见谅。2、本经典算法研究系列,系我参考资料,一篇一篇原创所作,转载必须注明作者本人July及出处。3、本经典算法研究系列,精益求精,不断优化,永久更新,永久勘误。欢迎,各位,与我一同学习探讨,交流研究。有误之处,不吝指正。-------------------------------------------引言 1968年,的一篇论文,“P. E. Hart, N. J. Nilsson, and B. Raphael. A form 阅读全文
posted @ 2012-03-14 18:27 pengyingh 阅读(876) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.raywenderlich.com/3664/opengl-es-2-0-for-iphone-tutorial 免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发表该翻译稿之人无任何关系。谢谢合作! ps:非常感谢skingTree为我们提供的这篇翻译教程,感谢yy、小狼、北方加入我的教程翻译团队,谢谢你们!教程截图:OpenGL ES 是可以在iphone上实现2D和3D图形编程的低级API。 如果你之前接触过 cocos2d,s... 阅读全文
posted @ 2012-03-14 18:19 pengyingh 阅读(358) 评论(0) 推荐(0)
摘要: 看到很刚开始开发iPhone软件的朋友问很多问题,其实同样的问题我也碰到过, 所以抽时间把能想到的或者碰到的问题汇总一下, 一来可以给自己做个备忘也可以和朋友们分享探讨。1. iPhone SDK 开发能不能使用C / C++ 语言?Answer:iPhone SDK的开发的基础框架是基于cocoa库的,Objective-C 是cocoa的开发语言, 但基于Objective-C的特性,在iPhone程序中可以使用C/C++进行功能开发以及使用第三方C/C++库。2. 如何才能使用 C /C++?Answer: 当你需要使用C/C++时, 可以将类实现的文件名改为.mm, 这样编译器就知道改 阅读全文
posted @ 2012-03-14 16:35 pengyingh 阅读(447) 评论(0) 推荐(0)
摘要: 最近几天一直在啃cocos2d,消化了不少东西,基本可以有些把握下手写公司的游戏了;那么今天就把一些重点的拿出来分享下经验,给新童鞋们作为参考;这篇就来详细介绍下cocos2d对用户触屏的监听事件进行下分析(cocos2d有很多详细的文章和教程,我这里只是出于自己的理解来说)进入正题:从整体cocos2d对触屏的事件监听可以分为两种:1.单一监听,所谓单一监听其实是跟cocos2d引擎框架有关,因为在cocos2d中每个游戏界面都可以使用一个CCLayout完成,那么当一个CCLayout在屏幕显示出来后,想要监听用户的按键事件,一般都会使用以下形式来进行监听:(注意:这里是CCLayout类 阅读全文
posted @ 2012-03-14 16:32 pengyingh 阅读(206) 评论(0) 推荐(0)
摘要: 1. 添加到map view的子视图不会随地图的移动而移动,map view会固定其子视图的位置。如果要添加随着地图移动的子视图,可以使用annotations和overlays。annotation用来显示由一个经纬度定义的位置,而overlay则是由多个点所定义或者包含了许多连续的图形。2.在地图上显示annotation,需要提供两个对象annotation object)annotation view.)注释对象通常是一些小的数据对象,保存了地图的坐标和一些相关信息。Map Kit提供了一些标准的注释视图,你也可以使用自定义的注释视图。但是不能将注释视图直接添加到map view,而是 阅读全文
posted @ 2012-03-14 16:22 pengyingh 阅读(450) 评论(0) 推荐(0)
摘要: 原文地址:http://ofps.oreilly.com/titles/9780596804824/chmath.html 译文地址:http://blog.csdn.net/favormm/article/details/6920318***************************************************************************第二章:数学与抽象 计算机图形领域比计算机其它领域对数学的要求都高,如果你想成为一个合格的OpenGL程序员,那么你得撑握线性代数,并能抽象一些内容。 在本章,我将解释这些抽象内容与回忆线性代数的内容。其中Ope 阅读全文
posted @ 2012-03-14 16:20 pengyingh 阅读(510) 评论(0) 推荐(0)
摘要: 用xCode编译OpenGL的模板应用程序 当第一次打开Xcode的时候,它会弹出一个欢迎对话框。选择上面的Create a new Xcode project按钮。(如果你的对话框被关闭了没有显示出来,那么可以选择菜单里的File->New Project来创建新工程。)现在你会有一个如图1.2的对话框出现,它包括Xcode提供的工程模版。我们要用到的是OpenGL ES Application这个模版,注意到没,它是在iPhoneOS这一栏下面。这个模版并没有什么特别的,只不过它支持OpenGL,作为一个新手,选择它是明智的。图1.2 选择模版后,会有一个对话框要求你输入工程名字。完 阅读全文
posted @ 2012-03-14 16:07 pengyingh 阅读(1992) 评论(0) 推荐(0)
摘要: 核心动画 CoreAnimation第一章 核心动画概念核心动画,开发人员可以为他们的应用创建动态用户界面,而无需使用低级别的图形 API,如 OpenGL 来获取高效的动画性能。前言,核心动画的好处1.简单易用的高性能混合编程模型。2.类似视图一样,你可以通过使用图层来创建复杂的接口。 通过是CALayer来使用更复杂的一些动画。 3.轻量级的数据结构,它可以同时显示并让上百个图层产生动画效果。 控制多个CALayer来显示动画效果 4.一套简单的动画接口,可以让你的动画运行在独立的线程里面,并可以独立于主线程之外。5.一旦动画配置完成并启动,核心动画完全控制并独立完成相应的动画帧。6... 阅读全文
posted @ 2012-03-14 15:39 pengyingh 阅读(27363) 评论(0) 推荐(1)
摘要: 首先需要引入AudioTool 这个framework- (id)initWithPath:(NSString *)path{ UInt32 size, maxPacketSize; char *cookie; int i; if (gThereIsAnActiveTrack) { NSLog(@"*** WARNING *** GBMusicTrack only plays one track at a time! You must close the previously running ... 阅读全文
posted @ 2012-03-14 15:23 pengyingh 阅读(442) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.iphonegametutorials.com/2010/09/14/cocos2d-sprite-tutorial-part-3/ 我们在第2部分教程中已经介绍了如何让dragon沿着8个不同的方向移动,并且播放相应的动画,同时,移动过程可以由用户touch屏幕来控制。cocos2d很酷吧!好了,今天我们将多干点活,我们将创建一大批村民--实际上是N个村民。我们会使用我们已经学习过的技术,从spritesheet里面加载精灵,同时建立相应的精灵动画。 这里有本教程的完整源代码。 那么,我们到底要做成什么样子呢---看了下面的图就明白了:上面加载了好多... 阅读全文
posted @ 2012-03-14 15:04 pengyingh 阅读(354) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.iphonegametutorials.com/2010/09/10/cocos2d-sprite-tutorial-part-2/ 上一篇教程中,我们留下了我们孤独的dragon在屏幕中间。。。然而,90%的动画并没有应用到,那可是我们花了很大力气才建立好的呀!太遗憾了!所以,我们这篇教程要弥补这个缺憾。我们将添加touch控制,以此来捕获用户的输入,并根据用户手指的方向来选择一个合适的动画给dragon播放。你就可以用手在屏幕上滑动来指挥dragon移动了。 这里有本教程的完整源代码。 对于cocos2d来说,如果你想要使用touch控制的话,... 阅读全文
posted @ 2012-03-14 14:59 pengyingh 阅读(274) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.iphonegametutorials.com/2010/09/10/cocos2d-sprite-tutorial/教程截图: 前言:CocoaChina上有位网友问我能不能翻译一些比较高级的文章。首先,非常感谢这位网友的建议。之前翻译的3篇菜单教程,相比于前面TinyWings来说,确实显得有点小儿科了。但是,需要说明的是,那三篇菜单教程是后面教程的基础。在iphonegametutorials这个网站上,作者会引用到前面的文章。所以今天,我还是会翻译三篇“小儿科”的文章。不过希望大家还是耐着性子看一遍,权当温故知新。如果大家觉得哪些主题比较感兴趣,麻. 阅读全文
posted @ 2012-03-14 14:55 pengyingh 阅读(576) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.iphonegametutorials.com/2010/09/07/cocos2d-menu-tutorial-part-3/ 现在,我们已经在菜单上面做了大量文章了。可能你会问,我们还能干嘛?耐心点,我的朋友!今天我们将接触menu item的图片。很期待吧?呵呵 老实说,如果你没有图片资源,你啥事也做不好。你真的需要一些教程来教你如果为菜单定制图片,这也是这篇教程的来由。 这里有本教程的完整源代码。 好了,我们这次要完成哪些内容呢---下面是今天的日程表:为所有已经存在的Layer添加一个BaseLayer作为背景。给“Start Game”和... 阅读全文
posted @ 2012-03-14 14:48 pengyingh 阅读(307) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.iphonegametutorials.com/2010/09/07/cocos2d-menu-tutorial-part-2/ 如果你还没有阅读过第一篇教程的话,那么我建议你在继续之前,回过头去完成第一部分教程再回来。 今天,我们将在上一篇教程之上添加一些东西,同时,我们会用到动画和layer之间的切换效果(transition)。 这里有本教程的完整源代码。 好了,正式出发吧!第一步,就是整理一下我们将要实现些什么东西。如果在编码之前,你不做任何的计划的话,那么你什么也做不成!下面是我们这篇教程将要实现的功能特性列表:为credit场景和play... 阅读全文
posted @ 2012-03-14 14:43 pengyingh 阅读(255) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.iphonegametutorials.com/2010/09/07/cocos2d-menu-tutorial/ 今天,我将带大家一起征服cocos2d的菜单。你不可能会做一个游戏而缺少菜单功能吧?cocos2d使得制作菜单变得非常简单。但是,在我们开始之前,需要确保构建一个系统,它非常容易扩展,以后制作任何游戏都可以用到,它就是我们即将创建的“场景管理器”(Scene Manager)。 这里有本教程的完整源代码 你可以去cocos2d官网上下载最新版本:http://www.cocos2d-iphone.org/download。目前最新版本是1... 阅读全文
posted @ 2012-03-14 14:33 pengyingh 阅读(229) 评论(0) 推荐(0)
摘要: 源地址:http://www.cocoachina.com/blog/blog.php?do=showone&uid=4039&type=blog&cid=&itemid=927一、 HelloWorld开始之前,我假想你已经看过了HelloWorld的源代码,并看了用户手册中关于HelloWorld的相关说明,而且已经大致明白了大多数内容。其实HelloWorld已经用极其简单的语言向你描述了Box2D物理引擎的运作机制,我们可以归纳一下步骤:1、建立一个世界,这个世界基于一个b2AABB框,并设立了一个g值和一个是否允许休眠的bool型变量。2、 建立一个静 阅读全文
posted @ 2012-03-14 14:10 pengyingh 阅读(1533) 评论(0) 推荐(0)
摘要: 网上有不少弟兄在使用box2d做为物理引擎;自己也是最近才学。box2d的确是一个不错的2D物理引擎,无论是功能还是效率,可以说是把as3发挥到了及至,运行起来还是蛮流畅的。尽管学起来有点吃力(APE学起来比较容易,但是模拟出来的物理效果不好看,不能跟box2d相比,也没有box2d的功能强大),不过若是上手了就没那么难了;做起游戏来也是很容易的。 刚开始学box2d时也费了好大劲,到现在还是有好多要学的;不过,总算上手了。刚开接触box2d,经常把引擎的世界坐标与flash的舞台坐标搞混。不知道是世界坐标还是舞台坐标,后来总算是明白了。真是汗呀!现在做个总结,望能够给初学的弟兄们一些帮助。 阅读全文
posted @ 2012-03-14 14:06 pengyingh 阅读(2216) 评论(0) 推荐(0)
摘要: box2d 刚体碰撞设定方法 fixtureDef.filter.categoryBits指自己所属的碰撞种类,fixtureDef.filter.maskBits指与其碰撞的种类;b2FixtureDef fixtureDef;注意 fixtureDef.filter.categoryBits 的值必须是2的倍数,假如有两个body 他们的 filter.categoryBits分别为2,4,则另一个body要想与他们两个都发生碰撞,则其filter.maskBits应该为: 2+4= 6. 对于fixtureDef.filter.groupIndex 属性: 当其为负值时,表示该组的对象不 阅读全文
posted @ 2012-03-14 14:04 pengyingh 阅读(1585) 评论(0) 推荐(0)
摘要: 这段是b2Island.as的方法..//if (minSleepTime >= b2Settings.b2_timeToSleep)这个是BOX2D原来的判定...b2Settings.b2_timeToSleep指向的值是0.5minSleepTime 是根据时间步的值来增加的..如果只有一个刚体..时间步是1/24的话..即使要休眠也达不到0.5的要求..b2Settings.b2_timeToSleep的意思是最小休眠时间....不过0.5一样还有问题...于是我就把这段函数改了下..增加了两句:var needSleep:Boolean = true;needSleep = c 阅读全文
posted @ 2012-03-14 14:02 pengyingh 阅读(498) 评论(0) 推荐(0)
摘要: 原文链接地址:http://www.raywenderlich.com/606/how-to-use-box2d-for-just-collision-detection-with-cocos2d-iphone程序截图:当你使用cocos2d来制作一个游戏的时候,有时,你可能想使用cocos2d的action来移动游戏中的对象,而不是直接使用Box2d物理引擎来做。然而,这并不是说你不能使用box2d提供的强大的碰撞检测功能! 这个教程的目的,就是一步一步地向你展示如何仅使用box2d来做碰撞检测---没有物理效果。我们将创建一个简单的demo,里面有一辆车在屏幕上奔驰,当它撞到一只猫后就会. 阅读全文
posted @ 2012-03-14 13:29 pengyingh 阅读(787) 评论(0) 推荐(0)
摘要: 前言:大家,可能用惯了图形化的IDE…不太熟悉这种命令行式的IDE工具..对于,c/c++编译,链接和调试就不太熟悉..所以..写了个简单教程…mingw的环境搭建:1,下载mingwhttp://sourceforge.net/projects/mingw/files/2.mingw有可能需要配置一些环境变量,最新版本应给直接帮你配置好环境变量了,如果没有可以参照下面 配置环境变量: 打开:“我的电脑->属性->高级->环境变量->系统变量”编辑如下系统变量: 变量名 变量值 PATH f:\MinGW\bin; LIBRARY_PATH f:\MinGW\lib C 阅读全文
posted @ 2012-03-14 13:15 pengyingh 阅读(676) 评论(0) 推荐(0)
摘要: package { import flash.display.MovieClip; import Box2D.Dynamics.*; import Box2D.Collision.*; import Box2D.Collision.Shapes.*; import Box2D.Common.Math.*; import flash.events.Event; import flash.display.Sprite; import flash.events.MouseEvent; ... 阅读全文
posted @ 2012-03-14 12:36 pengyingh 阅读(1778) 评论(0) 推荐(0)
摘要: APE不行,做点简单的撞球,台球之类游戏还行。我最开始用他实验性做了个简单的基于物理引擎的泡泡龙类游戏,发现稍微多一点的几何体堆叠在一起就会产生渗透现象,没办法只好更改最初的设计。要专注做物理游戏,还是要精通box2d才行,而且box2d几乎任何主流语言都有它的版本。所以建议不要学APE,除非你只是想做点简单的撞球,jump,卡车模拟类游戏。box2d 也会穿透 不过比APE的确好多了目前网络上使用较多的2D物理引擎是Box2D和APE,其他引擎要么没有更新了,要么不成熟。 阅读全文
posted @ 2012-03-14 12:32 pengyingh 阅读(356) 评论(0) 推荐(0)
摘要: Box2dの学习资料整理与收集[不定时更新][Ispooky] 阅读全文
posted @ 2012-03-14 12:31 pengyingh 阅读(262) 评论(0) 推荐(0)
摘要: 挺早之前看到过的小游戏,超级积木2,在开心网、QQ校友、空间传得挺多的,闲来没事就试着把它做出来,感觉还挺简单的,就仅仅使用了Box2D引擎中的创建刚体而已点击这里下载源码游戏规则就是把所有的积木摆放在舞台上并保持10S不倒下就算过关了要制作一个Box2D游戏,最重要的还是了解它的运作机制1package 2{3 import Box2D.Collision.b2AABB;4 import Box2D.Collision.Shapes.b2PolygonDef;5 import Box2D.Common.Math.b2Vec2;6 import Box2D.Dynamics.b2Body;7 阅读全文
posted @ 2012-03-14 12:29 pengyingh 阅读(1132) 评论(0) 推荐(0)
摘要: 注:点击鼠标添加Body,R键清空Body 原来博客园要注册才能看到swf的,附有截图package {import Box2D.Collision.b2AABB;import Box2D.Collision.Shapes.b2CircleDef;import Box2D.Collision.Shapes.b2PolygonDef;import Box2D.Common.Math.b2Math;import Box2D.Common.Math.b2Vec2;import Box2D.Common.Math.b2XForm;import Box2D.Dynamics.b2Body;import. 阅读全文
posted @ 2012-03-14 11:52 pengyingh 阅读(1174) 评论(0) 推荐(0)
摘要: 最近在研究Box2D光是贴图就研究了很长时间直接入题目的 是想让游戏角色或者说动作与逻辑代码相分离目前的看到网上的例子都是直接使用fla文件里面的MovieClip来实现而这种情况下,使用这个角色对象的话,逻辑代码就要写到fla文件中或者是fla关联.as类文件这样的话在纯AS代码来说不容易调试如下是自己总结的解决方案自己写的角色类用于调试,在不贴图的情况下,使用Box2D的showDebug可以方便的调试游戏,而又不影响调试和逻辑代码的使用那么这个角色类要给予最基本的Sprite里面存储一个Movie对象我们通过Loader来加载外部的swf资源文件,这样实现资源文件 影片剪辑与代码的分离我 阅读全文
posted @ 2012-03-14 11:48 pengyingh 阅读(510) 评论(0) 推荐(0)

导航