最近、私はJavaを学ぼうとしています。複数のクラスを使用する方法を学んだばかりで、ゲーム 'brick breaker' を作成していますが、これが機能しない理由がわかりません。
public void run() {
BricksandBox world = new BricksandBox();
world.createWorld();
}
これが「BricksandBox」のコードの一部です。
public void createWorld(){
buildCanvas();
int i = 0;
while(i < NBRICK_ROWS){
i++;
createARow();
setCollumNumber();
}
}
/*builds the gamecenter */
private void buildCanvas(){
GRect can = new GRect(APPLICATION_WIDTH, APPLICATION_HEIGHT);
add(can);
}
private void createARow(){
for (int i = 1; i <= NBRICKS_PER_ROW; i++){
//int y = the brickYoffset + BrickHeight+BrickSep this moves
// the brick one down.
int y = BRICK_Y_OFFSET+((BRICK_SEP+BRICK_HEIGHT)*collumNumber);
/*
* i-1 because it can't be set to zero. else there will be 11 bricks.
* so you do i-1.
*/
int x = BRICK_SEP/2+(BRICK_SEP*(i-1))+(BRICK_WIDTH*(i-1));
GRect brick = new GRect(x,y,BRICK_WIDTH,BRICK_HEIGHT);
brick.setFilled(true);
//setting the color
if(collumNumber <= 1){
brick.setColor(Color.RED);
}
else if(collumNumber <= 3){
brick.setColor(Color.ORANGE);
}
else if(collumNumber <= 5){
brick.setColor(Color.YELLOW);
}
else if(collumNumber <= 7){
brick.setColor(Color.GREEN);
}
else if(collumNumber <= 9){
brick.setColor(Color.CYAN);
}
add(brick);
}
}
private void setCollumNumber(){
//MeeBezig. create a value that counts up from 1 to 10.
//1 is the first row number. 2 is the second row number etc...
int x = BRICK_SEP/2+(BRICK_SEP*collumNumber)+(BRICK_WIDTH*collumNumber/2);
int y = BRICK_Y_OFFSET+((BRICK_HEIGHT)*collumNumber);
if(contains(x,y)){
collumNumber++;
}
}
/**
* a number that counts from one to ten
*/
private int collumNumber;'
最初の部分はメインファイルだけでした。しかし、分解のために、別のクラスに入れようとしました。しかし、プログラムを実行すると、空白のキャンバスが表示されるだけです。
前もって感謝します!