ご存知のように、私は宇宙に関する小さなゲームを書き始めました。
「悪いスタートではない」 - https://stackoverflow.com/questions/19818655/simulation-of-spaceplanets-and-stars :D
作品の構想を少し書きましたが、最初のポイントは「星のランダム生成」です。つまり、ランダムを使用する方が簡単です。
Random random = new Random();
int x = random.nextInt(getWidth()*2);
int y = random.nextInt(getHeight()*2);
g.drawImage(Image,x,y,4,4,this);
しかし、それは機能しません(
また、画面上で写真が「ジャンプ」するため、機能していません。
ビデオについて: https://www.youtube.com/watch?v=EELo_-eh3fA
では、どのようにして星をランダムに持ってくるのでしょうか? (スターは小さな画像または白い四角です) コードは以上です。
import java.awt.Graphics;
import javax.imageio.ImageIO;
import javax.swing.JComponent;
import javax.swing.JFrame;
import java.io.IOException;
public class Game extends JComponent {
public Game() {
try {
image = ImageIO.read(getClass().getResource("star.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
public void paint(Graphics g) {
super.paint(g);
repaint();
Random random = new Random();
int x = random.nextInt(getWidth()*2);
int y = random.nextInt(getHeight()*2);
g.drawImage(Image,x,y,4,4,this);
}
public static void main(String[] args) {
JFrame frame = new JFrame(NAME);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.add(new Game());
frame.setVisible(true);
frame.setLocationRelativeTo(null);
frame.setResizable(true);
frame.addMouseListener(mos);
frame.addMouseMotionListener(mos);
}
}
これはコードが機能しないことです (写真は再びジャンプします。
public void paintComponent(Graphics g) {
super.paintComponent(g);
repaint();
Random random = new Random();
int x = random.nextInt(getWidth()*2);
int y = random.nextInt(getHeight()*2);
g.drawImage(kor,x,y,10,10,this);
}
@camickr、repaint(); を削除すると言いました。でもそれがないと写真が撮れない