以下是我所想要得到的效果:
但我实际得到的却是这么个玩意儿:
找了很久很久,起初还以为是弄乱了opengl的状态机,
但是其他元素的渲染却并没有出什么问题啊,很奇怪,很纠结,很揪心。。
-(void) drawPolygon:(b2Fixture*)fixture xf:(b2Transform)xf color:(b2Color)color
{
b2PolygonShape *poly = (b2PolygonShape*)fixture->GetShape();
int32 vertexCount = poly->m_vertexCount;
b2Vec2 vertices[b2_maxPolygonVertices];
for (int32 i =
0; i < vertexCount; ++ i) {
vertices[i] =b2Mul(xf, poly->m_vertices[i]);
vertices[i] +=b2Vec2(0.5f,30.0f -0.5f);
vertices[i] *=_gCfg.multiplyFactor /4;
}
glColor4f(color.r, color.g, color.b,_littleMapContentOpacity);
glVertexPointer(2,
GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLE_FAN,0, vertexCount);
}
后来发现是因为_littleMapContentOpacity这个成员变量在init方法里面没有被赋初值,着实害死我不少脑细胞~
// BYRender.h
@interface BYRender :NSObject {
GCfg *_gCfg;
BOOL _isCutLineValid; // 切割不合格的话会产生一道红色的残影线~
int _durationTimes;
float _touchPathMaxWidth;
float _littleMapContentOpacity; // 小地图内容的透明度~
int _cutLineDurationTimes;
}
@propertyBOOL isCutLineValid;
@propertyfloat touchPathMaxWidth;
@propertyfloat littleMapContentOpacity;
@propertyint cutLineDurationTimes;
......
// BYRender.mm
#import"BYRender.h"
@implementation BYRender
@synthesize isCutLineValid =_isCutLineValid;
@synthesize touchPathMaxWidth =_touchPathMaxWidth;
@synthesize littleMapContentOpacity =_littleMapContentOpacity;
@synthesize cutLineDurationTimes =_cutLineDurationTimes;
+ (BYRender*) getInstance {
staticBYRender *instance;
@synchronized(self) {
if (!instance) {
instance = [[BYRenderalloc]init];
}
}
return instance;
}
- (id) init {
if ((self = [superinit])) {
_gCfg = [GCfg
getInstance];
_isCutLineValid =YES;
_durationTimes =0;
_littleMapContentOpacity = [_gCfgffk:@"littleMapContentOpacity"];
}
returnself;
}
......
还有一个要注意的问题:
(有些小细节不注意影响到了程序逻辑的话,找起来是很费劲的,必须要未雨绸缪)
在判断 NSString 是否等于 @"" 之前,最好还是先判断一下其是否为 nil~
if(valueStr!=nil && ![valueStr isEqualToString:@""]) {}
分享到:
相关推荐
这儿的运行时系统扮演的角色类似于Objective-C语言的操作系统,Objective-C基于该系统来工作。本文档将具体介绍NSObject类以及Objective-C程序是如何和运行时系统交互的。特别地,本文档还给出来怎样在运行时动态地加
Objective-C Boolean 变量 具体内容,请参考苹果开发者 Mike 的博文http://blog.sina.com.cn/s/blog_7aa21f320100r6ux.html
Objective-C语言的许多决策可以在编译和运行时执行。只要有可能,它是动态的。这意味着Objective-C语言不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。Runtime系统是一种用于Objective-C语言的操作系统...
《objective-c程序设计》通过大量的实例系统地介绍了objective-c语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读《objective-c程序设计》后,可以掌握objective-c语言的基本内容,并进行实际的iphone/...
希望这个简单的Objective-C语言教程能够为你提供一个入门的起点。Objective-C是一种面向对象的编程语言,广泛应用于Mac OS和iOS开发。通过学习Objective-C的基本语法、类和对象、控制流程和方法等内容,你将能够编写...
《Objective-C 程序设计(第4版)》作者假设读者没有面向对象程序语言或者C语言(Objective-C基础)编程经验,因此,初学者和有经验的程序员都可以使用这本《Objective-C 程序设计(第4版)》学习Objective-C。...
详解Objective-C中变量和数据类型.doc )详解Objective-C中变量和数据类型.doc )详解Objective-C中变量和数据类型.doc )
C语言主要知识点巩固(学习Objective-C 的前提),PPT格式。
用Objective-C语言实现了各种设计模式,收集各种例子,方便大家学习和普及设计模式。.zip用Objective-C语言实现了各种设计模式,收集各种例子,方便大家学习和普及设计模式。.zip用Objective-C语言实现了各种设计...
本书全面而系统地讲述Objective-C语言的基础知识和面向对象编程的重要概念,结合实例介绍了Cocoa工具包的优秀特性和其中的框架,以及继承、复合、源文件组织、内存管理、对象初始化和类别创建等众多重要的面向对象...
中文名: Objective-C基础教程 作者: Mark Dalrymple Scott Knaster译者: 高朝勤 杨越 刘霞图书 分类: 软件 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社 书号: ISBN: 9787115208774 发行时间: 2009...
The book makes no assumptions about prior experience with object-oriented programming languages or with the C language (which Objective-C is based upon). Because of this, both beginners and ...
在windows系统下搭建Objective-C开发环境,由于公司要做iphone开发,个人学习objc(Objective-C)语法,所以在windows7下搭建了一个objc开发环境,现把自己整理的帮助文档拿来与大家分享,希望能对大家有所帮助。...
elcome to Learn Objective- C on the Mac! This book is designed to teach you the basics of the Objective- C language. Objective- C is a superset of C and is the language used by many (if not most) ...
Objective-C是扩展C的面向对象编程语言,也是iPhone开发用到的主要语言。本书结合理论知识与示例程序,全面而系统地讲述Objective-C编程的相关内容,包括Objective-C在C的基础上引入的特性和Cocoa工具包的功能及其中...
Objective-C高级编程 iOS与OS X多线程和内存管理.pdf
资源里面包含Objective-C 2.0程序设计 原书中文版第2版及代码,还包含Effective Objective-C 2.0英文版完整的电子书
这是一个基于Objective-C语言的基础案例集。旨在用于给初学者快速了解Objective-C语言的语法。.zip
Objective-C将两个数字相加后存入变量,然后显示变量的值