首先,感谢您点击这个:)我是一名业余学生编码器,我正在创建一个(可怕的)Pacman版本。我正试图在我的1000x650 applet屏幕上为每个点创建矩形,所以我可以在Packages命中框触摸它们时创建一个if语句,它们会消失。
我的问题是,我想创建一个类,这样我就可以轻松地创建矩形,只有1个if语句,而不是每个点矩形一个(试图学习效率:P)
如果我没有详细说明,我会谨慎根据您的回复进行编辑,谢谢!
(编辑1:修正了句子xD上的运行)
答案 0 :(得分:0)
您可以使用for
语句重复循环,直到满足条件。
这是一般结构:
for (counterInitialization; terminatingCondition; incrementLoopsCount) {
statement(s);
}
这是一个循环继续与计数器i<n
一样长的例子:
int n = 50;
for(int i = 0;i<n;i++){
//code for creating a rectangle
...
}
我建议您阅读this。
答案 1 :(得分:0)
如果需要在X和Y(矩阵)上填充矩形,则很可能需要嵌套循环。 让我们考虑你想要宽度为每100个像素的5 * 5矩形,高度为50像素:
for(int x = 0;x<1000;x+= 100)
{
for(int y=0;y<650; y+= 50)
{
drawRectangle(x, y, 5, 5); // Considering drawRectangle(x, y, width, height)
}
}
答案 2 :(得分:0)
尝试使用此代码,它会在与点碰撞时返回true。
Object pacman = new Object();
pacman.xcoord = null;
pacman.ycoord = null;
final int dotsInStage = 50;
// add other properties
int xcoords[] = new int[dotsInStage];
int ycoords[] = new int[dotsInStage];
调用此布尔值:
public boolean dotCollison (int xcoords[], int ycoords[], Object pacman) {
loop = 0;
while (loop <= dotsInStage) {
if (pacman.xcoord = xcoords[loop] && pacman.ycoord = ycoords[loop]) {
return true;
break;
}
}
}
要添加矩形,请尝试:
int loop = 0;
while (loop <= dotsInStage) {
Graphics.drawRectangle (xcoord[loop] , ycoord[loop] , xcoord[loop] + 10 , ycoord[loop] + 10);
}
希望它有效且编码愉快!
答案 3 :(得分:0)
我不完全理解你的问题。但 难道你不能只使用嵌套for循环创建一个2 d数组
For( int I = 0; I<array.length;i++){
For (int j = 0; j <array[0].length;I++){
//fill w/ rectangles
array[I][j]= ;
}}