问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在cocos2d中如何判断CCSprite上的点是否透明?

发布网友 发布时间:2024-10-16 11:12

我来回答

1个回答

热心网友 时间:2024-11-06 04:35

- (BOOL)isTransparentAtPixel:(CGPoint)location withSpriteName:(NSString *)imageName { if (!CGRectContainsPoint(CGRectMake(0.0f, 0.0f, self.boundingBox.size.width,self.boundingBox.size.height), location)) { NSLog(@"-------point -----------------------"); return YES; } // Create a 1x1 pixel byte array and bitmap context to draw the pixel into. NSInteger pointX = trunc(location.x); NSInteger pointY = trunc(location.y); NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init]; UIImage *image = [UIImage imageNamed:imageName];; CGImageRef cgImage = image.CGImage; NSUInteger width = image.size.width; NSUInteger height = image.size.height; CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); int bytesPerPixel = 4; int bytesPerRow = bytesPerPixel * 1; NSUInteger bitsPerComponent = 8; unsigned char pixelData[4] = { 0, 0, 0, 0 }; CGContextRef context = CGBitmapContextCreate(pixelData, 1, 1, bitsPerComponent, bytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); CGColorSpaceRelease(colorSpace); CGContextSetBlendMode(context, kCGBlendModeCopy); // Draw the pixel we are interested in onto the bitmap context CGContextTranslateCTM(context, -pointX, pointY-(CGFloat)height); CGContextDrawImage(context, CGRectMake(0.0f, 0.0f, (CGFloat)width, (CGFloat)height), cgImage); CGContextRelease(context); // Convert color values [0..255] to floats [0.0..1.0] // CGFloat red = (CGFloat)pixelData[0] / 255.0f; // CGFloat green = (CGFloat)pixelData[1] / 255.0f; // CGFloat blue = (CGFloat)pixelData[2] / 255.0f; CGFloat alpha = (CGFloat)pixelData[3] / 255.0f; [pool release]; return (alpha == 0); }说明:1. 方法传入的两个参数 location和imageName,location为CCSprite内部的点坐标,imageName为CCSprite上的图片的名字。2.通过传入的imageName,新建一个UIImage,从而得到这个点的透明性,如果alpha返回为0,则表示该点是透明的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有要业余时间弹古筝的酒店么 古筝演奏师的就业前景怎么样 茶馆里主要放的音乐类型是 日语一级的话什么水平啊 一级到底要求多少词汇啊? WPS右键菜单(win11) 再生缘 我的温柔暴君结局是什么啊?女主最后傻了? 为什么做爱多了没感情了 情侣之间在一起时间长了是不是做爱的时候也懒得接吻了直接进入主题吗... 夫妻性爱后为何丧失了热情 什么是环保毛 cocos2d-x碰撞怎么检测碰撞的部位 次韵王荆公题西太一宫壁作品赏析 工厂人员定位系统功能详解:提升安全和管理效能的关键利器 雪莲玉是什么玉 常吃鹅蛋对人有何好处 ThinkpadX201i —3249—QLC可以玩游戏吗?可以玩什么游戏? 请教高手thinkpad x201i 3249 jfc有没有温控芯片?开机显示fan error... 1994年农历九月初十九是啥星座 产检实习小结怎么写 中国移动登录收不到验证码 想知道这是什么品种的百合花? 随州夜景最漂亮的地方是哪_武汉周边城市有哪些好玩的地方 今天首次玩英雄联盟,将自己的身份证号提供给游戏了,应该没事吧 玩英雄联盟时说我中二等奖 然后我填写了信息 有身份证号码 银行卡号 玩英雄联盟注册了,上面填了真实姓名,身份证号,有事没 英雄联盟未满18岁不能玩,我想玩,但是注册了自己的身份证号,不够的... 英雄联盟要填写自己真实姓名和身份证号,真的假的 英雄联盟开始游戏的时候身份证问题 把十升水倒入0.5米宽0.2米的玻璃缸中水深多少分米 魔兽世界我刚玩没多久,不知道雕文是干啥的,好像是提攻击的,不过有很多... 做物理实验时,往往进行多次实验,那么什么时候是避免偶然性,什么时候是... 为什么和男朋友抱抱的时候他一定要弯腰? 精细化工专业选择考研合适吗? 生芦荟可以用来擦脸吗 公务员遴选考试在什么时候呢 遴选公务员和普通公务员一起考吗 新鲜芦荟擦脸的正确方法图片 谁能告诉我2008年或最新的丧尸片,谢谢 图片出处的一部丧尸片 求名 求次图片出处,可能是某个电影或游戏,类似于丧尸 要给孩子断奶了,有什么进口奶粉推荐吗?诗妙丽推荐不? 宝宝断奶期,参考全国十大奶粉品牌,选哪几款好? cocos2d-x 怎么导入curl库 进口的雀巢奶粉怎么样?快给宝宝断奶了,这款奶粉配方好吗? 86年 摩羯座A型血 性格(完整版)。 出汗就是消耗脂肪 g20举办国顺序怎么排的 ...果冻一样的是什么 螃蟹里面有白色的果冻一样东西能吃吗 强制开qq结伴功能