有一副行走图 怎么在JAVA中用这幅行走图表现出人物左右行走的样子呢。能上代码啥的话就太感谢了
展开全部
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class WalkMian extends JFrame implements KeyListener {
Image img;
Image back;
int x = 80, y = 450, dir = 0, num = 0;
// Main
public static void main(String args[]) {
new WalkMian();
}
// Constructor
WalkMian() {
super("Character");
img = getToolkit().getImage("c:\\IMAGE\\walk.png");
back = getToolkit().getImage("c:\\IMAGE\\back.jpg");
addKeyListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBackground(Color.gray);
setSize(800, 610);
setVisible(true);
}
// Paint
public void paint(Graphics g) {
int yoff;
g.drawImage(back, 0, 0, this);
if (img != null) {
yoff = 144;
g.drawImage(img, x, y, x + 144, y + 144, 144, -144+144*dir, yoff + 144, 144*dir,
this);
}
}
// KeyEvent Listener
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) { // case KeyEvent.VK_UP : y=y-10; dir=0; break;
case KeyEvent.VK_RIGHT:
x = x + 10;
dir = 3;
break;
// case KeyEvent.VK_DOWN : y=y+10; dir=2; break;
case KeyEvent.VK_LEFT:
x = x - 10;
dir = 1;
break;
}
// num ^= 4;
repaint();
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
}
import javax.swing.*;
import java.awt.event.*;
public class WalkMian extends JFrame implements KeyListener {
Image img;
Image back;
int x = 80, y = 450, dir = 0, num = 0;
// Main
public static void main(String args[]) {
new WalkMian();
}
// Constructor
WalkMian() {
super("Character");
img = getToolkit().getImage("c:\\IMAGE\\walk.png");
back = getToolkit().getImage("c:\\IMAGE\\back.jpg");
addKeyListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBackground(Color.gray);
setSize(800, 610);
setVisible(true);
}
// Paint
public void paint(Graphics g) {
int yoff;
g.drawImage(back, 0, 0, this);
if (img != null) {
yoff = 144;
g.drawImage(img, x, y, x + 144, y + 144, 144, -144+144*dir, yoff + 144, 144*dir,
this);
}
}
// KeyEvent Listener
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) { // case KeyEvent.VK_UP : y=y-10; dir=0; break;
case KeyEvent.VK_RIGHT:
x = x + 10;
dir = 3;
break;
// case KeyEvent.VK_DOWN : y=y+10; dir=2; break;
case KeyEvent.VK_LEFT:
x = x - 10;
dir = 1;
break;
}
// num ^= 4;
repaint();
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
}
展开全部
充分运用
Graphics中的drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) ;便可完成。查下JDK看下这个的用法。
dx dy是指窗口的点。 SX SY是指原图片的点。就是按一定规则变动这些点而已。
img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何动作。
dx1 - 目标矩形第一个角的 x 坐标。
dy1 - 目标矩形第一个角的 y 坐标。
dx2 - 目标矩形第二个角的 x 坐标。
dy2 - 目标矩形第二个角的 y 坐标。
sx1 - 源矩形第一个角的 x 坐标。
sy1 - 源矩形第一个角的 y 坐标。
sx2 - 源矩形第二个角的 x 坐标。
sy2 - 源矩形第二个角的 y 坐标。
observer - 当缩放并转换了更多图像时要通知的对象。
Graphics中的drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) ;便可完成。查下JDK看下这个的用法。
dx dy是指窗口的点。 SX SY是指原图片的点。就是按一定规则变动这些点而已。
img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何动作。
dx1 - 目标矩形第一个角的 x 坐标。
dy1 - 目标矩形第一个角的 y 坐标。
dx2 - 目标矩形第二个角的 x 坐标。
dy2 - 目标矩形第二个角的 y 坐标。
sx1 - 源矩形第一个角的 x 坐标。
sy1 - 源矩形第一个角的 y 坐标。
sx2 - 源矩形第二个角的 x 坐标。
sy2 - 源矩形第二个角的 y 坐标。
observer - 当缩放并转换了更多图像时要通知的对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询