SKSpriteNode,添加到父挂钩/从父挂钩中删除

2023-11-22

当 SKSpriteNode(或 SKNode)添加到父节点或从父节点中删除时,类中是否有任何(最佳实践)方法来挂钩事件?


无需 Kobold Kit,您可以对 SKSpriteNode(或任何 SKNode 事实上)进行子类化并扩展removeFromParentSKNode 拥有的功能。

例如:

FLSprite.m:

#import "FLSprite.h"

@implementation FLSprite

-(void)removeFromParent {
    [super removeFromParent];
    NSLog(@"I print when I'm Removed");
    //here's where you'll add your hooking functions
}

@end

我的场景.m:

-(id)initWithSize:(CGSize)size {    
    if (self = [super initWithSize:size]) {
    FLSprite* sprite = [FLSprite spriteNodeWithColor:[UIColor blackColor] size:CGSizeMake(200, 100)];
        [sprite setPosition:CGPointMake(100.0, 50.0)];
        [self addChild:sprite];
        [sprite removeFromParent];

    }
    return self;
}

至于添加孩子,因为您本身添加了孩子(在大多数情况下)[self addChild:node];你需要延长addChild在您要添加的视图中。例如,您将添加以下内容到您的MyScene.m,因为我们要将精灵添加到该视图中

-(void)addChild:(SKNode *)node {
    [super addChild:node];
    NSLog(@"added child");
}

正如 Steffen Itterheim 在他的帖子中所解释的那样,这几乎就是 Steffen Itterheim 为实现此功能所做的事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SKSpriteNode,添加到父挂钩/从父挂钩中删除 的相关文章

  • didMove(查看: SKView) 和 didMoveToView(查看: SKView) 有什么区别?

    如标题所示 didMove to view SKView 和 didMoveToView view SKView 有什么区别 我知道 didMoveToView 是方法 并且该视图在旧 版本中属于 SKView 类型 我不明白将 查看 SK
  • AVAudioPlayer 声音未播放

    在 iOS 8 Xcode 6 中 我有一个包含声音效果的功能 多次更改代码后 它在 iOS 9 中不再起作用 这是我尝试过的 原来的 let bangSoundEffect SKAction playSoundFileNamed Bang
  • Spritekit 动画没有改变

    我的游戏中有一个虚拟控制板 如果我点击并按住方向按钮之一 播放器就会朝正确的方向移动并显示正确的图像和动画 但是 如果我将手指从一个控件滑动到另一个控件 例如从右到下 播放器会向下移动 但图像和动画不会改变 直到我抬起手指 下面是我处理触摸
  • Swift 2.0,SpriteKit - 滚动视图不使用页面。

    好的 我有一个滚动视图 它已被子类化 可以应用于我在这里问的上一个问题中的任何场景 SpriteKit Swift 2 0 反向滚动视图 https stackoverflow com questions 34712427 spriteki
  • 将相机置于 swift spritekit 中的节点中心

    我正在用 Swift 创建一个泰拉瑞亚风格的游戏 我希望玩家节点始终位于屏幕中央 并且当您向右移动时 方块会像在泰拉瑞亚中一样向左移动 我目前正在尝试弄清楚如何保持视图以角色为中心 有谁知道实现此目标的好方法 自 iOS 9 OS X 10
  • 如何缓存或预加载SKLabelNode字体?

    我正在制作一个 Sprite Kit 应用程序 并在我的场景中添加了一个 SKLabelNode 当我加载 SKScene 时 我注意到有一个相当大的滞后峰值 在对应用程序进行分析后 我发现它来自于使用纸莎草字体创建 SKLabelNode
  • SpriteKit SKPhysicsBody 在一个方向上的碰撞就像一扇只能穿过不能返回的门

    在 SpriteKit SKPhysicsBody 中 是否可以有一个可以穿过但不能返回的对象 这个想法是 它们不会在一个方向上发生碰撞 因此你可以穿过而不会返回 就像活板门一样 我不太确定物理是否可行 但您应该能够在游戏运行时扰乱物理体的
  • Sprite Kit - SKShapeNode 路径未绘制四边形曲线

    我一直在研究苹果新的 Sprite Kit 并且已经使用它有一段时间了 然而 当我尝试绘制曲线路径时遇到了问题SKShapeNode 它看起来只是画一条直线 这是我遇到的问题的一个非常简单的例子 尝试绘制一个CGPath for an SK
  • 如何在 SKSpriteNode 上创建脉冲效果?

    您好 我想了解如何创建视觉脉冲效果 如下面的视频所示 https www youtube com watch v uiHj KZWjpU https www youtube com watch v uiHj KZWjpU 我点击了视频中发布
  • iOS 内存管理——其他进程 RAM 增加

    我有一个使用几个的应用程序UIViewControllers with SKScenes里面有一些大图像和ObjectAL http kstenerud github io ObjectAL for iPhone 对于声音 按下几个视图控制
  • SKPhysicsJoint:接触和碰撞不起作用

    在 IOS7 1 上 使用 SpriteKit 我创建了两个简单的矩形精灵以及相应的物理体 我设置了接触和碰撞位掩码 所有工作都完全符合我的预期 检测到接触并且碰撞防止两个矩形重叠 但是 当我创建 SKPhysicsJointSpring
  • 调用 SKLabelNode 时出现延迟?

    我在从一个版本转换时遇到了轻微延迟 滞后 的问题SKScene到另一个 通过注释掉各种代码 我将其范围缩小到SKLabelNode 我的猜测是 这就是它在调用时加载 缓存字体 这会导致在声明新字体时出现小的延迟 口吃SKScene 有没有其
  • 使用 SKAction colorizeWithColor 使 SKSpriteNode 闪烁白色

    好的 我有一个精灵 当被某物击中时应该会闪烁白色 我正在使用这个 SKAction changeColorAction SKAction colorizeWithColor SKColor whiteColor colorBlendFact
  • 创建透明渐变并将其用作 SpriteKit 中的 alpha 遮罩

    我正在尝试制作渐变并将其用作 alpha 蒙版 现在 我能够制作与此类似的图像 从黑色到透明 这是我用来实现这一切的代码 private func createImage width CGFloat height CGFloat gt CG
  • 使用 CGPathContainsPoint SWIFT 时遇到的问题

    我需要检查 CGPoint 是否位于 SKSpriteNode 内 经过一番研究后 CGPathContainsPoint 似乎适合我的目的 if CGPathContainsPoint my sprite path nil my poin
  • 更改 SKPhysicsBody 的身体形状

    除了定义 SKPhysicsBody 形状的主体之外 我不想更改任何其他内容 我该怎么做呢 我似乎找不到在哪里可以改变这个 甚至评论如何改变它 是的 我知道这必须小心完成 以便避免所有可能的新碰撞 重叠等 但抛开这些 我如何更改 SKPhy
  • SKAudioNode 崩溃:AVAudioPlayerNode.mm:333:开始:所需条件为 false:_engine->IsRunning()

    我有一个简单的 SKAudioNode let backgroundSound SKAudioNode fileNamed backgroundSound mp3 我用来玩backgroundSound runAction SKAction
  • SpriteKit内存管理预加载缓存和fps问题

    我的问题非常简单 根据苹果文档 您可以在呈现场景之前将纹理预加载到 RAM 中 如下所示 SKTextureAtlas atlas SKTextureAtlas atlasNamed effect circle explode SKText
  • 添加事件侦听器到回合制 ios 游戏时出现警告

    这是 gamekithelper m 中的代码 void authenticateLocalPlayer 1 GKLocalPlayer localPlayer GKLocalPlayer localPlayer add a weak lo
  • 将图像作为球分配给 SKShapeNode - Spritekit 游戏

    我正在尝试在 Swift 2 Sprite kit 游戏中向我的球添加图像 我有一个make ball 函数 但在游戏场景中没有错误 当调用该方法时 我不断收到此错误 无法分配 SKShapeNode 来输入 Ball 我不知道如何修复 并

随机推荐

  • 在 Android 中保留用户状态

    我正在开发一个 Android 应用程序 需要接收每个用户的特定信息 我使用 GET 和 POST 方法进行了身份验证 现在 当用户名和密码正确时 我有了服 务器传递的 cookie 我如何存储这些数据 我寻找但找不到在 Android 中
  • ReactNative Flatlist onEndReached 不起作用

    我试图调用一个函数onEndReachedFlatList 的但它不起作用 我正在打电话this state pageNo最后 它没有更新 我想稍后在无限滚动中使用这个逻辑 但现在无法让它工作 import React Component
  • 使用 JSON 进行 XmlHttpRequest POST [重复]

    这个问题在这里已经有答案了 如何使用 vanilla JS 发出 AJAX POST 请求发送 JSON 数据 我知道内容类型是 url 形式编码的 并且不支持嵌套 JSON 有什么方法可以在普通的旧 JS 中使用嵌套 JSON 发出这样的
  • 将 python 列表传递给 django 模板

    我想在我的模板上显示内容列表 因此 我希望生成该列表并将其传递给模板 如下所示 newlinks try links urllib2 urlopen lt
  • 如何删除下拉列表的边框:CSS

    我想删除下拉列表之外的边框 我在尝试 select xyz option Border none 但对我不起作用 您无法设置下拉框本身的样式 只能设置输入字段的样式 该框由操作系统呈现 如果您想更好地控制输入字段的外观 您可以随时查看Jav
  • R裁剪栅格数据并设置轴限制

    在您在另一个线程中的帮助下 我成功绘制了一些全球地图 首先 我将气象 GRIB2 数据转换为 Netcdf 然后绘制全球地图 现在我只想绘制地图的一个子区域 我尝试了crop命令并成功提取了全局nc文件的子区域 但是在绘图时我找不到如何控制
  • 在 ExtJS 中加载 hasMany 数据

    我正在尝试将 嵌套 数据加载到hasManyExtJS4 中的关系 我的模型看起来像这样 Ext define Entrypage model Entrypage extend Ext data Model fields id title
  • Laravel 5.5 Axios POST 导致 419 错误

    我正在尝试从 Vue 向我的 Laravel API 发出 POST 请求 这X CSRF TOKEN标头设置正确 我在发送到服务器的 POST 包中看到这一点 路由有默认的web 中间件 Request Accept applicatio
  • System.out.println 和 System.err.println 乱序

    My System out println and System err println 呼叫不会按照我拨打的顺序打印到控制台 public static void main String args for int i 0 i lt 5 i
  • 将静态数据存储在数组中还是数据库中?

    我们总是有一些静态数据 它们可以作为数组存储在文件中 也可以存储在基于 Web 的项目中的数据库表中 那么应该优先选择哪一个呢 在我看来 数组有一些优点 更灵活 可以是任何结构 指定非常复杂的关系 更好的性能 会加载到内存中 与数据库的I
  • 使用 Capybara 进行 AJAX 集成测试

    我正在使用 Capybara 进行 Rails 集成测试 当涉及 AJAX 请求时 我收到以下错误 Capybara TimeoutError failed to resynchronize ajax request timed out 知
  • 解雇ModalViewControllerAnimated:(和解雇ViewControllerAnimated)在iOS 5中崩溃

    我找不到任何合乎逻辑的解释 但事实仍然是 在iOS 5 xCode 4 2 中 如果我presentModalView animated YES 我可以调用dismissModalViewAnimated 很好 但如果我调用presentM
  • jQuery Mobile 初始化列表视图的正确方法

    这是我的问题 我的索引中有一些硬编码的伪页面 有些填充了内容 有些是空的 只有通过 ajax 才能在用户交互时填充 此 ajax 内容包含 html 列表 当它们加载时 它们没有漂亮的 jquery 移动外观 所以我必须调用 listvie
  • 如何在 Spring WebFlux 中记录请求和响应主体

    我希望使用 Kotlin 在 Spring WebFlux 上的 REST API 中集中记录请求和响应 到目前为止我已经尝试过这种方法 Bean fun apiRouter router accept MediaType APPLICAT
  • Android Studio 不断向 GitHub 添加额外文件

    我正在使用 Android Studio 2 2 2 使用内置的 VCS 工具 由于某种原因 Android Studio 会自动添加一堆我没有添加或编辑的额外 xml 文件和文件夹 更具体地说 当我不希望它添加以下文件时 它会添加 win
  • Android 中的单例与应用程序上下文?

    回想起这个列举了使用单例的几个问题在看到几个使用单例模式的 Android 应用程序示例后 我想知道使用单例而不是通过全局应用程序状态共享的单个实例 子类化 android os Application 并通过 context getApp
  • webdriver.get() 和 webdriver.navigate() 之间的区别

    有什么区别get and navigate 方法 此方法或其他方法是否等待页面内容加载 我真正需要的是像 Selenium 1 0 这样的东西WaitForPageToLoad但对于使用viawebdriver 有什么建议么 导航 使用 W
  • 如何以编程方式重命名Google存储中的文件夹?

    我有一个谷歌存储java客户端 我想重命名云端的文件夹 有办法做到吗 我看到了更新帖子但我不知道如何更改名称元数据 这是我的尝试 但我不知道该填写什么 entity 并且没有oac setName public void renameDir
  • Access-Control-Allow-Headers 列表中不存在请求标头

    在我的 API 中 我有以下代码 public class CustomOAuthProvider OAuthAuthorizationServerProvider public override Task MatchEndpoint OA
  • SKSpriteNode,添加到父挂钩/从父挂钩中删除

    当 SKSpriteNode 或 SKNode 添加到父节点或从父节点中删除时 类中是否有任何 最佳实践 方法来挂钩事件 无需 Kobold Kit 您可以对 SKSpriteNode 或任何 SKNode 事实上 进行子类化并扩展remo