Reputation: 713
When a button is pressed, a shot node is fired from a character node's position and moves to x direction. If it is collided with a node, then both nodes disappear.
func attackButton() {
_weapon.removeFromParent()
_weapon.position = CGPointMake(character.position.x, charater.position.y)
_weapon.startMoving()
addChild(_weapon)
character.throwWeapon()
}
When this function is triggered, normally it works without any problem. However, when I press jumpButton
, which enables the character to jump to the Y direction, and 'attackButton', the character's coordinates are somehow affected. The character moves and sometimes rotates. From my code, I never wrote anything that causes it to move to different directions. This gets me annoying. I cannot come up with any solution to prevent that from occurring. Is there anyone who knows how to solve this?
Upvotes: 0
Views: 51
Reputation: 2226
You're providing less code than I'm able to work from so I'm going to say what I think that is happening:
The weapon is being spawned at the exact same position as the character but it's being moved out of it really quickly by the physics engine. This positional correction applies impulses to the character body, causing it to rotate.
You can solve this problem in two different ways:
Try changing your 5th line to something like this:
_weapon.position = CGPointMake(character.position.x + character.size.width / 2, charater.position.y)
Upvotes: 1