当前位置: 首页 > 面试题库 >

使用Spritekit的简单Gif动画

慕璞
2023-03-14
问题内容

我真的找不到一个简单的解决方案,我看到的每个示例都只显示了非常复杂的解决方案,但是我想要的只是2-3张循环显示的图像,因此看起来好像是动画的。与Gif动画效果相同。现在我有这个来创建图像

MonsterNode = SKSpriteNode(imageNamed: "MonsterNode_GameScene")

但是如何将MonsterNode变量设置为此类动画?我确实在寻找实现这一目标所需的最少代码。


问题答案:

主要思想是animateWithTextures用于此任务。您需要设置精灵需要进行动画处理的所有帧以及每个帧的显示时间。然后使用repeatActionForever运行动画循环。

// Add 3 frames
let f0 = SKTexture.init(imageNamed: "MonsterNode_GameScene_0")
let f1 = SKTexture.init(imageNamed: "MonsterNode_GameScene_1")
let f2 = SKTexture.init(imageNamed: "MonsterNode_GameScene_2")
let frames: [SKTexture] = [f0, f1, f2]

// Load the first frame as initialization
monsterNode = SKSpriteNode(imageNamed: "MonsterNode_GameScene_0")
monsterNode.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))

// Change the frame per 0.2 sec
let animation = SKAction.animateWithTextures(frames, timePerFrame: 0.2)
monsterNode.runAction(SKAction.repeatActionForever(animation))

self.addChild(monsterNode)


 类似资料:
  • 问题内容: 是否有人设法说服ImageIO编写动画GIF,尤其是设置正确的元数据?我的第一次尝试大致如下(其中b1和b2是BufferedImages): 这似乎几乎可以工作,但是: 我显然需要以某种方式设置“适当的”元数据来设置图像之间的时间,并理想地使它们循环(我天真地希望默认设置会做一些明智的事情,但嘿…) 它默认情况下写入的任何元数据显然都不是正确的:GIMP在加载文件时会给出一些错误消息

  • 1.4. GIF动画 下面的程序会演示Go语言标准库里的image这个package的用法,我们会用这个包来生成一系列的bit-mapped图,然后将这些图片编码为一个GIF动画。我们生成的图形名字叫利萨如图形(Lissajous figures),这种效果是在1960年代的老电影里出现的一种视觉特效。它们是协振子在两个纬度上振动所产生的曲线,比如两个sin正弦波分别在x轴和y轴输入会产生的曲线。

  • 是时候写一些代码了。让我们先添加一个简单的UIView对象到屏幕上并设置它的圆角。我们要把它添加到我们的主窗口上时因为它是一个快速的例子,但在真实的app界面中你需要添加到管理当前界面的视图控制器中。 UIView *redBall = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)]; redBall.backgroundCo

  • 问题内容: 我想使用python3和tkinter创建一个虚拟的宠物风格游戏。到目前为止,我已经有了主窗口并开始放入标签,但是我遇到的问题是播放动画gif。我在这里搜索并找到了一些答案,但是他们不断抛出错误。我发现使用PhotoImage的结果具有gif的索引位置,并在一定范围内继续。 当我在终端中使用“ pyhton3 main.py”运行此命令时,出现以下错误: _tkinter.TclErr

  • 问题内容: 我正在尝试制作一个程序来使用Tkinter显示动画GIF。这是我最初使用的代码: test.gif是以下GIF: 这可以正常工作,但是GIF的质量很糟糕。我尝试将其更改为以下内容: 但是,这偶尔会闪烁图像。虽然图片看起来不错,但是作为程序却毫无用处。我究竟做错了什么? 问题答案: 首先,您要为每个帧创建一个新的画布对象。最终,您将有成千上万的图像相互叠加。这是非常低效的;当您开始具有数

  • 问题内容: 是否可以使用JavaScript来控制显示图像的哪一帧和/或停止动画。我希望能够加载多个框架并仅显示其中一个。 我知道我可以用很多单独的图像来做,但是如果我可以用来做我想做的事,那就只需要担心一个文件了。 问题答案: 您可以使用libgif库。 它使您可以启动/停止gif并控制gif所在的帧。 (大多数代码直接取自其示例)