我想在上面移动一个SKSpriteNode Y-Axis.名为Player的SKSpriteNode没有Velocity.播放器只有在平台接触时才能跳转.
每次触摸屏幕时,我都想给玩家一个最小冲动或最大冲动的冲动
如果屏幕很快被点击,最小脉冲应该是例如y = 50.如果屏幕被保持,这意味着手指在屏幕上长,最大值应该是例如y = 100.
但是玩家也应该能够在最小高度和最高高度之间跳跃,如果对于例如屏幕不长但也没有很快按下,玩家应该只能得到一个冲动y = 70.
如果屏幕被保持,播放器应该跳到他的最大高度,跌倒,如果它再次与平台接触,它应该跳,因为你仍然按住屏幕.
我已经尝试过这个线程中的建议答案:StackOverFlow 但是这不会给出最小跳跃,也没有按下跳转.
为清楚起见:冲击不应该在敲击完成后,而是在敲击时.你握的时间越长,跳跃的时间就越长.
import SpriteKit
import GameKit
struct Constants {
static let minimumJumpForce:CGFloat = 40.0
static let maximumJumpForce:CGFloat = 60.0
static let characterSideSpeed:CGFloat = 18.0
}
class GameScene: SKScene, SKPhysicsContactDelegate {
var Player: SKSpriteNode!
var Platform0: SKSpriteNode!
var World: SKNode!
var Camera: SKNode!
var force: CGFloat = 40.0
var pressed = false
var isCharacterOnGround = false
.....
func …Run Code Online (Sandbox Code Playgroud)