21xrx.com
2025-04-26 14:57:24 Saturday
文章检索 我的文章 写文章
用Java实现一个简单的蜘蛛侠游戏
2023-06-17 19:54:41 深夜i     7     0
Java 游戏编程 面向对象

我最近在学习Java,闲暇时常喜欢做一些小项目来巩固自己的知识。其中一个有趣的项目是实现一个Java版本的蜘蛛侠游戏。

首先我创建了一个SpiderMan类,表示蜘蛛侠的实体,其中包括蜘蛛侠的坐标、速度、血量等属性和行走、攻击等方法。代码如下:

public class SpiderMan {
  private int x, y;
  private int speed;
  private int HP;
  public SpiderMan(int x, int y, int speed, int HP)
    this.x = x;
    this.y = y;
    this.speed = speed;
    this.HP = HP;
  
  public void moveUp()
    y -= speed;
  
  public void moveDown() {
    y += speed;
  }
  public void moveLeft()
    x -= speed;
  
  public void moveRight() {
    x += speed;
  }
  public void attack()
    // TODO: 实现攻击方法
  
}

然后我创建了一个GUI窗口,用来显示游戏界面和蜘蛛侠的移动。代码如下:

import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class SpiderManGame extends JFrame implements KeyListener {
  private SpiderMan spiderMan;
  public SpiderManGame() {
    spiderMan = new SpiderMan(100, 100, 10, 100);
    setTitle("Spider-Man Game");
    setSize(800, 600);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);
    addKeyListener(this); // 添加键盘监听器
    setVisible(true);
  }
  public void paint(Graphics g) {
    super.paint(g);
    g.setColor(Color.RED);
    g.fillRect(spiderMan.x, spiderMan.y, 50, 50); // 绘制蜘蛛侠
  }
  @Override
  public void keyTyped(KeyEvent e)
  
  @Override
  public void keyPressed(KeyEvent e) {
    switch (e.getKeyCode()) {
      case KeyEvent.VK_UP:
        spiderMan.moveUp();
        break;
      case KeyEvent.VK_DOWN:
        spiderMan.moveDown();
        break;
      case KeyEvent.VK_LEFT:
        spiderMan.moveLeft();
        break;
      case KeyEvent.VK_RIGHT:
        spiderMan.moveRight();
        break;
    }
    repaint();
  }
  @Override
  public void keyReleased(KeyEvent e)
  
  public static void main(String[] args) {
    new SpiderManGame();
  }
}

在游戏中,玩家可以通过键盘控制蜘蛛侠的移动,以躲避敌人或攻击敌人。这个小项目不仅巩固了我对Java的基础知识的掌握,还让我更加深入地理解了面向对象编程的思想。

  
  

评论区