// --- Coin --- class Coin { int x, y; Coin(int x, int y) { this.x = x; this.y = y; } Rectangle getBounds() { return new Rectangle(x, y, TILE_SIZE, TILE_SIZE); } void draw(Graphics2D g, int screenX, int screenY) { g.setColor(Color.YELLOW); g.fillOval(screenX, screenY, TILE_SIZE, TILE_SIZE); } }
// --- Goomba --- class Goomba { int x, y; int vx = -1; int width = 16, height = 16; Goomba(int x, int y) { this.x = x; this.y = y; } void update() { x += vx; if (x % 32 == 0) vx = -vx; } Rectangle getBounds() { return new Rectangle(x, y, width, height); } void draw(Graphics2D g, int screenX, int screenY) { g.setColor(new Color(101, 67, 33)); g.fillRect(screenX, screenY, width, height); g.setColor(Color.BLACK); g.fillOval(screenX + 3, screenY + 4, 3, 3); g.fillOval(screenX + 10, screenY + 4, 3, 3); } } super mario bros java game 240x320
x += vx; vy += 0.5; y += vy;
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.ArrayList; import java.util.Iterator; public class MarioGame240x320 extends JPanel implements ActionListener, KeyListener { // Screen settings (240x320) private static final int SCREEN_WIDTH = 240; private static final int SCREEN_HEIGHT = 320; private static final int TILE_SIZE = 16; // --- Coin --- class Coin { int
initGame(); timer = new Timer(16, this); // ~60 FPS timer.start(); } int y) { this.x = x