こんにちは、私はゲームに取り組んでいます。しかし、何らかの理由でImageが表示されたり移動したりすることはありません。Javaイメージが動かない
ここにいくつかのコードがあります。
TheScreen.java
package TheCarePackage;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TheScreen extends JFrame implements KeyListener{
short FWIDTH = 500;
short FHEIGHT = 500;
private Image dbImage;
private Graphics dbGraphics;
private Image Bg;
static Player_1 P1 = new Player_1(250,450);
static AlienSpawner AS = new AlienSpawner();
public TheScreen(){
addKeyListener(this);
setTitle("1st Game");
setSize(FWIDTH,FHEIGHT);
setResizable(false);
setLocationRelativeTo(null);
setBackground(Color.white);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
ImageIcon back = new ImageIcon("C:/Users/yellowsoldier25/Desktop/Games/PlanB_1stGame/src/TheCarePackage/Images/Background.png");
Bg = back.getImage();
}
public void paint(Graphics g){
dbImage = createImage(getWidth(),getHeight());
dbGraphics = dbImage.getGraphics();
paintComponent(dbGraphics);
g.drawImage(dbImage,0,0,this);
}
public void paintComponent(Graphics g){
g.drawImage(Bg,0,0,this);
P1.draw(g);
AS.paint(g);
repaint();
}
public static void main(String[] args) {
new TheScreen();
Thread As = new Thread(AS);
Thread Player1 = new Thread(P1);
As.start();
Player1.start();
}
public void keyPressed(KeyEvent e) {
P1.keyPressed(e);
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
}
ThePlayer.java
package TheCarePackage;
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Player_1 implements Runnable{
public int a = 8;
int x,y;
Image Player_1;
private Shot[] shots;
static AlienSpawner AS = new AlienSpawner();
public Player_1(int x, int y){
this.x = x;
this.y = y;
ImageIcon i = new ImageIcon("C:/Users/yellowsoldier25/Desktop/Games/PlanB_1stGame/src/TheCarePackage/Images/Player_1.png");
Player_1 = i.getImage();
shots = new Shot[8];
}
public void draw(Graphics g){
g.drawImage(Player_1,x,y,50,50,null);
g.setColor(Color.white);
g.drawString("Ammo : " + a,10,40);
for(int i = 0; i < shots.length; i++){
if(shots[i] != null){
shots[i].drawShot(g);
}
}
}
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == e.VK_LEFT){
x += -8;
}
if(e.getKeyCode() == e.VK_RIGHT){
x += 8;
}
if(e.getKeyCode() == e.VK_SPACE){
for(int i = 0; i < shots.length; i++){
if(shots[i] == null){
a--;
shots[i] = generateShot();
break;
}
}
}
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
public Shot generateShot(){
Shot shot = new Shot(x+23,y-7);
return shot;
}
@Override
public void run(){
try{
while(true){
Thread.sleep(5);
for(int i = 0; i < shots.length; i++){
if(shots[i] != null){
shots[i].moveShot(-1);
if(shots[i].getY() < 0){
shots[i] = null;
a++;
}
}
}
}
}catch(Exception e){System.err.println(e.getMessage());}
}
}
theProblem ...
TheAlienSpawner.java
package TheCarePackage;
import java.awt.*;
import javax.swing.*;
public class AlienSpawner implements Runnable{
private int Health = 3;
private Shot s;
private boolean Spawn = true;
public AlienSpawner(){}
Alien1stVariant A1 = new Alien1stVariant(250,0);
public void paint(Graphics g){
A1.drawAlien(g);
}
public void run() {
try{
Thread.sleep(20);
while(true){
A1.movement(1);
}
}catch(Exception e){System.err.println(e.getMessage());}
}
}
エイリアンクラス他の問題.. 。
package TheCarePackage;
import java.awt.*;
import javax.swing.*;
public class Alien1stVariant {
private int x;
private int y;
private Image Alien;
public Alien1stVariant(int x, int y){
this.x = x;
this.y = y;
ImageIcon AlienIcon = new ImageIcon("C:/Users/yellowsoldier25/Desktop/Games/PlanB_1stGame/src/TheCarePackage/Images/Alien.png");
Alien = AlienIcon.getImage();
}
public int getX(){
return x;
}
public int getY(){
return y;
}
public void movement(int speed){
y += speed;
}
public void drawAlien(Graphics g){
g.drawImage(Alien,x,y,40,40,null);
}
}
できるだけ早くお助けください。
問題:エイリアンイメージは移動して表示されません。
これをデバッグするときに何を学んだのですか? –
画像が動かない、打たれませんが、私は実行方法を削除すると表示されますが、まだ動きません。 – user974327
これは、イメージのダイアディングとアニメーション化に関する質問です。それはどのように「ローカルな質問」ですか?多くの人がこれらの問題を抱えていますあなた自身を乗っ取って、最初にサイトに投稿した人を攻撃するのではなく、フォーラムへの投稿に貢献してみてください。 – camickr