📄 tumbleweed.java
字号:
import java.util.Random;import javax.microedition.lcdui.*;import javax.microedition.lcdui.game.*;public class Tumbleweed extends Sprite { static int WIDTH = 16; Random myRandom = new Random(); boolean myJumpedOver; // 是否被跳过 boolean myLeft; // 是否是从左边而来 int myY; // 纵向位置 /** * 构造方法 */ public Tumbleweed(boolean left) throws Exception { super(Image.createImage("/icons/tumbleweed.png"), WIDTH, WIDTH); myY = JumpManager.DISP_HEIGHT - WIDTH - 2; myLeft = left; if(!myLeft) { setTransform(TRANS_MIRROR); } myJumpedOver = false; setVisible(false); } /** * 重置 */ void reset() { setVisible(false); myJumpedOver = false; } /** * 步进,改变其图片,并计算得分 */ int advance(Cowboy cowboy, int tickCount, boolean left, int currentLeftBound, int currentRightBound) { int retVal = 0; // 已出界,被重置,以便重新使用 if((getRefPixelX() + WIDTH <= currentLeftBound) || (getRefPixelX() - WIDTH >= currentRightBound)) { setVisible(false); } if(!isVisible()) { int rand = getRandomInt(100); if(rand == 3) { // 以3%的机会被利用 myJumpedOver = false; setVisible(true); if(myLeft) { setRefPixelPosition(currentRightBound, myY); move(-1, 0); } else { setRefPixelPosition(currentLeftBound, myY); move(1, 0); } } } else { if(tickCount % 2 == 0) { // slow the animation down a little nextFrame(); } if(myLeft) { move(-3, 0); if((! myJumpedOver) && (getRefPixelX() < cowboy.getRefPixelX())) { myJumpedOver = true; retVal = cowboy.increaseScoreThisJump(); } } else { move(3, 0); if((! myJumpedOver) && (getRefPixelX() > cowboy.getRefPixelX() + Cowboy.WIDTH)) { myJumpedOver = true; retVal = cowboy.increaseScoreThisJump(); } } } return(retVal); } /** * 随机数 */ public int getRandomInt(int upper) { int retVal = myRandom.nextInt() % upper; if(retVal < 0) { retVal += upper; } return(retVal); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -