Javascript使球移动

时间:2017-09-12 18:46:30

标签: javascript

当我按 space 时,我试图让球移动,但我似乎无法弄明白该怎么做。

这是带有createjs libary的vanilla Javascript。任何人都可以帮助我并给我一点提示吗?

private var scrollTimer: Timer?
private var ObserveContext: Int = 0

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    table.addObserver(self, forKeyPath: "contentSize", options: NSKeyValueObservingOptions.new, context: &ObserveContext)
}

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    table.removeObserver(self, forKeyPath: "contentSize")
}

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
    if (context == &ObserveContext) {
        self.scheduleScrollToBottom()
    }
}

func scheduleScrollToBottom() {

    if (self.scrollTimer == nil) {
        self.scrollTimer = Timer(timeInterval: 0.5, repeats: false, block: { [weak self] (timer) in
            let table = self!.table

            let bottomOffset = table.contentSize.height - table.bounds.size.height
            if !table.isDragging && bottomOffset > 0 {
                let point: CGPoint = CGPoint(x: 0, y: bottomOffset)
                table.setContentOffset(point, animated: true)
            }

            timer.invalidate()
            self?.scrollTimer = nil
        })
        self.scrollTimer?.fire()
    }
}

1 个答案:

答案 0 :(得分:0)

因此,为了让你的对象移动,你需要一些东西。首先,你需要重新绘制它,你似乎已设置为每秒重绘60次。接下来,您必须更新对象的位置。你的球需要两个东西,一个速度X和一个速度Y.每个刻度,你将设置ball.x + = ball.velX,这样每次它移动它的位置及其移动速度,一旦它击中了什么,只需设置ball.velX = -ball.velX。

我不确定你正在做什么项目,但我认为它有点类似于pong,如果你想查看或使用我在我自己的乒乓游戏中使用的一些代码感觉自由 - http://pongio.bitballoon.com/