您好这是我的代码,但我无法弄清楚如何让矩形向上移动然后向下移动! 你能帮帮我吗? 我的矩形类:
public class Block {
private int size;
public int xpos;
public int ypos;
boolean up = true;
public Block(){
size = 40;
}
public void drawBlock(Graphics g){
g.fillRect(xpos, ypos, size, size);
}
public void setStartScrLocation(){
xpos = 130;
ypos = 200;
}
public void startAnimationUp(){
ypos = (int) ((int)ypos - 0.0001);
}
public void startAnimationDown(){
ypos = (int) ((int)ypos + 0.0001);
}
}
这是我的“开始课程”:
public class startScreen {
Block startBlock = new Block();
public startScreen(){
startBlock.setStartScrLocation();
}
public void displayThings(Graphics g){
startBlock.drawBlock(g);
if(startBlock.up == true){
startBlock.startAnimationUp();
}
else if(startBlock.ypos > 280){
startBlock.up = false;
}
else if(startBlock.up == false){
startBlock.startAnimationDown();
}
else if(startBlock.ypos < 200){
startBlock.up = true;
}
}
} 矩形向上移动然后停在我的框架顶部(如果你想知道我没有发布框架类)我的框架宽度为300,高度为500 我的框架类中有一个paintComponent函数,它绘制了这个函数displayThings
答案 0 :(得分:1)
你有几个问题。首先,您从up == true
开始,这会导致ypos
在每次迭代时减少。由于ypos
从200
开始,它永远不会到达280
,因此永远不会出现将up
设置为false
的条件。所以它将无限期地持续下降。
其次,在你的方法中增加ypos
,你将它增加0.0001
,然后将其四舍五入到下面最接近的整数,这没有效果,所以ypos
永远不会即使up
变为假,也会增加。