|
How to move small blocks around the screen |
|
|
This J2ME tip illustrates a method of moving small blocks around the
screen. In order to do this, you might create a class to represent each
block by recording its x and y coordinates and its speeds along the
x and y axes. The Canvas paint(...) method then fills its background
with an appropriate color and loops over the set of blocks, drawing
a filled rectangle for each, using its current coordinates to determine
the location of its corresponding rectangle.
class Block {
int x; // X position
int y; // Y position
int xSpeed; // Speed in the X direction
int ySpeed; // Speed in the Y direction
}
protected void paint(Graphics g) {
// Paint with the background color
g.setColor(background);
g.fillRect(0, 0, width, height);
// Draw all of the blocks
g.setColor(foreground);
synchronized (this) {
for (int i = 0, count = blocks.length; i < count; i++) {
g.fillRect(blocks[i].x, blocks[i].y, SIZE, SIZE);
}
}
}
/**
In order to create movement, you need to start a timer that
periodically calls a method that updates the coordinates of each
block and then causes the Canvas to be painted again.
**/
public synchronized void moveAllBlocks( ) {
// Update the positions and speeds of all of the blocks
for (int i = 0, count = blocks.length; i < count; i++) {
blocks[i].move( );
// Request a repaint of the screen
repaint( );
}
}
|
Related Tips
|
Page 1 of 0 ( 0 comments )
You can share your information about this topic using the form below!
Please do not post your questions with this form! Thanks.