Java 如何使用输入制作我移动的木棍图形?
忽略提到方向和球员姿态的近端。我知道我必须重新粉刷木棍,但我不知道怎么做,请有人帮忙。我目前正在为我和我的朋友制作的一个游戏开发一个战斗系统,所以我需要一些帮助来弄清楚如何移动用户的角色Java 如何使用输入制作我移动的木棍图形?,java,Java,忽略提到方向和球员姿态的近端。我知道我必须重新粉刷木棍,但我不知道怎么做,请有人帮忙。我目前正在为我和我的朋友制作的一个游戏开发一个战斗系统,所以我需要一些帮助来弄清楚如何移动用户的角色 package CombatSystem; import java.awt.Color; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java
package CombatSystem;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Combat extends JPanel implements KeyListener, ActionListener {
private boolean play = false;
private int user_health = 3;
private int boss_health = 3;
private int playerPosX = 100;
private int playerPosY = 100;
private int player_stance = 0;
private int direction = 0;
//1 = Attack, 2 = Defense
Timer mainTimer;
public Combat() {
addKeyListener(this);
setFocusable(true);
setFocusTraversalKeysEnabled(true);
mainTimer = new Timer(10, this);
mainTimer.start();
}
public void paint(Graphics x) {
//Background
super.paint(x);
x.setColor(Color.black);
x.fillRect(1,1,886,662);
//Floor
x.setColor(Color.DARK_GRAY);
x.fillRect(1, 550, 886, 662);
//User
x.setColor(Color.white);
//Head
x.drawOval(90, 60, 20, 20);
//Body
x.drawLine(100, 80, 100, 110);
//Arms
x.drawLine(100, 90, 80, 105);
x.drawLine(100, 90, 120, 105);
//Legs
x.drawLine(100, 110, 85, 135);
x.drawLine(100, 110, 115, 135);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
repaint();
}
@Override
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_RIGHT) {
playerPosX += 20;
}
else if(e.getKeyCode() == KeyEvent.VK_LEFT){
playerPosX -= 20;
}
}
@Override
public void keyReleased(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_1) {
direction = 1;
if(e.getKeyCode() == KeyEvent.VK_A) {
player_stance = 1;
//Attack Stance
}
else if(e.getKeyCode() == KeyEvent.VK_D) {
player_stance = 2;
//Defense Stance
}
}
else if(e.getKeyCode() == KeyEvent.VK_2) {
direction = 2;
if(e.getKeyCode() == KeyEvent.VK_A) {
player_stance = 1;
//Attack Stance
}
else if(e.getKeyCode() == KeyEvent.VK_D) {
player_stance = 2;
//Defense Stance
}
}
else if(e.getKeyCode() == KeyEvent.VK_3) {
direction = 3;
if(e.getKeyCode() == KeyEvent.VK_A) {
player_stance = 1;
//Attack Stance
}
else if(e.getKeyCode() == KeyEvent.VK_D) {
player_stance = 2;
//Defense Stance
}
}
}
@Override
public void keyTyped(KeyEvent e) {
}
}
嗯,你需要调整你手指的绘图位置。“简单”的解决方案可能是将
图形
上下文转换到您希望绘制图形的位置,并始终从0x0
开始绘制图形。我还鼓励您使用paintComponent
而不是paint
;)我不能只看你的代码就发现问题。我需要一个脚本,这样我就可以获取代码,将其放入Eclipse中,编译它,运行它,并尝试不同的事情。“你能帮我们吗?”Intisaurus,我想现在是开始OOP的好时机。好吧,你需要调整你手指绘图位置的位置。“简单”的解决方案可能是将图形
上下文转换到您希望绘制图形的位置,并始终从0x0
开始绘制图形。我还鼓励您使用paintComponent
而不是paint
;)我不能只看你的代码就发现问题。我需要一个脚本,这样我就可以获取代码,将其放入Eclipse中,编译它,运行它,并尝试不同的事情。“你能帮我们吗?”英蒂索鲁,我想现在是开始OOP的好时机。