专业的JAVA编程教程与资源

网站首页 > java教程 正文

JavaSwing游戏开发之Camera原理

temp10 2025-02-06 16:29:03 java教程 17 ℃ 0 评论

import javax.swing.*;

import java.awt.*;

JavaSwing游戏开发之Camera原理


public class CameraExample extends JPanel {

private static final long serialVersionUID = 1L;

private int xOffset = 0;


public CameraExample() {

// 使用双缓冲技术避免闪烁

super(true);

}


@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

doDrawing(g);

}


private void doDrawing(Graphics g) {

Graphics2D g2d = (Graphics2D) g;

// 绘制背景

g2d.setColor(Color.WHITE);

g2d.fillRect(0, 0, 640, 480);


// 绘制实体

g2d.setColor(Color.BLUE);

g2d.fillRect(200 + xOffset, 100, 20, 20);


// 绘制Camera边界

g2d.setColor(Color.RED);

g2d.drawRect(100 + xOffset, 50, 200, 200);

}


public void moveCamera(int x) {

xOffset = x;

repaint();

}


public static void main(String[] args) {

JFrame frame = new JFrame("Camera Example");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.add(new CameraExample());

frame.setSize(640, 480);

frame.setVisible(true);


// 模拟移动Camera

CameraExample cameraExample = (CameraExample) frame.getContentPane().getComponent(0);

for (int i = -100; i < 100; i++) {

cameraExample.moveCamera(i);

try {

Thread.sleep(100);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

这段代码演示了如何在Java Swing中实现一个简单的Camera效果。它创建了一个CameraExample类,继承自JPanel,并重写了paintComponent方法来绘制屏幕上的对象。moveCamera方法用于移动Camera并重绘组件。在主方法中,我们创建了一个JFrame,添加了CameraExample的实例,并模拟了Camera的移动。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表