java 游戏背景_java – 简单游戏的背景图片?

你随机复制/粘贴代码吗?这就是它的样子.这段代码有很多奇怪的方面,我没有记录它们(可能是一个很好的代码审查).该示例使用异步方法加载图像(为了获取动画图像,动画).使用ImageIO.read(URL)以同步方式加载静态图像.

以下是一些简短的提示:

>到部署时,图像很可能成为嵌入式资源,File对象无法访问.将它们添加到运行时类路径并通过URL访问它们.

>应在EDT上启动和更改Swing GUI(请参阅对main()的更改).

>总是打电话给super.paint(g); (或paintComponent(g))在方法的开头.

>不要延伸框架,不要涂到顶层组件.而是扩展面板并覆盖paintComponent().将面板添加到框架中.

import java.awt.*;

import java.awt.event.*;

import java.net.URL;

import javax.swing.*;

public class JavaGame extends JPanel {

int x, y;

private Image dbImage;

private Graphics dbg;

Image ghost;

Image bg;

public class AL extends KeyAdapter {

public void keyPressed(KeyEvent e) {

int keyCode = e.getKeyCode();

if (keyCode == e.VK_LEFT) {

if (x <= 8)

x = 8;

else

x += -5;

}

if (keyCode == e.VK_RIGHT) {

if (x >= 235)

x = 235;

else

x += +5;

}

if (keyCode == e.VK_UP) {

if (y <= 18)

y = 18;

else

y += -5;

}

if (keyCode == e.VK_DOWN) {

if (y >= 235)

y = 235;

else

y += +5;

}

}

public void keyReleased(KeyEvent e) {

}

}

public JavaGame() throws Exception {

// Load images

//ImageIcon i = new ImageIcon(

// "C:/Users/Taylor/workspace/Java game/src/ghost.png");

URL urlGhost = new URL("http://1point1c.org/gif/thum/plnttm.gif");

ghost = Toolkit.getDefaultToolkit().createImage(urlGhost);

//ImageIcon j = new ImageIcon(

// "C:/Users/Taylor/workspace/Java game/src/bg.png");

URL urlBG = new URL("http://pscode.org/media/stromlo2.jpg");

bg = Toolkit.getDefaultToolkit().createImage(urlBG);

setFocusable(true);

// Game properties

addKeyListener(new AL());

x = 150;

y = 150;

ActionListener al = new ActionListener() {

public void actionPerformed(ActionEvent ae) {

repaint();

}

};

Timer timer = new Timer(50,al);

timer.start();

}

public void paintComponent(Graphics g) {

super.paintComponent(g);

g.drawImage(bg, 0, 0, null);

//dbImage = createImage(getWidth(), getHeight());

//dbg = dbImage.getGraphics();

//paintComponent(dbg);

g.drawImage(dbImage, x, y, this);

g.setColor(Color.WHITE);

g.drawImage(ghost, x, y, this);

//repaint();

}

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {

try {

JFrame f = new JFrame("Java Game");

f.setSize(500, 500);

f.setResizable(false);

f.setVisible(true);

f.setBackground(Color.GRAY);

f.setContentPane(new JavaGame());

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值