在 Sprite Kit 中显示像素艺术的最佳方式是什么?

2024-02-01

我很好奇如何为我的游戏展示像素艺术。现在我只是调整大小SKScene to be sceneWithSize:CGSizeMake(256, 192)这是正确的方法还是有更好的方法来完成此类任务?


首先,使用场景的默认大小 - 您不需要缩放或更改它们的大小,这很糟糕。

接下来,只需使用最近邻缩放方法预先缩放精灵(例如在 Photoshop 中) - 这可以保持像素分离并且不会引入抗锯齿。

例如,如果您有原始的 32x32 资源,请将其缩放到 64x64 或 128x128 并在游戏中使用它。它看起来会很棒。

另一种方法是让资源保持原始大小,但在运行时缩放它们。

这里 SKSpriteNode 的 .xScale 和 .yScale 属性就派上用场了。

但如果你缩放你的精灵,它就会失去其清晰度——抗锯齿伪像将会出现在各处。

您有两种方法来处理这个问题 - 首先创建纹理并将其过滤方法设置为最近的邻居,如下所示:

texture.filteringMode = SKTextureFilteringNearest;

但这很快就会失控,所以我建议改用 SKTextureAtlas 上的类别:

SKTextureAtlas+NearestFiltering.h

#import <SpriteKit/SpriteKit.h>

@interface SKTextureAtlas (NearestFiltering)

- (SKTexture *)nearestTextureNamed:(NSString *)name;

@end

SKTextureAtlas+NearestFiltering.m

#import "SKTextureAtlas+NearestFiltering.h"

@implementation SKTextureAtlas (NearestFiltering)

- (SKTexture *)nearestTextureNamed:(NSString *)name
{
    SKTexture *temp = [self textureNamed:name];
    temp.filteringMode = SKTextureFilteringNearest;
    return temp;
}

@end

这样你就可以通过调用这个方法来创建SKSpriteNodes:

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

在 Sprite Kit 中显示像素艺术的最佳方式是什么? 的相关文章

  • Mac OS Cocoa:在画布上绘制一个简单的像素

    我希望我能找到这个问题的答案 我搜索了又搜索 找不到正确的答案 这是我的情况 在 Mac OS Cocoa 应用程序中 我想在应用程序窗口的专用区域上绘制一个像素 实际上是几个像素 我想 如果有一个就更好了NSImageView放置在那里
  • 将 CIELab 转换为 CIELCh(ab) 未产生正确结果

    我很难用计算器手动将 CIELab 转换为 CIELCh 根据http www easyrgb com en math php http www easyrgb com en math php 以下是通过从弧度到度数从 CIELab 到 C
  • 如何在 SKSpriteNode 上创建脉冲效果?

    您好 我想了解如何创建视觉脉冲效果 如下面的视频所示 https www youtube com watch v uiHj KZWjpU https www youtube com watch v uiHj KZWjpU 我点击了视频中发布
  • 以编程方式创建物理约束区域,SpriteKit

    我想要两个区域 如下图所示 其中黄色区域包含精灵 例如 我想让黄色区域中的球在黄色区域的边界上弹跳和反射 如何在不使用 sks 文件的情况下以编程方式执行此操作 您可以使用以下命令创建基于边缘的物理体 bodyWithEdgeLoopF r
  • 如何设置 BufferedImage 中的 RGB 像素以显示 16 位深度的 PNG?

    我正在尝试读取并显示 PNG 文件 我处理 8 位深度的图像没有问题 我按如下方式进行 BufferedImage result new BufferedImage width height BufferedImage TYPE INT R
  • 像素转MM方程?

    有没有可靠的公式可以计算出 MM 的像素大小 或者说这不可能跨设备 我们正在使用一个定制系统 该系统可以向许多具有不同屏幕尺寸的设备提供内容 它可以检测 MM 中的屏幕宽度 但我们希望将其准确地转换为像素大小 以便使用简单的 jquery
  • 将颜色对象“舍入”到最接近的颜色常量的最佳方法是什么?

    我将检索像素的确切颜色 并希望将该确切颜色与常量相关联 例如Color blue 有没有一种简单的方法可以 舍入 到最接近的颜色常数 此外 有没有办法定义自己的颜色常量 基本方法是通过简单地将样品与每个样品进行比较来找到与样品最接近的标准颜
  • Swift SKSpriteNode:检测点击/双击/长按

    我正在尝试创建 SKSpriteNode 的子类 它可以检测用户交互 点击 双击并按住 然后遵循委托 在我看来 这是一个相对常见的需求 但是 该代码无法在不触发单击的情况下检测双击 我根本没有找到检测按住 长按操作的方法 我这一切都错了吗
  • 如何将 CIPixellate Core Image Filter 添加到 Sprite Kit 场景?

    如何将 CIPixellate Core Image Filter 添加到 Sprite Kit 场景 我有一个 SpriteKit 场景 它是 SKScene 或其子类 我想向场景添加一个核心图像滤镜 特别是 CIPixellate 过滤
  • 如何检测位图中的红色像素

    android中的getPixels 是上下左右读取像素 还是左右上下读取像素 基本上是按行或列读取 如果我想知道图片中的红色值较高的位置 我可以这样做吗 我假设它是按列读取的 Bitmap thumbnail Bitmap data ge
  • SpriteKit:如何使用混合模式在图层中打孔

    我有一个简单的场景 添加了一些元素 现在我想专注于一个带有遮罩的特定元素 在与我想要关注的元素相同的位置切割整个元素 与我们在某些游戏第一次启动时看到的显示某种教程非常相似 基本上我添加了一个全屏层alpha 0 7 因此用户仍然可以看到所
  • javascript ImageData 类型数组读取整个像素?

    所以有很多关于如何的例子writeImageData 对象的 Uint32Array 视图中的整个像素 但是是否可以在不将计数器增加 4 倍的情况下读取整个像素呢 从hacks mozilla org https hacks mozilla
  • 使用 Swift 在 Sprite Kit 中构建棋盘游戏? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在使用 Swift 的 Sprite Kit 中 我试图构建一个国际象棋棋盘 实际上是一个类似国际象棋的棋盘 平铺网格 那么一般来说
  • SpriteKit - 对多个 SKNode 上运行的多个 SKAction 进行排序

    我非常了解 SKAction API 但在多个节点上运行顺序代码时我无法获得良好的代码 这是示例代码 简化 import SpriteKit class GameScene SKScene weak var node1 SKNode wea
  • 如何使用社交框架呈现 SKscene 中的 UIViewController?

    我正在制作一款类似 Flappy Bird 的游戏 如何从 SKScene 呈现 UIViewController 首先 我告诉我的环境 Mac OS X 10 9 Xcode 5 0 2 Sprite Kit framework soci
  • 将图像作为球分配给 SKShapeNode - Spritekit 游戏

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

    我建立了一个简约的项目here http override apps com wp content uploads iOS8 Test zip它只是添加一个红色方块 然后点击屏幕后 一个光源照亮它 在模拟器上它运行良好 但在我的 iPhon
  • 如何逐像素绘制正方形(Python,PIL)

    在空白画布上 我想使用 Pillow 逐像素绘制一个正方形 我尝试使用 img putpixel 30 60 155 155 55 绘制一个像素 但它没有执行任何操作 from PIL import Image def newImg img
  • 如果图像包含特定颜色则

    是否有一种简单的方法来检查图像是否包含特定的 RGB 颜色 例如 Dim img As Image Image FromFile C image png If img contains color red toRGB then 我认为检查这
  • 在java中将jpeg/png转换为像素数组

    如何将包含 jpeg 或 png 的字符串转换为像素数组 最好是一维 理想情况下使用java内置的类 原来你需要公共文件上传 http commons apache org fileupload 看着那 这用户指南 http commons

随机推荐

  • WebApi 自定义授权属性不起作用

    我需要使用活动目录中的一个或多个特定用户来保护我的 Web api 在 web config 中我有以下代码
  • 如何检查表达式是否包含复杂表达式?

    有没有办法检查表达式是否包含复杂表达式 虚数 文档说你无法检查表达式是否包含I因为它是如何解释的 我也尝试过ImaginaryQ expr expr Conjugate expr and Simplify expr Simplify Con
  • SCons 问题 - 不理解 Variables 类

    我正在为一个项目开发 SConstruct 构建文件 并且尝试从选项更新为变量 因为选项已被弃用 我不明白如何使用变量 我有 0 python 经验 这可能是造成这一点的原因 例如 我有这个 opts Variables opts Add
  • zip 主文件夹,其中包含子文件夹

    我有一个文件夹 里面有一些文件和子文件夹 我将如何读取目录并压缩主文件夹 Ex maindirectory file 1 file 2 subdirectory 1 file 3 file 4 subdirectory 2 file 5 f
  • while循环中的Javascript continue语句导致无限循环

    我正在尝试创建一个while用 continue 语句循环 然而 它似乎导致了无限循环 我不明白为什么 在我看来 下面的代码应该以var tasksToDo然后在 3 处递减至 0 途中跳过数字 2 var tasksToDo 3 whil
  • PDF 文件的正确 MIME 媒体类型

    在处理 PDF 时 我遇到过 MIME 类型application pdf and application x pdf除其他外 这两种类型之间有区别吗 如果有的话 区别是什么 其中一个比另一个更受青睐吗 我正在开发一款网络应用程序 它必须提
  • 如何将dump文件夹导入mongodb数据库?

    我创建了一个mongo dump从远程服务器和 bson and 元数据文件存储到文件夹中 我想要import将此文件夹放入我的本地mongodb 我在用robomongo as a mongodb client ui 我收到一些命令 这些
  • Angular 2:从 ngFor 动态生成的输入中检索数据

    我正在生成一些input text 从数组中使用ngFor 我需要检索用户在其中插入的信息inputs并通过按钮发送到函数 我的代码是下一个 感谢您提前提供的任何帮助 div class container div class well w
  • .NET 中的泛型和鸭子类型 XML?

    我正在使用数据实例的一些 XML 表示形式 我正在使用 NET 序列化来反序列化对象 但我的灵魂中的某些东西因必须编写类来表示 XML 而感到不安 下面是我想做的 但我不知道语法或它是否甚至是可能的 考虑以下 dim xmlObject S
  • PHP crypt() 返回错误答案

    我想我在这里失去了理智 我的网站遇到了一个问题 它随机停止接受登录 我现在已经能够追踪到 crypt 的行为非常奇怪 在我的数据库中 我有用户密码的加密版本 所以假设是 Og12345678 当用户登录时 他们输入密码 我从数据库中读取盐
  • 我应该具备哪些 C# 知识? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 一个非常开放的问题 我一直在用 C 编程 过去 5 个月我完成的小项目 成功地 今天我去参加了 C 职位的面试 第一个问题 是 告诉我有关拳击的事情
  • 如何在混合容器中选择班级的第一个孩子/最后一个孩子?

    我可以在包含不同类别的子级的 div 中选择某个类别的第一个和最后一个子级吗 例如 div class main div class red div div class red div div class red div div class
  • HTTPS 登录未将 JSESSIONID 保存在 cookie 中 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我们最近将
  • 如何找出文件的字节顺序?

    如何判断文件是大端还是小端 我只是尝试用 matlab 编写一个大端文件 但可能不起作用 现在我想知道是否可以了解它是什么类型 有什么建议吗 一般来说 无法知道给定的数据文件是使用大端字节格式还是小端字节格式创建的 您需要了解文件的类型 如
  • 从 task.run 传递 Grunt 配置选项

    尝试了一些方法 似乎无法让它发挥作用 但我本以为这很简单 我试图在任务运行时将变量 选项传递到 Grunt 初始化配置中 目前我有两个单独的配置 sass dev options style expanded files expand tr
  • 抽象代数和编程[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我要开始学习抽象代数 群 环等 我有兴趣了解任何编程语言 如果有的话 可以帮助我学习 尝试我在理论上学到
  • 如何删除 QPixmap 周围的额外边距?

    我画一个QRectF in the paint我的班级的功能并设置QPixmap作为它的刷子 我从包含此的类构建一个对象QRectF 当我将此项目放入场景并设置场景背景时 会出现 QRectF 它也发生在一个QPixmap我添加到场景中 我
  • 如何模拟 JTextField 上的单击?相当于 JButton doClick()?

    我正在开发一个 Java 项目 需要让按键模拟 JTextField 上的单击 我正在寻找相当于 JButton doClick 方法 我试图让按键 enter 执行与单击 JTextField 完全相同的功能 不确定要提供哪些其他信息 提
  • 将焦点设置到 uwp 中的文本框[重复]

    这个问题在这里已经有答案了 我有一个具有 textBox 元素的通用 Windows 平台项目 我想在单击单选按钮时将焦点设置到它 在单选按钮单击事件中 我可以说 txtBoxID IsEnabled true txtBoxID Text
  • 在 Sprite Kit 中显示像素艺术的最佳方式是什么?

    我很好奇如何为我的游戏展示像素艺术 现在我只是调整大小SKScene to be sceneWithSize CGSizeMake 256 192 这是正确的方法还是有更好的方法来完成此类任务 首先 使用场景的默认大小 您不需要缩放或更改它