java Pacman张开/闭嘴动画
我想用最简单的方法制作pacman张开/闭嘴动画。 这是我最近的代码:问题是,什么都没有发生
package ordner;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class PacMan implements ActionListener {
private JFrame frame;
private DrawPanel panel;
private void initGui() {
frame = new JFrame("Pacman");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panel = new DrawPanel();
frame.add(panel);
panel.setBackground(Color.BLACK);
frame.setSize(300, 300);
frame.setVisible(true);
}
public static void main(String[] args) {
PacMan pm = new PacMan();
pm.initGui();
}
@Override
public void actionPerformed(ActionEvent e) {
panel.repaint();
}
}
这是我的绘图面板:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class DrawPanel extends JPanel {
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.yellow);
g.fillArc(70,50,150,150,30,300);
int i = 0;
while ( i <= 60) {
g.fillArc(70,50,150,150,30-i,300+i+i);
try {
Thread.sleep(25);
}
catch (Exception e) {
Thread.currentThread().interrupt();
}
i++;
}
}
}
while循环不会影响任何东西,原因是什么
# 1 楼答案
像这样的东西可能适用于PacMan图像。它使用基于Java 2D的
Shape
实例来表示表单,使用AffineTransform
来生成不同的方向如果你想改变&;在运行时渲染图像时,请尝试从这一系列使用部分透明度来软化边缘的PNG格式图像开始
# 2 楼答案
对于动画,您可以使用Swing Timer移动Pacman图形,并通过改变
fillArc
使用的参数来调整“嘴”打开的角度可以使用Key Bindings实现与
KeyEvents
的交互以进行移动控制此外,为了获得更好的绘制性能,我将
paint
功能移动到子类paintComponent
中的paintComponent
方法相关:Painting with Swing
编辑:
当您开始使用Java时,首先要完成许多任务
Pacman
图形创建基于JComponent
的类。将绘制逻辑移动到paintComponent
Key Bindings
# 3 楼答案
二维动画: http://en.wikipedia.org/wiki/File:The_Horse_in_Motion.jpg
伪代码:
与Java相比,在Pygame中学习和做这类事情很容易,但不适合大型项目