Source Code Java Animasi Bitmap Frame |
KARAWANGPORTAL - Kali ini Admin bagikan source code bahasa pemrograman Java yang diperoleh dari internet yang menganimasikan gambar-gambar bitmap (1 pose 1 file). dan berikut source code java animasi bitmap frame berikut adalag coding java animasi bitmap frame
import java.awt.geom.AffineTransform;
import javax.imageio.ImageIO;
import java.net.URL;
import java.awt.*;
import javax.swing.*;
import java.io.*;
public class AnimatedFramesDemo extends JPanel {
static final int CANVAS_WIDTH = 640;
static final int CANVAS_HEIGHT = 480;
public static final String TITLE = "Animated Frame Demo";
private String[] imgFilenames = {
"images/pacman_1.png", "images/pacman_2.png", "images/pacman_3.png"};
private Image[] imgFrames;
private int currentFrame = 0;
private int frameRate = 5;
private int imgWidth, imgHeight;
private double x = 100.0, y = 80.0;
private double speed = 8;
private double direction = 0;
private double rotationSpeed = 1;
private AffineTransform transform = new AffineTransform();
public AnimatedFramesDemo() {
loadImages(imgFilenames);
Thread animationThread = new Thread () {
public void run() {
while (true) {
update();
repaint();
try {
Thread.sleep(1000 / frameRate);
} catch (InterruptedException ex) { }
}
}
};
animationThread.start();
setPreferredSize(new Dimension(CANVAS_WIDTH, CANVAS_HEIGHT));
}
private void loadImages(String[] imgFileNames) {
int numFrames = imgFileNames.length;
imgFrames = new Image[numFrames];
URL imgUrl = null;
for (int i = 0; i < numFrames; ++i) {
imgUrl = getClass().getClassLoader().getResource(imgFileNames[i]);
if (imgUrl == null) {
System.err.println("Couldn't find file: " + imgFileNames[i]);
} else {
try {
imgFrames[i] = ImageIO.read(imgUrl);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
imgWidth = imgFrames[0].getWidth(null);
imgHeight = imgFrames[0].getHeight(null);
}
public void update() {
x += speed * Math.cos(Math.toRadians(direction));
if (x >= CANVAS_WIDTH) {
x -= CANVAS_WIDTH;
} else if (x < 0) {
x += CANVAS_WIDTH;
}
y += speed * Math.sin(Math.toRadians(direction));
if (y >= CANVAS_HEIGHT) {
y -= CANVAS_HEIGHT;
} else if (y < 0) {
y += CANVAS_HEIGHT;
}
direction += rotationSpeed;
if (direction >= 360) {
direction -= 360;
} else if (direction < 0) {
direction += 360;
}
++currentFrame;
if (currentFrame >= imgFrames.length) {
currentFrame = 0;
}
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
setBackground(Color.WHITE);
Graphics2D g2d = (Graphics2D) g;
transform.setToIdentity();
transform.translate(x - imgWidth / 2, y - imgHeight / 2);
transform.rotate(Math.toRadians(direction),
imgWidth / 2, imgHeight / 2);
g2d.drawImage(imgFrames[currentFrame], transform, null);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame frame = new JFrame(TITLE);
frame.setContentPane(new AnimatedFramesDemo());
frame.pack();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
Berikut ini file-file bitmap yang digunakan progam tersebut :
PaceMan-1 Source Code Java Animasi Bitmap Frame |
PaceMan-1 Source Code Java Animasi Bitmap Frame |
No comments:
Post a Comment
Karawang Portal | adalah tempat belajar blogger pemula dan profesional. Kamu bisa menemukan kami di sosial media berikut.
Note: Only a member of this blog may post a comment.