import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Screen extends JPanel implements KeyListener, ActionListener, MouseListener, MouseMotionListener {
private JButton playB;
private BufferedImage myImage;
private boolean win = false;
private Background background;
private Mario mario;
public Dimension getPreferredSize() {
return new Dimension(860, 600);
}
public Screen() {
background = new Background();
mario = new Mario(50, 475);
setFocusable(true);
addKeyListener(this);
addMouseMotionListener(this);
addMouseListener(this);
this.requestFocusInWindow();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
background.drawBackground(g);
mario.drawMario(g);
repaint();
}
public void animate() {
while (true) {
try {
Thread.sleep(10);
}
catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
if (mario.getHealth() > 0) mario.tick();
repaint();
}
}
public void keyTyped(KeyEvent e) {
}
public void keyPressed(KeyEvent e) {
if (mario.getHealth() > 0 && !win) {
if (e.getKeyCode() == KeyEvent.VK_A) {
mario.setVelX(-2);
}
else if (e.getKeyCode() == KeyEvent.VK_D) {
mario.setVelX(2);
}
else if (e.getKeyCode() == KeyEvent.VK_A && e.getKeyCode() == KeyEvent.VK_D) {
mario.setVelX(0);
}
}
}
public void keyReleased(KeyEvent e) {
if (mario.getHealth() > 0 && !win) {
if (e.getKeyCode() == KeyEvent.VK_A) {
mario.setVelX(0);
}
else if (e.getKeyCode() == KeyEvent.VK_D) {
mario.setVelX(0);
}
else if (e.getKeyCode() == KeyEvent.VK_A && e.getKeyCode() == KeyEvent.VK_D) {
mario.setVelX(0);
}
}
}
每当我移动我的角色我想移动的背景图片以及,我有完整的抓取水平的图片,这样我就可以削减它的碎片和改变图片一旦字符到达最右边的面板,但我想移动它作为我的角色移动。我也很恼火,每当我同时按下两个键(a,d)字符停留在一个地方一秒钟,然后移动,如果不是很难解决,我真的很感谢这里的帮助。
暂无答案!
目前还没有任何答案,快来回答吧!