21xrx.com
2024-09-20 00:58:27 Friday
登录
文章检索 我的文章 写文章
用Java实现一个简单的蜘蛛侠游戏
2023-06-17 19:54:41 深夜i     --     --
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的基础知识的掌握,还让我更加深入地理解了面向对象编程的思想。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复