このゲームにインスパイアされたゲームを用意しなければなりません。もちろん、それは非常に単純なはずですが、残念ながら、2 人のプレイヤーが一緒にプレイできるようにするために、クライアント サーバー通信を使用する必要があります。ここまでテクスチャを用意して、動く車を作ってみました。残念ながら、見た目ほど単純ではありません。立ち往生して先に進めません... 4 つの矢印のみを使用したい: UP - 車の速度を上げる、DOWN - 車の速度を下げる、LEFT - 左に曲がる、RIGHT - 右に曲がる。もちろん、UP ボタンや DOWN ボタンを押さなければ、車の速度は遅くなりますが、それよりもわずかに遅くなります。ヒントを乞う!
これは私のコードです:
package destructionderby;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
class CRX extends JFrame implements KeyListener
{
File imageFile2;
BufferedImage crxModel;
public int speed;
int posX, posY;
JPanel crxPanel;
public CRX()
{
speed = 0;
posX=562;
posY = 420;
crxPanel = new JPanel();
imageFile2 = new File("crx.png");
try
{
crxModel = ImageIO.read(imageFile2);
}
catch (IOException e)
{
System.err.println("File access error");
}
addKeyListener(this);
}
public void paint(Graphics g)
{
while (true)
{
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(crxModel, posX+speed, posY, null);
repaint();
}
}
//-------------------KEY LISTENER--------------------
public void keyTyped (KeyEvent key)
{
if (key.getKeyCode()==38) //38 == UP; 40==DOWN; 37==LEFT; 39==RIGHT
{
speed +=10;
}
if (key.getKeyCode()==40)
{
if (speed >10)
{
speed-=10;
}
else speed=0;
}
}
@Override
public void keyPressed(KeyEvent key)
{
}
@Override
public void keyReleased(KeyEvent key)
{
}
}
class MainWindow extends JFrame
{
JPanel mainWindow;
BufferedImage backgroundImage;
CRX crx;
MainWindow()
{
super("Destruction Derby");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(800,600);
setResizable(false);
setVisible(true);
init();
}
void init()
{
mainWindow = new JPanel();
File imageFile= new File("background.png");
//:::...ZAŁADOWANIE OBRAZKA TŁA:::...
try
{
backgroundImage = ImageIO.read(imageFile);
}
catch (IOException e)
{
System.err.println("File access error");
}
crx = new CRX();
paint(getGraphics());
}
@Override
public void paint(Graphics g)
{
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(backgroundImage, 0, 0, this);
crx.paint(getGraphics());
}
}
public class DestructionDerby
{
public static void main(String[] args)
{
new MainWindow();
}
}
そして、私の NetBeans プロジェクトがあります: http://www2.zippyshare.com/v/30402578/file.html