gpt4 book ai didi

Java 绘制图形

转载 作者:太空宇宙 更新时间:2023-11-04 07:35:13 24 4
gpt4 key购买 nike

我正在用Java制作一个游戏,我有一个 Canvas 类,它有游戏刻度,我使用在 Canvas 上绘制图像

public void paint(Graphics g) {
// draw stuff here
}

我想将所有绘图函数移至我的 Engine 类中。我的引擎中有这个方法:

@Override
public void render(Graphics scene) {
// draw stuff here
}

在我的 Canvas 中,我不必调用绘制方法,但在引擎中,我必须调用渲染方法,但由于它需要图形场景作为参数,所以我有点不知所措。我如何能够从我的 Engine 类(使用渲染方法)而不是从 Canvas 类绘制组件。

引擎类不扩展任何 JComponent,但它会初始化 Canvas 对象

最佳答案

I am making a game in Java and I have a canvas class, which has thegame tick, and I draw the images on the canvas using

注意

public void paint(Graphics g) { for awt.Canvas, awt.Panel

public void paintComponent(Graphics g) { for swing.JComponent, swing.JPanel

  • 任何绘制只能针对 J/Component 完成,好的做法不能将此方法移到 J/Component 声明之外

I want to move all the drawing functions to my Engine class. I havethis method in my Engine:

  • 最好在执行 Paint/paintComponent 之前准备好所有对象,
  • 将所有对象放入数组
  • 在paint/paintComponent内部仅在准备好的对象数组内循环,从Swing计时器、鼠标/按键事件调用
  • 所有用于 AWT/Swing GUI 的绘制事件都必须在事件调度线程上完成
  • 今天的 GUI 使用 Swing JComponent、JPanel 并覆盖 PaintComponent
  • 这里有一些非常好的代码示例,由 PaintComponent 标记

关于Java 绘制图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16987686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com