带有位图的游戏从右边随机出现

时间:2015-08-03 23:25:33

标签: java android eclipse random bitmap

所以我想制作一个游戏,其中有一个上下方形的正方形,然后右侧出现红色正方形并向左滑动。到目前为止,我只设法让一个红色方块随机出现并向左滑动,但我似乎无法制作其他人。我要做的是设置一个类似计时器的东西,这样每隔一秒左右就会出现一个新的红色正方形。当我运行游戏时,所有发生的事情都是看到广场,从右到左有一个红色正方形。请告诉我可以添加的内容,以便显示更多的红色方块。请帮忙。

代码:

import UIKit

@IBDesignable class DateView: UIView {

private let _dateLabel = UILabel()

func initLabel() {
    _dateLabel.frame = CGRectMake(0, 0, self.bounds.width, self.bounds.height)
    addSubview(_dateLabel)
}

override init(frame: CGRect) {
    super.init(frame: frame)
    initLabel()
}

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    initLabel()
}
}

1 个答案:

答案 0 :(得分:0)

我对你的设置感到有些困惑,但我会试一试。

if(System.nanoTime() - lastSquareTime > 1500000000) { 
    startRedSquares();  
}

这段代码不应该在onCreate中。 onCreate只被调用一次,所以它永远不会开始用这个if语句创建更多的红色方块。您应该在run方法中检查该计时器,这是游戏循环。所以,更像这样:

while(running == true){ 
            if(!holder.getSurface().isValid()){
                continue;
            } 

            canvas = holder.lockCanvas();
            canvas.drawRGB(100, 100, 100);
            canvas.drawBitmap(square, x - (square.getWidth()/2), y - (square.getHeight()/2), null);
            canvas.drawBitmap(redSquare, redSquareX, redSquareY, null);
            holder.unlockCanvasAndPost(canvas);
            y = y + 4;

            if(SOME TIMER HAS EXPIRED) {
                //add another red square to the list
                //reset timer 
            }
            //DECREMENT THE TIMER 
            //CHECK IF ANY SQUARE IS OFF THE SCREEN AND REMOVE IT FROM LIST
            //LOOP THROUGH LIST AND MOVE ALL REDSQUARES

            redSquareX = redSquareX - 1;

}

或者我也建议为你的redsquares制作一个类,然后制作RedSquare对象的ArrayList。然后,当您遍历每个RedSquare对象时,可以调用自己的方法(updateMovement,checkIfOffScreen,drawRedSquare)或任何您想要调用它们的方法。