怎么使用Sprite画一个圆形区域?

怎么使用Sprite画一个圆形区域?,第1张

你好。
很幸运看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
对于你的问题我爱莫能助!
可能是你问的问题有些专业了。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也比较热心,可能能快点帮你解决问题。
希望我的回答也能够帮到你!
最后祝您全家幸福健康快乐每一天!

兄弟,其实你的意思应该是从集中获取某一张吧,再将这个添加给Sprite是吧,
这个是可以的
UISprite sprite = gameObjectGetComponent<UISprite>();
spritespriteName = "XXX";
这样就可以动态控制sprite的背景了

作者:Joel Shapiro
注:这是作为iOS 7 Feast的组成部分而发布的全新Sprite Kit教程。
在第1部分中,你创造了游戏的基础。到目前为止你已经在游戏中添加了侵略者,舰船和平视显示器(HUD)。你还编写了逻辑代码让侵略者可以自动移动并在倾斜设备时移动舰船。
在第2部分也是最后一部分中,你将为舰船和外星人添加能力让它们相互开火!你同样也将添加音效和真实图像去替代彩色的矩形(游戏邦注:即用于代表侵略者和舰船)而优化游戏
现在让我们真正开始吧。
让你的舰船发射激光炮
首先,你需要思考自己想要的发射舰船激光炮的场景。你决定使用单发快射去发射大炮。但是你该如何检测这些单发快射?
你拥有两个选择:
1UITapGestureRecognizer—-创造一个并将其附加到场景视图中。
2touchesEnded:withEvent:—-你的场景是UIResponder的子类;因此你可以使用它直接检测碰触。
在这种情况下(touchesEnded:withEvent:),第二种方法是最佳选择。当你需要基于游戏中不同场景节点检测并处理碰触时,第一种方法会较为棘手,因为你只能够在场景视图中为UITapGestureRecognizer制定一个回调函数选择器。而其它方法则不适合放在这一例子中。
因为所有的SKNode节点(包括SKScene)都能通过touchesEnded:withEvent:直接处理碰触,第二种选择能够更自然地处理针对于节点的碰触—-当你开发的游戏带有更复杂发射处理时它将更有效。
既然你将在场景的touchesEnded:withEvent:方法中检测用户的发射,你该在这方法中做些什么?
发射可以在游戏过程中的任何一个点发生。与之相反的是你的场景将发生改变—-源自update:方法的独立间隔。所以在touchesEnded:withEvent:中任何时候你将如何储存快射检测,并在之后,也就是当被Sprite Kit游戏循环援用时对其进行加工。
答案是一个队列!你将使用一个简单的NSMutableArray在FIFO(先进先出)队列中储存你的快射。
在GameScenem添加如下属性到类扩展中:
@property (strong) NSMutableArray tapQueue;
现在将如下内容添加到didMoveToView:中,也就是在[selfmotionManager startAccelerometerUpdates];后面:
selftapQueue = [NSMutableArray array];
selfuserInteractionEnabled = YES;
上述代码将快射队列初始化为一个空白数组,并确保用户互动适用于场景中,从而让它能够接收快射事件。
现在在#pragma mark – User Tap Helpers之后添加如下代码:
-(void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event {
// Intentional no-op
}
-(void)touchesMoved:(NSSet )touches withEvent:(UIEvent )event {
// Intentional no-op
}
-(void)touchesCancelled:(NSSet )touches withEvent:(UIEvent )event {
// Intentional no-op
}
-(void)touchesEnded:(NSSet )touches withEvent:(UIEvent )event {
UITouch touch = [touches anyObject];
if (touchtapCount == 1) [selftapQueue addObject:@1];
}
前三个问题只是无意义的存根;之所以会添加它们是因为当你没有调用super而推翻touchesEnded:withEvent:时,苹果会建议你这么做。
touchesEnded:withEvent:方法本身非常简单。它只添加了一个条目到队列中。你不需要定制类在队列中储存快射,因为你所需要做的便是明确快射的出现。因此,你可以使用任何早旧的对象。在此,你可以将整数1作为当一快射的记忆(@1是全新的对象-文字语言,即将把文字1转变为一个NSNumber对象)。
因为你知道侵略者最终将向你的舰船发射子d,所以在文件最上方的Custom Type


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13322677.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-14
下一篇 2023-07-14

发表评论

登录后才能评论

评论列表(0条)

保存