我正在尝试为我的游戏制作一个简单的图块系统。我做了一个测试图块,并且试图将5个图块彼此相邻地绘制。我在paintComponent
中做了一个while语句,它从5开始递减计数,每次绘制一个图块并将当前x值加10(图块的大小)。但是由于某种原因,所有磁贴都没有出现。如果我注释掉while语句,则会显示一个图块。因此,正在加载图像。由于某种原因,while语句使绘画变得混乱。非常感谢您的帮助。
这是我的paintComponents中的代码
变量numOfTiles = 5
变量tileStartx = 100;
变量selectedTile是我的图像。
public void paintComponent(Graphics g){
super.paintComponent(g);
if(tileToDraw != null){
while(numOfTiles > 0){
System.out.println(tileStartx);
g.drawImage (chosenTile, tileStartx, tileStarty, this);
tileStartx += 10;
numOfTiles--;
}
}
}
最佳答案
更改
while(numOfTiles > 0){
至
// or the more modern variant shown by Kumar
for (int count=0; count<numOfTiles; count++) {
并删除:
numOfTiles--;
说明。我怀疑在第一个绘制中被减小为0,并且从未重置。
numOfTiles
循环通过从不更改值来解决此问题。还要注意沃尔特的调整:
g.drawImage (chosenTile, tileStartx + (count * 10), tileStarty, this);
代替:
g.drawImage (chosenTile, tileStartx, tileStarty, this);
tileStartx += 10;