以下是一个简单的Java涂鸦跳跃游戏代码示例:
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class DoodleJump extends JPanel implements ActionListener { private static final int WIDTH = 400; private static final int HEIGHT = 600; private static final int GROUND = 550; private static final int PLAYER_SIZE = 25; private static final int PLATFORM_WIDTH = 50; private static final int PLATFORM_HEIGHT = 10; private static final int PLATFORM_GAP = 200; private static final int PLATFORM_COUNT = 6; private static final int GRAVITY = 2; private static final int JUMP_HEIGHT = 30; private Timer timer; private int playerX; private int playerY; private int velocityY; private boolean isJumping; private Platform[] platforms; public DoodleJump() { setPreferredSize(new Dimension(WIDTH, HEIGHT)); setBackground(Color.BLACK); setFocusable(true); addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_SPACE) { if (!isJumping) { isJumping = true; velocityY = -JUMP_HEIGHT; } } } }); playerX = WIDTH / 2; playerY = GROUND; velocityY = 0; isJumping = false; platforms = new Platform[PLATFORM_COUNT]; for (int i = 0; i < PLATFORM_COUNT; i++) { platforms[i] = new Platform((int) (Math.random() * (WIDTH - PLATFORM_WIDTH)), GROUND - i * PLATFORM_GAP); } timer = new Timer(10, this); timer.start(); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.WHITE); g.fillOval(playerX - PLAYER_SIZE / 2, playerY - PLAYER_SIZE / 2, PLAYER_SIZE, PLAYER_SIZE); for (Platform platform : platforms) { g.fillRect(platform.getX(), platform.getY(), PLATFORM_WIDTH, PLATFORM_HEIGHT); } } public void actionPerformed(ActionEvent e) { playerY += velocityY; if (isJumping) { velocityY += GRAVITY; } if (playerY > GROUND) { playerY = GROUND; velocityY = 0; isJumping = false; } for (Platform platform : platforms) { if (playerY + PLAYER_SIZE / 2 > platform.getY() && playerY + PLAYER_SIZE / 2 < platform.getY() + PLATFORM_HEIGHT && playerX + PLAYER_SIZE / 2 > platform.getX() && playerX - PLAYER_SIZE / 2 < platform.getX() + PLATFORM_WIDTH) { playerY = platform.getY() - PLAYER_SIZE / 2; velocityY = 0; isJumping = false; } } for (Platform platform : platforms) { platform.setY(platform.getY() + GRAVITY); if (platform.getY() > HEIGHT) { platform.setY(platform.getY() - PLATFORM_GAP * PLATFORM_COUNT); platform.setX((int) (Math.random() * (WIDTH - PLATFORM_WIDTH))); } } repaint(); } public static void main(String[] args) { JFrame frame = new JFrame("Doodle Jump"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new DoodleJump()); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } private class Platform { private int x; private int y; public Platform(int x, int y) { this.x = x; this.y = y; } public int getX() { return x; } public int getY() { return y; } public void setX(int x) { this.x = x; } public void setY(int y) { this.y = y; } } }
这是一个简单的涂鸦跳跃游戏,玩家通过控制跳跃的小涂鸦在不断生成的平台上往上跳跃。玩家按下空格键时,小涂鸦会向上跳跃,玩家需要控制小涂鸦跳到平台上,如果没有跳到平台上就会掉下来,游戏结束。平台会不断从上面生成,玩家需要不断跳跃上去,直到无法继续跳跃