在 Spritekit 中用两种颜色绘制矩形/圆形和三角形。 。 。

2023-11-26

我可以使用简单的 SKSpriteNode 绘制矩形。但我无法在其中绘制其他类型的图画,例如具有两种分色的三角形、圆形等。有人建议使用 CGPath。但我是新手,不知道画这种复杂的东西。请任何人都可以说明在 SPRITEKIT 中使用多色来处理这些图画的简单方法。意味着它们的上部是一种颜色,下部是第二种颜色。更简洁地说,Shape分为两种颜色,无论是星形、矩形、三角形还是其他。 任何帮助将不胜感激。

Thanks .


您可以使用 SKShapeNode 在 Sprite Kit 中绘制形状,但每个 SKShapeNode 仅限于一种线条颜色(描边颜色)和一种填充颜色。

但是,您可以创建一个自定义 SKNode 子类,其中包含两个 SKShapeNode 作为子项,每个子类具有不同的描边颜色/填充颜色。

这样的东西适用于自定义 SKNode,它绘制一个左侧和顶部为红色、右侧和底部为绿色的正方形:

- (id) init {
    if (self = [super init]) {
        SKShapeNode* topLeft = [SKShapeNode node];
        UIBezierPath* topLeftBezierPath = [[UIBezierPath alloc] init];
        [topLeftBezierPath moveToPoint:CGPointMake(0.0, 0.0)];
        [topLeftBezierPath addLineToPoint:CGPointMake(0.0, 100.0)];
        [topLeftBezierPath addLineToPoint:CGPointMake(100.0, 100.0)];
        topLeft.path = topLeftBezierPath.CGPath;
        topLeft.lineWidth = 10.0;
        topLeft.strokeColor = [UIColor redColor];
        topLeft.antialiased = NO;
        [self addChild:topLeft];

        SKShapeNode* bottomRight = [SKShapeNode node];
        UIBezierPath* bottomRightBezierPath = [[UIBezierPath alloc] init];
        [bottomRightBezierPath moveToPoint:CGPointMake(0.0, 0.0)];
        [bottomRightBezierPath addLineToPoint:CGPointMake(100.0, 0.0)];
        [bottomRightBezierPath addLineToPoint:CGPointMake(100.0, 100.0)];
        bottomRight.path = bottomRightBezierPath.CGPath;
        bottomRight.lineWidth = 10.0;
        bottomRight.strokeColor = [UIColor greenColor];
        bottomRight.antialiased = NO;
        [self addChild:bottomRight];
    }
    return self;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Spritekit 中用两种颜色绘制矩形/圆形和三角形。 。 。 的相关文章

  • 如何在 iOS 上反转使用 CoreGraphics 渲染的 pdf 上的文本颜色?

    我正在使用开源 PDF 查看库 VFR PDF Readerhttps github com vfr Reader https github com vfr Reader 我正在尝试实现 夜间模式 或黑色背景与白色文本 我可以将背景设置为我
  • sizeWithFont: 的替代方法

    我有一堂课 其工作是将文本解析为几页 我使用 sizeWithFont 方法来识别一页何时结束而另一页何时开始 但不幸的是 由于需要解析的文本量相当大 整个操作需要在后台线程上执行 需要几秒钟才能完成 因此 有时我的界面上会出现视觉伪影 U
  • 通过 UIPopoverController 关闭调光

    在 iOS7 中 弹出窗口会导致屏幕的其余部分变暗 按照苹果文档 https developer apple com library ios documentation uikit reference UIPopoverController
  • 如何使虚线可移动

    我用下面的代码画了一条虚线 get the current CGContextRef for the view CGContextRef currentContext CGContextRef NSGraphicsContext curre
  • 打电话时暂停游戏,接听电话和按主页键有什么区别?

    当按下主页按钮时 我的游戏会正常暂停 但当我接到电话时却没有 当游戏开始时 其操作将恢复 我不明白接电话和按 HB 之间的区别 请帮帮我 Thanks func pauseGame initResumeButton pause remove
  • 如何在 SpriteKit SKScene 类中启动 ReplayKit 屏幕录制

    我已经实施了ReplayKit in my SpriteKit游戏 但由于一切都在游戏内完成GameViewController录制按钮出现得太早 请看我的GameViewController下面的类 class GameViewContr
  • Xcode 5 部署目标仅限于 iOS 7

    What should be done for me to have the deployment target lower that 7 0 in my project preferences Now any new project I
  • NSMutableRLEArray objectAtIndex: effectiveRange:: 越界

    我尝试将属性分配给最后 3 个字符newClock字符串 即 3 33 23 但是我在构建时遇到错误NSRange NSMutableAttributedString mas NSMutableAttributedString alloc
  • 将渲染后效果应用于 XNA 中的 SpriteBatch

    在 XNA 框架中 有没有一种方法可以使用典型的 SpriteBatch 方法渲染 2D 场景 然后在渲染该帧后将效果应用于整个图像 例如 模糊 棕褐色甚至使整个事情看起来像旧电影胶片 带有颗粒 灰尘 线条等 是的 您要做的就是将渲染目标设
  • 在 iOS 中擦除绘图

    我正在开发一个绘图应用程序 我有一个UIBezierPath 我用它在touchesMoved中绘制 并将其转换为CGPath 然后在tCGplayer上绘制 这是我的代码 void touchesMoved NSSet touches w
  • 无法验证包:721772200.itmsp

    我写这篇文章是因为我有一个严重的问题 我在cartoonsmart 网站上购买了Commander Cool 游戏 然而 一个严重的问题发生了 iTune Connect 验证无法接受该申请 我尝试从两个不同的开发者帐户发布它 但错误仍然发
  • iOS9 Sprite 套件问题

    一切都很顺利 直到我升级到 xCode 7 和 iOS 9 我当前的项目是一个 2D 平台游戏 自从升级以来 我就陷入了我们许多人似乎都面临的精灵套件错误 错误的困扰 我的问题是 每次游戏在模拟器或设备上运行时 所有精灵的 zPositio
  • iOS7 UIStatusBar 模糊不正确

    我使用 UIToolbar 作为屏幕顶部的控件 没有导航控制器 工具栏具有我想要的外观 但是状态栏完全清晰 我似乎无法模仿 UIToolbar 的透明度的模糊性 有没有人遇到过不涉及使用导航控制器的解决方案 为了实现这一点 您需要实现 UI
  • iPhone/iPad 可以像 iBooks 一样绘制 pdf 吗?

    有谁知道如何使用核心图形来绘制pdf 就像在iBooks中一样 我已经可以使用核心图形绘制 pdf 页面 但很好奇 iBooks 如何显示每个页面的较低质量视图 以便加载速度更快 然后当您在页面上停留更长时间时 它会呈现完整的质量 这使得它
  • 以编程方式更改分辨率 OS X

    我的问题很简单 我正在开发一款游戏 正如标题所述 我希望能够以编程方式更改 OS X 上的显示分辨率 刷新率 我已经搜索了几个小时 但找不到任何东西 我已经知道如何创建全屏窗口 我还想获取支持的分辨率和刷新率的列表 来自苹果的适用于 Mac
  • iOS 7 |导航栏/工具栏按钮非常靠近状态栏

    将导航栏或工具栏 故事板 拖动到视图控制器时遇到问题 UI导航栏 如上图所示 右侧按钮几乎与状态栏重叠 对于 UIToolbar 来说 情况是一样的 该视图控制器旨在用作模态 这就是我不使用 UINavigationController 的
  • iOS7 色调颜色仅在呈现并关闭另一个 ViewController 后才起作用

    我在 iOS7 中遇到了一个非常奇怪的色调问题 当我第一次加载时遇到问题的 ViewController 时 所有色调都是浅灰色 就好像一切都处于非活动状态或位于使屏幕变暗的 UIAlertView 后面 这些按钮仍然处于活动状态并且工作正
  • 如何在可可中获取图像的作者

    我不明白为什么metaDic 总是为空 有一个代码 CFDataRef dataRef CGDataProviderCopyData CGImageGetDataProvider img CGImage UIImage img CGImag
  • SpriteKit SKTexture 崩溃

    不知道为什么这不起作用 当它尝试创建船舶节点时 它会因 EXC BAD ACCESS 而崩溃 SKTexture tex SKTexture textureWithImageNamed Spaceship CIFilter filter C
  • 如何在 SKAction 中途反转精灵所遵循的路径方向?

    我有一个 SKSpriteNode 它使用 SKAction 沿着圆形路径移动 create the path our sprite will travel along let circlePath CGPathCreateWithElli

随机推荐

  • cmake 是否可以选择避免使用未定义的变量(如 bash set-u)

    Does cmake有一种在使用未定义变量时生成错误的机制 有点像set u选项中bash 我有一个由多个项目组成的大项目CMakeLists txt文件 大约 1500 行 所以使用这种结构是相当困难的 if NOT DEFINED VA
  • 在 Angular 2 中重置模板驱动的表单(模型和验证)

    我们如何重置控件的验证状态模板驱动角度 2 的形式 我知道可以通过设置控件所绑定的模型值来重置控件 但是验证状态 原始 肮脏等 又如何呢 我尝试过这样的事情
  • 有没有办法在 C 中进行柯里化?

    假设我有一个指向函数的指针 stack push stack stk void el 我希望能够打电话curry stack push my stack 并返回一个只需要的函数void el 我想不出一种方法来做到这一点 因为 C 不允许运
  • 重定向时向 Zuul 添加标头

    我正在尝试使用Zuul将调用重定向到其他地方的下游系统 在重定向中 我需要添加一个包含必要数据的标头api接收重定向以进行处理 我似乎无法让下游系统检测到这些数据 附件是我的代码 我在用Zuul from Edgware SR3 Sprin
  • 杀死 Pthread 库中的线程

    I use pthread create thread1 attrs 如果发生某种情况需要杀死这个线程如何杀死它 首先存储线程id pthread create thr 然后稍后打电话 pthread cancel thr 但是 这不是推荐
  • C 中的“由于数据类型范围有限,比较始终为真”警告?

    我有以下代码 Point h define WIDTH 8 define HEIGHT 8 typedef struct Point char x char y Point Board c include
  • 给出 3 个点和一个绘图圆

    我想将点 0 1 1 0 和 0 1 提供给 python 并绘制经过它们的圆 是否存在一个Python模块可以做到这一点 我尝试过使用 matplotlib import matplotlib pyplot as plt plt plot
  • 无法从phonegap中的sd卡读取图像文件:android

    我是一个phonegap新手 我正在尝试使用 Android 中的 SD 卡读取图像文件 PhoneGap官方教程 问题是图像没有显示 而是在其位置出现一个问号 My Code var pictureSource var destinati
  • 使用指针作为容器迭代器是否违反标准

    安吉发表了评论 that a vector使用原始指针作为迭代器类型就可以了 这让我有点困惑 我开始研究它 发现需要vector迭代器只是它们 随机访问迭代器 明确指出指针符合以下条件 指向数组元素的指针满足所有要求 这是编译器提供迭代器的
  • UI-router,在服务中使用stateparams

    我有这样的状态 state admin category url category templateUrl views admin category html resolve category CategoryLoader function
  • ERR背后的实际信号是什么

    我在几个地方 包括SO 读到 e被认为是 糟糕的形式 并且在出现任何错误时退出脚本都是不可靠的 处理错误的更好方法似乎是使用trap 像这样 trap echo there was an error exit 1 ERR 我似乎无法在手册页
  • 转到 C 中的特定地址

    如何 JMP 到 C 中的特定地址 我想用 goto 0x10080000 这不起作用 还有其他方法可以更改程序计数器的地址吗 You can cast函数指针的地址 然后跳转到 void void 0x10008000 为了更清楚一点 t
  • MySQL 中的错误 1064 (42000)

    我正在尝试使用从 MS SQL Azure 数据库创建的数据库转储来填充新的 MySQL 空数据库 但出现以下错误 ERROR 1064 42000 at line 1 您的 SQL 语法有错误 检查与您的 MySQL 服务器版本对应的手册
  • 在 ruby​​ 中运行系统命令并与之交互

    我需要在命令行上运行一个命令来请求用户响应 如果有帮助的话 命令是 gpg recipient Some Name encrypt some file txt 当您运行此命令时 它会发出警告 然后询问 还用这个键吗 是 否 回答 y 让其正
  • 计算预处理器宏

    我有这个宏代码 它允许我定义C枚举和使用一个构造的字符串形式的枚举名称列表 它使我不必重复枚举器名称 并且可能会为大型列表引入错误 define ENUM DEFINITIONS F F 0 Item1 F 5 Item2 F 15 Ite
  • [OVERFLOW:HIDDEN] 的替代方案

    我目前正在我们的系统中工作 我发现很难在 HTML 中使用溢出 请看看我的小提琴 并尝试把 overflow hidden in nav holder background 333333 padding left 30px padding
  • 如何模拟 RxJs 6 计时器?

    我们最近从 Angular 5 更新到 Angular 6 并随之更新为 RxJs 6 作为迁移的一部分 计时器的使用已更改为 Observable timer to timer 在我们的测试中有很多地方我们使用以下模式模拟计时器可观察值
  • 放大用户位置 - Swift

    我不知道如何让地图从 viewDidLoad 放大用户位置 我尝试设置一个区域 但没有成功 这是我的代码 有什么提示吗 IBOutlet 弱变量mapView MKMapView var MapViewLocationManager CLL
  • pycharm中的Tensorflow.keras.layers“未解析的参考”

    我刚刚安装了tensorflow 并正在尝试让基础知识发挥作用 但是 导入语句以红色下划线显示 并显示消息 未解析的引用 层 不过代码确实运行正确 我已经尝试过这个问题中的一些建议 PyCharm 显示有效代码的未解析引用错误 然而 这个问
  • 在 Spritekit 中用两种颜色绘制矩形/圆形和三角形。 。 。

    我可以使用简单的 SKSpriteNode 绘制矩形 但我无法在其中绘制其他类型的图画 例如具有两种分色的三角形 圆形等 有人建议使用 CGPath 但我是新手 不知道画这种复杂的东西 请任何人都可以说明在 SPRITEKIT 中使用多色来