ios – 检查场景中的位置是否被精灵占用

ios – 检查场景中的位置是否被精灵占用,第1张

概述我正在使用 Xcode,SpriteKit和 Swift构建我的第一款iPhone游戏.我是这些技术的新手,但我熟悉一般的编程概念. 这是我想用英语做的事情.我希望圈子随机出现在屏幕上,然后开始扩大尺寸.但是,我不希望圆圈出现在当前存在圆圈的位置.我无法确定每个圆圈的位置. 在GameScene.swift里面我在didMoveToView中有以下代码: runAction(SKAction.re 我正在使用 Xcode,SpriteKit和 Swift构建我的第一款iPhone游戏.我是这些技术的新手,但我熟悉一般的编程概念.

这是我想用英语做的事情.我希望圈子随机出现在屏幕上,然后开始扩大尺寸.但是,我不希望圆圈出现在当前存在圆圈的位置.我无法确定每个圆圈的位置.

在GameScene.swift里面我在dIDMovetoVIEw中有以下代码:

runAction(SKAction.repeatActionForever(        SKAction.sequence([            SKAction.runBlock(addCircle),SKAction.waitForDuration(3,withRange: 2)]        )))

上面的代码调用我的“addCircle”方法:

func addCircle() {    // Create sprite.    let circle = SKSpriteNode(imagenamed: "grad640x640_circle")    circle.name = "circle"    circle.xScale = 0.1    circle.yScale = 0.1    // Determine where to position the circle.    let posX = random(min: 50,max: 270)    let posY = random(min: 50,max: 518)    // ***Check to see if position is currently occupIEd by another circle here.    circle.position = CGPoint(x: posX,y: posY)    // Add circle to the scene.    addChild(circle)    // Expand the circle.    let expand = SKAction.scaleBy(2,duration: 0.5)    circle.runAction(expand)}

上面的随机函数只选择给定范围内的随机数.如何查看我的随机函数是否正在生成当前被另一个圆占据的位置?

我正在考虑使用do..while循环来随机生成一组x和y坐标,然后检查一个圆是否在该位置,但我找不到如何检查该条件.任何帮助将不胜感激.

解决方法 在这方面,有几种方法可以帮助您:

>(BOol)intersectsNode:(SKNode *)节点,可与SKNode一起使用,和
> CGRectContainsPoint()以及CGRectContainsRect()方法.

例如,检查交集的循环可以如下所示:

var point: CGPointvar exit:Bool = falsewhile (!exit) {    let posX = random(min: 50,max: 518)    point = CGPoint(x: posX,y: posY)    var pointFound: Bool = true    self.enumerateChildNodesWithname("circle",usingBlock: {        node,stop in        let sprite:SKSpriteNode = node as SKSpriteNode        if (CGRectContainsPoint(sprite.frame,point))        {            pointFound = false            stop.memory = true        }    })    if (pointFound)    {        exit = true    }}//point contains CGPoint where no other circle exists//Declare new circle at point
总结

以上是内存溢出为你收集整理的ios – 检查场景中的位置是否被精灵占用全部内容,希望文章能够帮你解决ios – 检查场景中的位置是否被精灵占用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1012418.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存