Ios 应用脉冲不正常工作
我一直在开发一款游戏,其中彩色圆点(SpriteKitShapeNodes)从屏幕顶部下降到底部。以前,我使用SpriteKit重力让圆点落下,但我决定要改善落下的效果,并决定改用脉冲。出于某种奇怪的原因,这些点没有接收到脉冲或其他东西。这些点根本不动。感兴趣的是“更改[颜色]”功能Ios 应用脉冲不正常工作,ios,swift,sprite-kit,Ios,Swift,Sprite Kit,我一直在开发一款游戏,其中彩色圆点(SpriteKitShapeNodes)从屏幕顶部下降到底部。以前,我使用SpriteKit重力让圆点落下,但我决定要改善落下的效果,并决定改用脉冲。出于某种奇怪的原因,这些点没有接收到脉冲或其他东西。这些点根本不动。感兴趣的是“更改[颜色]”功能 var Green = SKShapeNode() var Red = SKShapeNode() var Yellow = SKShapeNode() var Purple = SKShapeNode() var
var Green = SKShapeNode()
var Red = SKShapeNode()
var Yellow = SKShapeNode()
var Purple = SKShapeNode()
var Blue = SKShapeNode()
var Green2 = SKShapeNode()
var Red2 = SKShapeNode()
var Yellow2 = SKShapeNode()
var Purple2 = SKShapeNode()
var Blue2 = SKShapeNode()
//var sparkEmitter = SKEmitterNode(fileNamed: "Animations/Spark")
let userDefaults = NSUserDefaults.standardUserDefaults()
var ScoreLabel:SKLabelNode!
var HighScoreLabel:SKLabelNode!
var RestartLabel:SKLabelNode!
var BackButton:SKSpriteNode!
var π = M_PI
var clickPlayer: AVAudioPlayer = AVAudioPlayer()
var hitPlayer: AVAudioPlayer = AVAudioPlayer()
var jumpPlayer: AVAudioPlayer = AVAudioPlayer()
var musicPlayer: AVAudioPlayer = AVAudioPlayer()
var pointPlayer: AVAudioPlayer = AVAudioPlayer()
var pop2Player: AVAudioPlayer = AVAudioPlayer()
var Background = SKSpriteNode()
var startTimer = NSTimer()
var CustomWidth: UInt32 = UInt32()
override func didMoveToView(view: SKView) {
/* Setup your scene here */
//Add this back in if you want the color needed to change every minute
//var timer = NSTimer.scheduledTimerWithTimeInterval(60, target: self, selector: "update", userInfo: nil, repeats: true)
CustomWidth = UInt32(frame.size.width - 300)
print("Normal Width Is: \(frame.size.width)")
print("Other Width Is: \(UIScreen.mainScreen().bounds.size.width)")
print("Middle is: \(self.size.width / 2)")
self.size.width = UIScreen.mainScreen().bounds.size.width
self.size.height = UIScreen.mainScreen().bounds.size.height
print("Width is now: \(self.size.width)")
Background = SKSpriteNode(imageNamed: "images/edit/background")
Background.position = CGPoint(x: self.frame.size.width / 2, y: self.frame.size.height / 2 )
Background.zPosition = -1.0
self.addChild(Background)
//Physics
//self.physicsWorld.gravity = CGVector( dx: 0.0, dy: -0.2 )
//self.physicsWorld.contactDelegate = self
print(physicsWorld.speed)
setupCircles()
spawnCircles()
changeColorNeeded()
func restartGame() {
//self.physicsWorld.speed = 1.0
spawnCircles()
changeColorNeeded()
removeRestartLabel()
addBackScoreLabels()
//self.physicsWorld.gravity = CGVector( dx: 0.0, dy: -0.2 )
}
func setupCircles() {
Green = SKShapeNode(circleOfRadius: radius) // Size of Circle
Green.position.y = frame.size.height
Green.strokeColor = SKColor.clearColor()
Green.glowWidth = 1.0
Green.fillColor = SKColor.greenColor()
Green.physicsBody = SKPhysicsBody(circleOfRadius: radius)
Green.physicsBody?.categoryBitMask = Physics.Enemy
Green.physicsBody?.contactTestBitMask = Physics.Bar
Green.physicsBody?.collisionBitMask = Physics.Bar
Green.physicsBody?.dynamic = true
Green.name = "Enemy"
Red = SKShapeNode(circleOfRadius: radius) // Size of Circle
Red.position.y = frame.size.height
Red.strokeColor = SKColor.clearColor()
Red.glowWidth = 1.0
Red.fillColor = SKColor.redColor()
Red.physicsBody = SKPhysicsBody(circleOfRadius: radius)
Red.physicsBody?.categoryBitMask = Physics.Enemy
Red.physicsBody?.contactTestBitMask = Physics.Bar
Red.physicsBody?.collisionBitMask = Physics.Bar
Red.physicsBody?.dynamic = true
Red.name = "Enemy"
Blue = SKShapeNode(circleOfRadius: radius) // Size of Circle
Blue.position.y = frame.size.height
Blue.strokeColor = SKColor.clearColor()
Blue.glowWidth = 1.0
Blue.fillColor = SKColor.blueColor()
Blue.physicsBody = SKPhysicsBody(circleOfRadius: radius)
Blue.physicsBody?.categoryBitMask = Physics.Enemy
Blue.physicsBody?.contactTestBitMask = Physics.Bar
Blue.physicsBody?.collisionBitMask = Physics.Bar
Blue.physicsBody?.dynamic = true
Blue.name = "Enemy"
Yellow = SKShapeNode(circleOfRadius: radius) // Size of Circle
Yellow.position.y = frame.size.height
Yellow.strokeColor = SKColor.clearColor()
Yellow.glowWidth = 1.0
Yellow.fillColor = SKColor.yellowColor()
Yellow.physicsBody = SKPhysicsBody(circleOfRadius: radius)
Yellow.physicsBody?.categoryBitMask = Physics.Enemy
Yellow.physicsBody?.contactTestBitMask = Physics.Bar
Yellow.physicsBody?.collisionBitMask = Physics.Bar
Yellow.physicsBody?.dynamic = true
Yellow.name = "Enemy"
Purple = SKShapeNode(circleOfRadius: radius) // Size of Circle
Purple.position.y = frame.size.height
Purple.strokeColor = SKColor.clearColor()
Purple.glowWidth = 1.0
Purple.fillColor = SKColor.purpleColor()
Purple.physicsBody = SKPhysicsBody(circleOfRadius: radius)
Purple.physicsBody?.categoryBitMask = Physics.Enemy
Purple.physicsBody?.contactTestBitMask = Physics.Bar
Purple.physicsBody?.collisionBitMask = Physics.Bar
Purple.physicsBody?.dynamic = true
Purple.name = "Enemy"
self.addChild(Green)
self.addChild(Red)
self.addChild(Blue)
self.addChild(Yellow)
self.addChild(Purple)
}
func changeGreen(){
if IsPaused == false{
Green.position.y = frame.size.height + CGFloat(arc4random_uniform(100) + 1)
var PositionX: CGFloat = CGFloat(UInt32(radius) + arc4random_uniform(UInt32(self.frame.width - 2.0 * radius)))
Green.position.x = CGFloat(PositionX)
while Green.containsPoint(Red.position) || Green.containsPoint(Blue.position) || Green.containsPoint(Yellow.position) || Green.containsPoint(Purple.position) {
print("Overlap Detected")
changeGreen()
}
let randomX: CGFloat = CGFloat(drand48())
print("RandomX For Impulse = \(randomX)")
self.Green.physicsBody?.applyImpulse(CGVectorMake(0, 0.1))
}
}
func changeRed(){
if IsPaused == false{
Red.position.y = frame.size.height + CGFloat(arc4random_uniform(100) + 1)
var PositionX: CGFloat = CGFloat(UInt32(radius) + arc4random_uniform(UInt32(self.frame.width - 2.0 * radius)))
Red.position.x = CGFloat(PositionX)
while Red.containsPoint(Blue.position) || Red.containsPoint(Yellow.position) || Red.containsPoint(Green.position) || Red.containsPoint(Purple.position) {
print("Overlap Detected")
changeRed()
}
let randomX: CGFloat = CGFloat(drand48())
print("RandomX For Impulse = \(randomX)")
self.Red.physicsBody?.applyImpulse(CGVectorMake(0, 0.1))
}
}
func changeBlue() {
if IsPaused == false{
Blue.position.y = frame.size.height + CGFloat(arc4random_uniform(100) + 1)
var PositionX: CGFloat = CGFloat(UInt32(radius) + arc4random_uniform(UInt32(self.frame.width - 2.0 * radius)))
Blue.position.x = CGFloat(PositionX)
while Blue.containsPoint(Red.position) || Blue.containsPoint(Yellow.position) || Blue.containsPoint(Green.position) || Blue.containsPoint(Purple.position) {
print("Overlap Detected")
changeBlue()
}
let randomX: CGFloat = CGFloat(drand48())
print("RandomX For Impulse = \(randomX)")
print("Applying Impulse")
self.Blue.physicsBody?.applyImpulse(CGVectorMake(0, 0.1))
}
}
func changeYellow() {
if IsPaused == false{
Yellow.position.y = frame.size.height + CGFloat(arc4random_uniform(100) + 1)
var PositionX: CGFloat = CGFloat(UInt32(radius) + arc4random_uniform(UInt32(self.frame.width - 2.0 * radius)))
Yellow.position.x = CGFloat(PositionX)
while Yellow.containsPoint(Red.position) || Yellow.containsPoint(Blue.position) || Yellow.containsPoint(Green.position) || Yellow.containsPoint(Purple.position) {
print("Overlap Detected")
changeYellow()
}
let randomX: CGFloat = CGFloat(drand48())
print("RandomX For Impulse = \(randomX)")
self.Yellow.physicsBody?.applyImpulse(CGVectorMake(0, 0.1))
}
}
func changePurple() {
if IsPaused == false{
Purple.position.y = frame.size.height + CGFloat(arc4random_uniform(100) + 1)
var PositionX: CGFloat = CGFloat(UInt32(radius) + arc4random_uniform(UInt32(self.frame.width - 2.0 * radius)))
Purple.position.x = CGFloat(PositionX)
while Purple.containsPoint(Red.position) || Purple.containsPoint(Blue.position) || Purple.containsPoint(Yellow.position) || Purple.containsPoint(Green.position) {
print("Overlap Detected")
changePurple()
}
let randomX: CGFloat = CGFloat(drand48())
print("RandomX For Impulse = \(randomX)")
self.Purple.physicsBody?.applyImpulse(CGVectorMake(0, 0.1))
}
}
func spawnCircles() {
changeRed()
changeBlue()
changeGreen()
changeYellow()
changePurple()
}
func randomYPos() -> Double{
var rand = Double(arc4random_uniform(UInt32(0.10) + UInt32(0.8)))
return rand
}
func changeColorNeeded() -> SKColor {
colorNeeded = randomColor()
return self.colorNeeded
}
func randomColor() -> SKColor{
var colors: [SKColor] = [SKColor.yellowColor(), SKColor.blueColor(), SKColor.greenColor(), SKColor.redColor(), SKColor.purpleColor()]
var rand = Int(arc4random_uniform(4) + 0)
return colors[rand]
}
我看不出你的代码有任何明显的错误。 你有没有试着增加冲动的价值?。0.1似乎很低。如果你想让它们向下移动,你需要把它设为负值
如果您遵循swift编程指南,这也是一个好主意。属性不应该以大写字母开头,只有类、协议和结构应该以大写字母开头。这使您的代码更难阅读,因为它标记为蓝色,但不应该。我看不出您的代码有任何明显的错误。 你有没有试着增加冲动的价值?。0.1似乎很低。如果你想让它们向下移动,你需要把它设为负值
如果您遵循swift编程指南,这也是一个好主意。属性不应该以大写字母开头,只有类、协议和结构应该以大写字母开头。这使得你的代码更难阅读,因为它被标记为蓝色,但不应该。你一定要遵循命名约定,尤其是在StackOverflow上(因为突出显示错误),比如他在回答中指出的@crashoverride777(是的,0.1可能对你的身体没有影响)。你肯定应该遵循命名约定,尤其是在StackOverflow上(因为突出显示错误),比如他在回答中指出的@crashoverride777(是的,0.1可能对你的身体没有影响)。我已经尝试增加值。谢谢你的建议,真奇怪。你试过几个100吗?我试过增加数值。谢谢你的建议,真奇怪。你试过几次100码吗?