小编iGe*_*tIt的帖子

如何限制两条锚定线的运动,使它们像钟摆一样连续摆动

我创建了两条固定在精灵上的线,相距30˚.我希望两条线像摆锤一样左右摆动,总是从一端到另一端摆动(这样它们在它们的初始位置的左右摆动45°).请看下面我想要实现的目标:

在此输入图像描述

以下是我能够实现的代码:

extension Int {
  var degreesToRadians: Double { return Double(self) * .pi / 180 }
}
extension FloatingPoint {
  var degreesToRadians: Self { return self * .pi / 180 }
  var radiansToDegrees: Self { return self * 180 / .pi }
}

class GameScene: SKScene, SKPhysicsContactDelegate {

var anchorSprite = SKSpriteNode(imageNamed: "swingPin")
var armLeft = SKSpriteNode(imageNamed: "swingArm")
var armRight = SKSpriteNode(imageNamed: "swingArm")

override func didMove(to view: SKView) {


    self.physicsWorld.gravity = CGVector(dx: 0, dy: -1.8)
    self.physicsWorld.contactDelegate = self

    var tealBg …
Run Code Online (Sandbox Code Playgroud)

sprite-kit swift swift3

17
推荐指数
1
解决办法
380
查看次数

致命错误:为类使用未实现的初始化程序'init(size :)'

我在不同的设备上测试我的应用程序,并意识到精灵运动非常不一致(在某些设备上运行速度比其他设备快得多).我发现这篇文章并按照说明从我所有的SKScenes中删除了大小参数然后我得到了错误:

fatal error: use of unimplemented initializer 'init(size:)' for class 'SuperGame.PosterScene'
Run Code Online (Sandbox Code Playgroud)

请参阅PosterScene下面的GameViewController课程以及调用它的课程.

PosterScene

class PosterScene: SKScene {

 override init(){
    super.init()

    let posterImage = SKSpriteNode(imageNamed: "poster")
    posterImage.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
    self.addChild(posterImage)

    let sequence = SKAction.sequence([  SKAction.wait(forDuration: 3.0), SKAction.run({ self.changeToMainMenuScene() }) ])

    self.run(sequence)

}

func changeToMainMenuScene  ()  {

    let mainMenuScene = MainMenuScene()
    self.view!.presentScene(mainMenuScene)

}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}
}
Run Code Online (Sandbox Code Playgroud)

GameViewController:

class GameViewController: UIViewController {

override …
Run Code Online (Sandbox Code Playgroud)

ios sprite-kit swift swift3

10
推荐指数
1
解决办法
954
查看次数

如何增加(动画)两端方形的宽度?

在此输入图像描述

我创建了一个40x40的正方形,如上所示.我有一个4x40的条带,我想用来动画(增加)我的方块的宽度,直到它在一秒钟内占据整个屏幕的宽度,无论方块的位置如何.非常类似于双方加载进度条的情况.

UPDATE

我忘了提到方形是一个物理体,因此物理体也必须随着精灵的增加而增加.

sprite-kit swift swift2

9
推荐指数
1
解决办法
173
查看次数

如果我使用iPad尺寸创建我的应用程序,如何找到iPhone尺寸的"安全区域"?

我正在创建一个游戏,并希望使用iPad大小设置(格局:1024x768).据我所知,使用iPad设置只会在iPhone上裁剪出部分高度.假设iPad(1024x768)有2048x1536背景图像,iPhone 6+(736x414)有2208x1242图像,

一世.如何从iPad上确定出现在iPad 6+上的"安全区域"?

II.iPhone 6+的"安全区域"是否与带有1334x750图像的iPhone 6(667x375)相同?如果没有,那么如何同时确定点和像素呢?

iphone ipad ios sprite-kit

8
推荐指数
1
解决办法
178
查看次数

如何将Metatrader 4警报或电子邮件指示信号转换为EA交易以开启交易?

我一直在使用指标来进行交易.我没有开发指标,所以我只能访问该.ex4文件.如何在警报或电子邮件信号中提取止盈,开放交易和止损值以开启交易?请参阅下面的电子邮件和警报信号示例.

在此输入图像描述

在此输入图像描述

algorithmic-trading metatrader4 mql4

7
推荐指数
1
解决办法
2039
查看次数

如何在没有 SKTexture 的情况下更改 didBeginContact 中的 SKSpriteNode 大小和颜色?

我一直在使用 SKTexture 按以下方式更改 didBeginContact 中的 SKSpriteNode 颜色和大小。

if firstBody.categoryBitMask == spriteCategory && secondBody.categoryBitMask == enemyCategory    {
     var newSprite = firstBody.node
     let newImage = SKTexture(imageNamed: "newSprite.png")
     (newSprite as? SKSpriteNode)?.size = newImage.size() //magic
     oldToNewSpriteAction = SKAction.setTexture(newImage)
     newSprite!.runAction(oldToNewSpriteAction)
 }
Run Code Online (Sandbox Code Playgroud)

现在我正在创建一个没有 SKTextures 的示例代码,按以下方式设置我的 SKSpriteNodes:

oldSprite = SKSpriteNode(color: SKColor.blueColor(), size: oldSpriteSize)
newSprite = SKSpriteNode(color: SKColor.BrownColor(), size: newSpriteSize)
Run Code Online (Sandbox Code Playgroud)

如何在没有 SKTextures 的情况下更改 didBeginContact 中的精灵颜色和大小?

sprite-kit skspritenode swift swift2

5
推荐指数
1
解决办法
4550
查看次数

如何在SpriteKit SKScene类中启动ReplayKit屏幕录制

我已经ReplayKit在我的SpriteKit游戏中实现了,但由于一切都GameViewController在记录按钮内完成,显得过早.请看GameViewController下面我的课程:

class GameViewController: UIViewController, RPPreviewViewControllerDelegate {

var videoRecButton: UIButton!
var videoRecImage: UIImage!

override func viewDidLoad() {
    super.viewDidLoad()

    let skView = self.view as? SKView

    if skView?.scene == nil  {
        skView?.showsFPS = true
        skView?.showsNodeCount = true
        skView?.showsPhysics = true
        skView?.ignoresSiblingOrder = false

        //starting the game with the Poster Scene
        let posterScene = PosterScene(size: skView!.bounds.size)
        posterScene.scaleMode = .aspectFill
        skView?.presentScene(posterScene)
    }

    videoRecButton = UIButton(type: .custom)
    videoRecImage = UIImage(named:"videoRecButton.png")

    videoRecButton.frame = CGRect(x:0, y: 0, width: (videoRecImage?.size.width)!, height: …
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller ios sprite-kit swift replaykit

5
推荐指数
1
解决办法
1718
查看次数

如何在两条锚点之间保持30˚的距离

我正在尝试创建两条锚定在某个点(精灵)并旋转以在它们之间形成30度角的线.下面是我想要实现的图像.

在此输入图像描述

这是我到目前为止所做的:

extension Int {
  var degreesToRadians: Double { return Double(self) * .pi / 180 }
}
extension FloatingPoint {
  var degreesToRadians: Self { return self * .pi / 180 }
  var radiansToDegrees: Self { return self * 180 / .pi }
}

class GameScene: SKScene, SKPhysicsContactDelegate {

var anchorSprite = SKSpriteNode(imageNamed: "anchorSprite")
var armLeft = SKSpriteNode(imageNamed: "lineSprite")
var armRight = SKSpriteNode(imageNamed: "lineSprite")

override func didMove(to view: SKView) {

    self.physicsWorld.gravity = CGVector(dx: 0, dy: -1.8)
    self.physicsWorld.contactDelegate = self

    var tealBg …
Run Code Online (Sandbox Code Playgroud)

sprite-kit swift swift3

5
推荐指数
1
解决办法
112
查看次数