我花了太多时间试图解决这个问题,根本无法找到可行的解决方案.
情况: 1.手机上会显示"某事"的图片.2.将半透明(例如蓝色)层放置在图像的顶部,完全覆盖它.3.该层中的"洞"存在于该层的该部分是完全透明且可移动的位置.
一个示例可以是缩放效果,您可以在图像周围移动此"洞".在孔内,您可以正常看到图像,而在外面则被半透明层覆盖.注意:我在cocos2d层中实现它,其中图像由CCSprite表示.但是,如果没有使用cocos,那应该没关系.
问题: 我尝试使用CAShapeLayer和位图作为掩码,但没有任何工作(请参阅下面的代码片段).使用CAShapeLayer,我为'hole'创建一个UIBezierPath并将其应用于彩色层.但是,只有孔显示颜色,而其余部分是透明的.使用图像,掩码根本不起作用(我不知道为什么).我甚至尝试过掩盖面具,看看是否可行.我也试过交换颜色......从白色到黑色,以清除填充和背景.
如果存在,一个简单的解决方案是反转UIBezierPath的区域.我也试过剪辑,使用路径...但没有运气.
我希望这简直是愚蠢的,我只是在俯视.也许你们其中一个人会看到这个.我不关心的那个动人的部分.我需要先让实际的面具工作.示例代码忽略了iPhone SDK和openGL之间的y轴差异.
CAShapeLayer示例:
CGSize winSize = [[CCDirector sharedDirector] winSize];
UIImage* img = [UIImage imageNamed:@"zebra.png"];
CCSprite* spr = [CCSprite spriteWithCGImage:img.CGImage key:@"img"];
spr.position = ccp( winSize.width / 2, winSize.width / 2 );
[self addSprite:spr];
UIBezierPath* path = [UIBezierPath bezierPathWithRect:rectHole];
CAShapeLayer* maskLayer = [CAShapeLayer layer];
maskLayer.bounds = [spr boundingBox];
maskLayer.position = spr.position;
maskLayer.fillColor = [UIColor whiteColor].CGColor;
maskLayer.backgroundColor = [UIColor clearColor].CGColor;
maskLayer.path = path.CGPath;
CALayer* colorLayer = [CALayer layer];
colorLayer.bounds = [spr boundingBox];
colorLayer.position = maskLayer.position;
[colorLayer …
Run Code Online (Sandbox Code Playgroud) 如果我有兴趣在iPhone/iPAD上进行游戏开发,那么有哪些技术可以开始研究?事实上,只是关于这些技术的一个简单的子弹,突出它如何适合典型的游戏开发将是伟大的,因为这个问题的原因是我不理解这些如何组合在一起.所以在这种情况下,这些大致适合这里:
我得到的印象是cocos2D将成为可行的方式,它似乎是一个更简单的OpenGL包装器?不知道UIKit vs Core Animation与QuartzCore之间的位置是什么?
我已经将Lua与我的ObjC代码(iphone游戏)集成在一起.设置非常简单,但现在,我对桥接有一点问题.我搜索结果等等......似乎没有任何东西可以在没有修改的情况下工作.我的意思是,我已经检查了luaobjc桥(看起来相当古老和连续),我听说LuaCocoa但它似乎不适用于iPhone,蜡太厚了.
我的需求非常多,我只需要能够从lua调用objc方法,并且不介意做额外的工作以使其工作(我不需要一个完全自动的桥接系统).
所以,我决定自己建立一个小桥,基于这个页面http://anti-alias.me/?p=36.它有关于如何完成我需要的关键信息,但教程没有完成,我对从lua等调用时如何处理方法重载有一些疑问......
有人知道在iPhone上的objc和lua之间是否存在任何工作桥梁,或者是否可能很难完成上述网站提供的桥接?
任何信息都将受到欢迎.
我有一个应用程序,我有几个层从PNG图像创建透明度.这些图层都在屏幕上相互叠加.我需要能够忽略给予层的透明区域的触摸,并且当用户点击层的非透明区域时能够检测到触摸...参见图片...
我怎么做?谢谢.
是否可以用cocos2d绘制一个实心圆圈?可以使用drawCircle()函数完成轮廓圆,但有没有办法以某种颜色填充它?也许通过使用纯OpenGL?
我试图通过连接3个矩形来在Box2d(在Cocos2d中)创建一个"U"形状:| _ |
这听起来像关节不是正确的解决方案因为我不想要任何动作所以我创造了一个主体,它是中间位和两个夹具的两侧.我已将这两个边添加到中间位,如下所示:
mainBody->CreateFixture(&leftFixtureDef);
mainBody->CreateFixture(&rightFixtureDef);
Run Code Online (Sandbox Code Playgroud)
这有效,但是两个侧面装置都被添加到mainBody的中心.我似乎无法弄清楚如何相对于主体定位灯具.将精灵/节点附加到夹具并改变位置似乎没有什么区别.
有任何想法吗?
非常感谢.
我已将我的项目升级到cocos2d 2.1的最新测试版,我现在收到错误,
无法找到CCTargetTouchDelegate的协议声明
和
找不到CCStandardTouchDelegate的协议声明
我该如何解决?
它无法编译源代码和写入:
架构i386的未定义符号:
"_ CTFontManagerRegisterFontsForURL",引用自: - CCLabelTTF中的[CCLabelTTF getFontName:] ld:未找到架构i386的符号clang:错误:链接器命令失败,退出代码为1(使用-v为看调用)
但是当我用"return nil"替换CCLabelTTF中以下函数中的所有代码时:
- (NSString*) getFontName:(NSString*)fontName
{
// Custom .ttf file ?
if ([[fontName lowercaseString] hasSuffix:@".ttf"])
{
// This is a file, register font with font manager
NSString* fontFile = [[CCFileUtils sharedFileUtils] fullPathForFilename:fontName];
NSURL* fontURL = [NSURL fileURLWithPath:fontFile];
CTFontManagerRegisterFontsForURL((CFURLRef)fontURL, kCTFontManagerScopeProcess, NULL);
return [[fontFile lastPathComponent] stringByDeletingPathExtension];
}
return fontName;
}
Run Code Online (Sandbox Code Playgroud)
然后我可以编译我的代码,但我不能使用标签.
那么如何在不创建新项目的情况下解决这个问题并将所有资源复制到其中呢?
EDITED
以前的版本是2.x,现在我有最后一个rc2版本.
我删除了旧库的所有文件,将文件从新库复制到项目文件夹中,并通过xcode将它们添加到项目中.xcode可以用新的库文件创建项目,所以我从这个新项目中获取它们.然后我做了一些更改以删除警告.
我如何剪辑/裁剪/掩码或只是在Cocos2D中设置CCSprite的框架?
类似于:为UIView设置框架,剪切子视图= TRUE
我的CCSprite Main Sprite添加了多个Child Sprite.我只希望主Sprite精灵的Mask部分可见.有没有办法剪辑或使用CCSprite的掩码?
我可以在顶部剪切背景和图层,只留下那个可见区域,但这是唯一的方法吗?!
这是一个示例图像,展示了我想要实现的目标: alt text http://dnamique.com/maskSprite.jpg
我正在尝试遵循本指南,该指南经常被引用为Cocos2d-x的优秀教程.
问题是我对Cocos2d-x(2.2和3.0 alpha0)的下载不包括教程指示的文件install-templates-xcode.sh.
知道这里发生了什么吗?我搜索了那个词,没有出现任何内容,所以我假设它没有隐藏在文件中更深层次.
出于沮丧,我下载了cocos2d-iphone,该文件夹显然有install-templates.sh文件.我宁愿为多平台开发,但这个简单的问题真的让我烦恼.我只是希望能够创建一个Xcode项目并选择cocos2d-x模板(如上面链接的教程中所示).
请参阅github存储库:
请注意,iPhone存储库具有install-templates文件.
也许我错过了一些明显的东西,通常就是这种情况.无论如何,非常感谢帮助.
cocos2d-iphone ×10
ios ×5
iphone ×4
opengl-es ×2
box2d ×1
box2d-iphone ×1
cclabelttf ×1
cocos2d-x ×1
geometry ×1
label ×1
labels ×1
lua ×1
objective-c ×1
quartz-core ×1
templates ×1
xcode ×1