SpriteKit纹理不可见
我正在开发一个具有许多动画字符的游戏,当用户使用游戏控件进行移动,战斗等时,它们会播放. 存在正常状态,即当用户不触摸任何控件时,玩家的角色的纹理已分配给正常状态或静止状态纹理. 如果用户非常快地练习这些控件,则当玩家回到正常状态时,玩家的角色的纹理就会消失.但是,如果使用任何控件,则可以看到动画. 有人可以帮我解决这个问题吗?任何帮助将不胜感激. 我显示了下面使用的一些基本编程结构. //------------------------------------------------------------------------- *// The 'Normal or Resting' state texture.* SKAction *normalStateAction = [SKAction setTexture:normalStateTexture]; *// To Play any Character Animation like Wa
0 2024-02-26
编程技术问答社区
SpriteKit 如何在每次随机数的动画循环后重复一个 SKAction?
我有一个带有纹理动画的SKSpritenode.我基本上有一个4帧的角色空闲周期和一个闪烁的动画序列.我想永远循环角色空闲周期,但要以随机的间隔播放眨眼动画序列. 我有以下代码; func playIdle() { let idle_loop = SKAction.repeatAction(action_textureSequence_idle!, count: randomLoopCount()) let sequence = SKAction.sequence([idle_loop, action_textureSequence_blink!]) let repeatSequence = SKAction.repeatActionForever(sequence) runAction(repeatSequence) } func randomLoopCount() -> Int { return Int(arc
0 2024-02-26
编程技术问答社区
在SpriteKit中对遮蔽的图像制作动画(SKCropNode)。
我正在使用Sprite套件来创建我的第一个iOS应用程序,而我正在绊倒似乎是一个非常基本的问题. 我正在尝试为skcropnode(cropNode)的内容(fillNode)动画.下面的代码可以很好地设置Skscene(我看到插图正确地掩盖了,放置在正确位置的背景图像上)... SKSpriteNode *logoBG = [[SKSpriteNode alloc] initWithImageNamed:logoBackground]; logoBG.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)); [self addChild:logoBG]; SKCropNode *cropNode = [[SKCropNode alloc] init]; cropNode.maskNode = [[SKSpriteNode alloc] initWithImageNamed:l
0 2024-02-26
编程技术问答社区
Sprite Kit-为SKSpriteNode创建拱形路径,给定一个轻扫手势
我正在制作一个简单的游戏,其中用户在对象(SKSpriteNode)上向上滑动,以拱形运动上下发送(我假设使用Skaction).这是我希望完成的视觉效果(请原谅我的基本像素技巧): 我已经创建了一个鞋面,该鞋面将对象向上发送并根据速度等计算滑动的最后一点.但是,我无法弄清楚一旦达到最后一点,也无法降回回到屏幕的底部.我希望我可以在物体上添加重力,而Sprite套件可以处理对象的运动,但从我的初始发现中似乎并非如此. 我在这里发布了当前的代码: https://github.com/mikeberlin/mikeberlin/swipe-arch-arch-poc-poc 该应用程序基于本教程: 该代码以Xamarin/C#编写,但与Objective-C等效词几乎相同.如果您需要/希望我将其转换为Objective-C,我肯定可以. 谢谢大家的帮助,如果我能提供任何进一步的信息,请告诉我. 解决方案 最终使用基于物理的方法.我浏览了iOS S
0 2024-02-26
编程技术问答社区
凌云阁操纵杆
每当我改变操纵杆的方向时,我都试图执行玩家精灵的一些动画. 我正在使用 thesneakynarwhal在Joystick类中的下降使用以下方法: if (joystick.velocity.x > 0) { [self walkRightAnim]; } else if (joystick.x 0) { [self walkUpAnim]; } else if (joystick.velocity.y
0 2024-02-26
编程技术问答社区
Swift: 如何将粒子网络JS动画转换为iOS版
我找到了这个JavaScript动画: 我真的很想知道如何将这样的动画转换为在Swift IOS应用中使用它. 有人在可能的事情上有经验吗?我找到了SpriteKit之类的东西,但我真的找不到有关此的正确信息/教程. 也许有人知道我应该做什么/查找? 希望任何人都可以帮助我,谢谢! 解决方案 使用自定义视图将其JS代码升级到Swift.希望这是答案.当您以这种方式使用其代码时,请当心版权.只是为了演示. 详细说明,这里需要圆形类来表示他们的观点.在故事板中,将Uiview分配给MyView,您可以得到结果. class Circle : NSObject { var position: CGPoint! var speed : CGPoint! init(position: CGPoint, speed: CGPoint) { super.init() self.position = position self.speed = sp
0 2024-02-26
编程技术问答社区
iOS的SpriteKit动画没有出现
我正在使用纹理的纹理加载动画. 但动画没有出现在屏幕上. 我只有在纹理质地上出现!看起来像个错误. 有人做过类似的经历吗? SKTextureAtlas *atlas = [SKTextureAtlas atlasWithRetinaCorrection:spriteSheetName_]; if ([atlas.textureNames count] == 0) return; NSArray *r = [self getSprites:WEAPON_FIREANIMATION ofDict:atlas.textureNames]; if ([r count] == 0)return; SKSpriteNode *firstSprite = (SKSpriteNode*)[self childNodeWithName:tFIRSTSPRITE]; [firstSprite removeActionForKey:aFIRE_ANIM]; NSMutableA
0 2024-02-26
编程技术问答社区
雪碧套件animateWithTextures滞后
我在精灵套件游戏中使用纹理地图集.我正在创建SKTextureAtlas对象,并将其纹理存储在每个动画的数组中.因此,当我需要对英雄的动画时,我称animateWithTextures将其发送为相应的数组.当我启动动画时,有一些滞后.有什么方法可以顺利启动动画吗? 解决方案 我相信有几种方法可以解决这个问题.您需要做的是在游戏玩法实际启动之前预加载地图集.只需在游戏开始时显示一个加载屏幕,然后预加载您的地图集即可. 您可以尝试+ pRELOADTEXTUREATLASE:withCompletionHandler: [SKTextureAtlas preloadTextureAtlases:textureAtlasesArray withCompletionHandler:^{ /*Game Start*/}]; 在此处介绍冒险游戏示例 有关更多详细信息,有关将资产的加载异步加载到代码中,可以从上面的链接下载. 其他解决方案 遇到了相同的问题,我在游
0 2024-02-26
编程技术问答社区
如何用 SpriteKit 使精灵跳到一个特定的高度?
我试图使用applimpulse使精灵跳到特定的高度.在下面的示例代码中,动态黑色圆圈跳到与静态红色圆圈相同的高度,但仅适用于kludge. 如果我的物理学是正确的,则质量 * sqrt(2 * Gravity * y)给出了发射弹丸的必需初始垂直动量.然而,该公式导致黑色圆圈的移动很小. 通过反复试验,我发现我可以通过将脉冲矢量的垂直组件乘以12.3来使红圆跳跃或多或少地跳跃,如下所示. 这似乎是完全任意的,这使我发疯.我显然做错了什么.正确的方法是什么? 这是我认为相关的代码: let dy = mass * sqrt( 2 * -self.physicsWorld.gravity.dy * (fixedCircle.position.y-jumpingCircle.position.y)) * 12.3 jumpingCircle.physicsBody?.applyImpulse(CGVectorMake(0, CGF
0 2024-02-26
编程技术问答社区
停止SKA的行动,永远重复的行动--斯普利特套装
我想根据旋转的不同,在我的spritenode上运行两个动画.如果值是负运行的一个动画之一,如果它是正面的,则另一个动画.我设法这样做(有点),但我有问题.如果Animation1正在运行,并且ZROTATION变为正面,则它们都会运行,因为它们正在永远重复.所以我这样做了: NSMutableArray *walkingTextures = [NSMutableArray arrayWithCapacity:14]; for (int i = 1; i
0 2024-02-26
编程技术问答社区
简单的CSS动画循环--淡入淡出 "加载 "文本
我正在尝试在我的应用程序中添加倒计时,并且在动画中遇到问题.我要寻找的外观与下面显示的iPad倒计时类似,随着时钟计数的计算,红色条的增加. 最初,我在倒计时的每个半秒内创建了一个带有单个图像的图像地图集,但这似乎需要大量的内存来运行,因此使应用程序崩溃了,因此我现在必须找到一个替代方案. 我一直在寻找在这里着色https://developer.apple.com/library/prerelease/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Sprites/Sprites.html#//apple_ref/doc/uid/tp40013043-ch9 ,但看不到一种使精灵的一部分着色的方法,看来整个精灵都会改变. 有人知道这里是否可以进行着色,还是有一种方法可以减少图像地图集使用的内存? 谢谢 解决方案 您可以使用CashApelayer进行操作,并为中风而动画,如下:
0 2024-02-26
编程技术问答社区
如何在iOS中使用精灵套件创建一个阿尔法掩码
我试图实现的效果是在黑暗区域中具有光圈.效果与口袋妖怪游戏中的效果相似,当您处于黑暗洞穴中,并且周围的视野只有有限的视野.从我尝试和阅读的内容来看,我无法用具有alpha级别的Sprite套件中的节点创建口罩.我设法创建的面具都具有坚硬的边缘,基本上只是裁剪.在Apple开发人员页面上阅读有关具有MaskNode属性的Skcropnode的信息,它说:"如果掩码中的像素的Alpha值小于0.05,则图像像素被掩盖了."不幸的是,这听起来像是像素将被完全掩盖或完全包含,而两者之间没有alpha值.如果我想说的是很难遵循的话,这就是我所取得的成就的形象: > htfpspps "> htriffpspps ://www.dropbox.com/s/y5gbk8qvuq4ynh0/ios%20simulator%20screen%20screen%20shot%20jan%20Jan%2020202C%202014%201.23%20p.23%20pmm.20pmm.png 这是我想实现的图
2 2024-01-24
编程技术问答社区
Spritekit: 高效地创建许多SpriteNodes
我正在使用spritekit编写子弹样式的射击射击,而SK框架似乎可以以60fps的方式处理数百个节点,而没有任何问题.但是,我的问题是,有时我需要在一个框架中产生50多个节点,这似乎确实会导致框架中的奇数.我应该使用任何技巧来确保创建许多节点的性能尽可能地表现? 我正在重复使用Sktextures,我还应该持续收集SKSpritenodes和Skactions,而不是"回收"而不是创建新的? 解决方案 您可以在游戏场景加载之前预先创建所有节点(使用完整处理程序),并在需要时,只需向它们显示即可,即sethidden = no.这样,您就不必一次又一次地重新创建节点.当不需要节点时,只需将它们隐藏.您可以阅读更多在这里.只需找到有关激光的部分.我认为这将是解决由于同时产生许多节点而引起的帧率下降的一种方法.我希望您使用地图集...确保一切正常工作,可以使您的抽签和节点计数信息在视图控制器和检查统计数据中计算信息.如果您不使用地图集,或者不正确地使用它们,则可能会发生绘制计数
8 2024-01-24
编程技术问答社区
在gameOverScene中使用admob的插播广告
我已经在使用Swift时在场景中在游戏中在游戏中添加插语admob广告的互联网搜索方向. Google文档仍然使用OBJ-C. 到目前为止,我收集到的是,我需要在ViewController中初始化广告,然后从游戏中调用场景中的广告? 任何建议都将不胜感激. 解决方案 更新解决方案 i在ViewDidload中的视图控制器中设置 NSNotificationCenter.defaultCenter().addObserver(self, selector:"loadAndShow", name: "loadAndShow", object: nil) 然后,我有一个单独的函数(在ViewController中)称为LoadAndShow ...如果准备就绪,它将加载并显示间隙广告 然后从GameOverScene中,我致电 NSNotificationCenter.defaultCenter().postNotificationName
4 2024-01-19
编程技术问答社区
iOS ADMOB 基于奖励的视频广告加载失败
直到今天我能够显示奖励视频,但是现在没有出现视频,admod的日志提醒我安装新的 admob SDK 7.23.0 现在使用新的Admob SDK奖励视频无法加载. 使用测试ID ,似乎有效: GADRewardBasedVideoAd.sharedInstance().load(GADRequest(),withAdUnitID: "ca-app-pub-3940256099942544/1712485313") 如果我使用参考ID进行更改,则视频将无法加载. 我还添加了AppDelegate: //ADMOB import GoogleMobileAds func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
6 2024-01-19
编程技术问答社区
在GameOver时显示插播广告后,场景返回到WelcomeScene。
我有一个Sprite套件游戏,我想在游戏结束时展示间隙广告.好吧,我能够在使用NotificationCenter的游戏之后向广告展示广告,但是问题在于,当我关闭广告时,它返回到WeelComescene.关闭广告后,我想返回GameOverScene,但是如何? gameviewController.swift import UIKit import SpriteKit import GameplayKit import GoogleMobileAds class GameViewController: UIViewController , GADInterstitialDelegate { var interstitialAds : GADInterstitial! override func viewDidLoad() { super.viewDidLoad() createAndLoadAd() NotificationCenter.
2 2024-01-19
编程技术问答社区
在iOS游戏应用和Swift中使用AdMob插播广告
好吧,我已经花了几天了.我已经通过了Admob的教程,YouTube,堆栈交换,所有内容,我找不到解决问题的解决方案. 我正在尝试将ADMOB的间隙广告实现到我的iOS游戏应用程序中.代码编译,构建,运行,游戏播放,但广告不会显示.这是我的GameViewController.swift import UIKit import SpriteKit import GoogleMobileAds class GameViewController: UIViewController, GADInterstitialDelegate { //AD STUFF-----------------------------vBELOWv---------------------------------------------- //AD STUFF-----------------------------vBELOWv----------------------------------
8 2024-01-19
编程技术问答社区
如何在SpriteKit中放置AdMob Banner?
我正在SpriteKit创建游戏,我不知道如何在SpriteKit中使用Admob Banner.我知道如何与Swift一起使用,您可以将视图拖到故事板等...但是再一次,有人可以帮助我在SpriteKit中使用它吗? 应用于放置横幅时会遇到此错误. 要在此设备上获取测试广告,请致电:request.testdevices = @[*!********'"]; ** 解决方案 所有内容与UIKit完全相同,只是您必须以编程方式定位它.另外,请确保此代码在您的GameViewController中添加viewDidLoad.只需添加此行: BannerAd.frame = CGRect(x: 0, y: 0, width: 320, height: 50) 所有横幅广告代码都应该看起来像这样: var BannerAd = GADBannerView(adSize: kGADAdSizeBanner) BannerAd.frame = CGRect(x:
8 2024-01-19
编程技术问答社区
SKScene中的AdMob奖赏视频
我正在尝试在我的 Sprite套件中创建一个奖励的视频广告游戏.我想在我的 gamescene.swift 类中添加奖励的视频,但问题是这不是ViewController,而是SKScene. . 这是不起作用的,因为我的 gamescene.swift 不是ViewController: ad.present(fromRootViewController: self) 我尝试了很多事情,但没有任何效果.有人能帮助我吗? 谢谢! (我想在玩家死亡时显示此奖励广告.) 解决方案 在您的GameViewController中,在viewWillLayoutSubviews中设置观察者: override func viewWillLayoutSubviews() { NotificationCenter.default.addObserver(self, selector: #selector(self.startVideoAd), name: N
4 2024-01-19
编程技术问答社区
如何在 sprite-kit 的某些场景中呈现广告?
这是我第一次使用Swift和Sprite-Kit开发应用程序.我想将Admob整合到其中.我一直在寻找解决问题的解决方案,但我没有成功. 我在GameViewController.swift 内设置以下代码 override func viewDidLoad() { super.viewDidLoad() bannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait) bannerView.isHidden = true bannerView.adUnitID = "ca-app-pub-************************" bannerView.rootViewController = self view.addSubview(bannerView) // Configure the view. let skView = sel
2 2024-01-19
编程技术问答社区