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