Fork me on GitHub

2012年3月9日

摘要: 最近在尝试写一个类似于打地鼠的游戏,遇到了小小的困难,主要是老鼠坐标无法存储,手点了之后,不只如何通过坐标的方式遍历并且消失,或者是相关的动作。从Throw too代码中,学习了一点XML存储并操作,以达到对关卡地图等的绘制。分享下。首先放出XML格式<thrown map="level 1" author="orta" throws="1"> 2 <!-- important details --> 3 <background file="default"/> 4 <pl 阅读全文
posted @ 2012-03-09 23:59 pengyingh 阅读(195) 评论(0) 推荐(0)
摘要: chipmunk是一个开源2D物理引擎,项目主页:http://code.google.com/p/chipmunk-physics/工作需要研究了一下,这个引擎的资料还是不多,我阅读了所有的文档,7个demo,和一个教学程序,得出如下一些理解。一,基本概念space: 发生物理模拟的空间,可容纳body, shape,jointbody:刚体,可被赋予shape。刚体具有质量,转动惯量,位置,线性速度,加速度,角度,角速度,角加速度等属性。刚体之间可通过joint连接shape:决定刚体的碰撞外形。一个刚体上可覆盖上多个shape,同属于一个刚体的shape不会互相发生碰撞。shape同样需 阅读全文
posted @ 2012-03-09 23:51 pengyingh 阅读(8758) 评论(0) 推荐(0)
摘要: Evaluating the results 对值进行评估所有的代码和规则都有一个对象,物理模拟器。你可能通过一半的code就已经得到了同样的准确的结果,但是我们来阐述一下为什么使用Chipmunk是一个很好的选择。Try changing the friction of all the floor's shapes from 0.1 to 0.5. Run the code, the fall will now lose more velocity.Try increasing or decreasing the gravity and/or the ball's mass 阅读全文
posted @ 2012-03-09 23:43 pengyingh 阅读(198) 评论(0) 推荐(0)
摘要: 在cocos2d中,我们大多时间需要对时间或者是所取得的分数进行显示,比如得到了一定的奖励之后,会对分数有所增加。显示必须有一个分数的png的Sprite源图片,除此之外,还需要有一个fnt文件,对里面分数的位置进行标识。1。一个png源这不用说了,一张图片上比如,依次显示01234567892。fnt文件名字和图片名字一致,扩展名不同infoface="EurostileBold"size=32bold=1italic=0charset=""unicode=0stretchH=100smooth=1aa=1padding=0,0,0,0spacing= 阅读全文
posted @ 2012-03-09 23:38 pengyingh 阅读(470) 评论(0) 推荐(0)
摘要: Tracking the Ball's movements 跟踪球体的运动目前还没有代码连接到Chipmunk的模拟器上,上图片正常的运行。只有当扩展相应的方法之后,通过Chipmunk同步更新图像的位置才可以。这个过程可以通过多种途径来实现,例如,存储一个需要检查的点的集合。但是很幸运的是,Chipmunk设计了一个非常简单而抽象的过程让其轻松实现。接下来的这段代码就是我们需要写一次并且很少需要更新的,除非其中有一个或者某一个细节从这里移除了。所以,在创建一个形体shape的最后一步,将会连接到一个特殊的body上,所以我们同样要在同一个shape里面存储一个UIImageView的 阅读全文
posted @ 2012-03-09 23:33 pengyingh 阅读(360) 评论(0) 推荐(0)
摘要: Defining the ball's body and shapes定义一个body,同样是一个简单的过程,虽然他需要一些物理方面的知识。Chipmunk 有一个非常方便的函数,cpBodyNew(mass, moment); 它包含了所有的初始化条件和body所包含的东西。通常情况下,剩下的我们需要的就是设置body的位置了。所以,接下来的代码会定义一个球体的body,这是他的位置,并且把他添加到我们的space当中,把接下来的code放在setupChipmuck 方法的末尾:// Create our ball's body with 100 mass // and i 阅读全文
posted @ 2012-03-09 23:30 pengyingh 阅读(484) 评论(0) 推荐(0)
摘要: 基本概念现在我们已经setup好了我们的工程,并且已经可以我们正式的学习Chipmunk之旅了。开始这个之前,我们需要学习一些基本的Chipmunk概念,知道他是如何组织的。在开始模拟一个现实世界的物理现象之前,你需要你新的为一个规则,并且你需要创建一个容器,成装你所有的对象。Chipmunk叫做Space。出了这些基本规则以外,他同样扮演一个所有对象的容器,你将会创建一个模拟器,来使得他们正确表现。定义任何一个对象,你都需要定义他的Mass也就是孩子两,和他的其它选项。这是一个Chipmunk里面叫做Body的概念。一个body在和其他的物体产生交互的时候自身不会产生碰撞,因为他没有形状‘s 阅读全文
posted @ 2012-03-09 23:29 pengyingh 阅读(310) 评论(0) 推荐(0)
摘要: Setup在我们开始实际的应用之前,这有很项目需要设置的步骤,之后我们才能专注于Chipmunk。打开XCode,然后建立一个新的工程,使用‘View-Based’应用程序模板,这会建立一个简单的应用程序,启动应用之后,有个view会被显示出来。我们通用需要导入Chipmunk文件,这个任务将分几步完成,包括创建一个静态的库,并且连接向我们的工程。在这个例子中,我们简单的拷贝我们需要的文件到工程文件夹中。然后下载最新的Chipmunk代码,解压缩,这个文件夹将会包含多个文件,例子以及文档,但是我们只需要关注src文件夹里面的内容。在导入这些文件之前,我建议你创建一个新的group,在other 阅读全文
posted @ 2012-03-09 23:26 pengyingh 阅读(236) 评论(0) 推荐(0)
摘要: 找了些关于loading的资源,贴出来慢慢看。(id) init{ self = [super init]; if ( self ) { // Add the Label (in cocos2D universe) BitmapFontAtlas *label = [BitmapFontAtlas bitmapFontAtlasWithString: @"Initializing Game" fntFile: @"comic_atlas.fnt" alignment: UITextAlig... 阅读全文
posted @ 2012-03-09 23:12 pengyingh 阅读(168) 评论(0) 推荐(0)
摘要: 本来想找一个如何能把HTML的String,解析出来的工具。暂时还没有找到。但是找到一段很不错的code。可以移调里面的标签。- (NSString *)flattenHTML:(NSString *)html { NSScanner *theScanner; NSString *text = nil; theScanner = [NSScanner scannerWithString:html]; while ([theScanner isAtEnd] == NO) { // find start of tag [theScanner sc... 阅读全文
posted @ 2012-03-09 23:06 pengyingh 阅读(182) 评论(0) 推荐(0)
摘要: 本文并不介绍如实去实现a star 算法,也不去介绍什么是a star 算法。如果这方面不太了解了。去文章的末尾两个链接可以先补习一下。本文侧重于在游戏中实际应用。为什么要使用a star 算法:游戏中,我们常常会遇到一些任务或者是怪物的路径移动问题,尤其是有原本的地图的情况下。比如,任务从A走到B,如果直接过去,中间是有条河的,肯定不行。如果绕过去,两侧没有河,一侧是山,一侧是桥,山不能走,挡路,只有桥。 就算任务从桥过去,如何能保证正确的从桥上通过呢?于是我们引入了a star 算法,当然他在游戏中也并不只是这一个应用,只是举例如此引出:我们规定地图,是由一个二维数组组成(当然你说一维也可 阅读全文
posted @ 2012-03-09 23:03 pengyingh 阅读(258) 评论(0) 推荐(0)
摘要: 初始化Chipmunk需要三件事情要去做:初始化它使用一个timer 来让Chipmunk计算模拟器的步骤。创建并且配置Space初始化Chipmunk是很简单的一部分,你只需要调用cpInitChipmunk 函数就行了,把它放在程序初始化的地方。时间的设置,使用一个简单的NSTimer对象,或者一些你想要使用的游戏引擎。也许你要用的Timer就在引擎自身里面。最后,创建一个新的Space,只需要使用cpSpaceNew方法就行了。为了完成这三步,只需要再你的controller文件,引入chipmunk.h头文件就好了。#import "chipmunk.h" 之后,在 阅读全文
posted @ 2012-03-09 23:02 pengyingh 阅读(280) 评论(0) 推荐(0)
摘要: // 画一个圆角矩形CGContextRef contextRef = UIGraphicsGetCurrentContext();CGContextSetRGBStrokeColor(contextRef, 1.0f, 1.0f, 1.0f, 1);CGContextSetLineWidth(contextRef, 20.0f);CGContextAddRect(contextRef, CGRectMake(50.0f, 50.0f, 100.0f, 100.0f));CGContextStrokePath(contextRef);CGLineJoin lineJoin = kCGLineJ 阅读全文
posted @ 2012-03-09 22:55 pengyingh 阅读(474) 评论(0) 推荐(0)
摘要: // 画不规则形状CGContextRef contextRef = UIGraphicsGetCurrentContext();CGContextSetRGBStrokeColor(contextRef, 1.0f, 1.0f, 1.0f, 1); // 填充时用不到CGContextSetLineWidth(contextRef, 2.0f); // 填充时用不到CGFloat components[] = { 1.0f, 0.0f, 0.0f, 1.0f};CGContextSetFillColor(contextRef, components);CGContextMoveToPoint 阅读全文
posted @ 2012-03-09 22:54 pengyingh 阅读(198) 评论(0) 推荐(0)
摘要: // 画矩形和圆形(椭圆也是圆哦) CGContextRef contextRef = UIGraphicsGetCurrentContext();CGContextSetRGBStrokeColor(contextRef, 1.0f, 1.0f, 1.0f, 1);CGContextSetLineWidth(contextRef, 2.0f);CGContextAddRect(contextRef, CGRectMake(50.0f, 50.0f, 200.0f, 100.0f));CGContextAddEllipseInRect(contextRef, CGRectMake(50.0f, 阅读全文
posted @ 2012-03-09 22:52 pengyingh 阅读(404) 评论(0) 推荐(0)
摘要: // 实心圆 实心矩形 CGContextRef contextRef = UIGraphicsGetCurrentContext();CGContextSetRGBStrokeColor(contextRef, 1.0f, 1.0f, 1.0f, 1);CGContextSetLineWidth(contextRef, 2.0f);CGFloat components[] = { 1.0f, 0.0f, 0.0f, 1.0f};CGContextSetFillColor(contextRef, components);CGContextAddRect(contextRef, CGRectMa 阅读全文
posted @ 2012-03-09 22:45 pengyingh 阅读(303) 评论(0) 推荐(0)
摘要: 1,如果视图是从nib中加载的,我们应该首先实现initWithCode:因为nib中的对象实例将存储为归档对象。(某一个view设置为自定义的子view)hitTest代码范例: - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{ for (UIView *tmpView in self.subviews ) { if(tmpView.userInteractionEnabled && [tmpView isMemberOfClass:[UIButton class]]) { ... 阅读全文
posted @ 2012-03-09 22:37 pengyingh 阅读(3843) 评论(0) 推荐(0)
摘要: // 画扇形// 红色部分CGContextRef contextRef = UIGraphicsGetCurrentContext();CGFloat components[] = { 1.0f, 0.0f, 0.0f, 1.0f};CGContextSetFillColor(contextRef, components);CGContextMoveToPoint(contextRef, 150.0f, 150.0f);CGContextAddArc(contextRef, 150.0f, 150.0f, 100.0f, 0 * (M_PI / 180.0f), 120 * (M_PI / 阅读全文
posted @ 2012-03-09 10:13 pengyingh 阅读(261) 评论(0) 推荐(0)
摘要: // 画贝塞尔曲线CGContextRef context = UIGraphicsGetCurrentContext();CGContextSetRGBStrokeColor(context, 255.0f, 255.0f, 255.0f, 1.0f);CGContextMoveToPoint(context, 100.0f, 100.0f); // 端点一CGContextSetLineWidth(context, 2.0f);// (200, 150) 控制点一 (50, 200) 控制点二 (100,300) 端点二//CGContextAddCurveToPoint(context, 阅读全文
posted @ 2012-03-09 10:11 pengyingh 阅读(310) 评论(0) 推荐(0)
摘要: 1、画直线和虚线// 画线CGContextRef contextRef = UIGraphicsGetCurrentContext();// 线边冒的三种类型// CGLineCap. kCGLineCapButt, kCGLineCapRound, kCGLineCapSquareCGLineCap lineCap = kCGLineCapButt;// 线段拐角出设置的三种类型// CGLineJoin. kCGLineJoinMiter(直角), kCGLineJoinRound(圆角), kCGLineJoinBevel(平角)CGLineJoin lineJoin = kCGLin 阅读全文
posted @ 2012-03-09 10:09 pengyingh 阅读(777) 评论(0) 推荐(0)

导航