1

//Javaで基本的なレースカーを作成しようとしています。本体に長方形を作り、正面に三角形を作ろうとしています。三角形を作成するためのコードをオンラインで探しましたが、下にある長方形の場合のような形式ではないようです。このコードのほとんどは「邪悪な天才のためのビデオゲームプログラミング」から参考にしたもので、今では自分の車を作ることをお勧めしますが、説明されている形状は長方形だけです。コードを長方形から三角形にコピーし、一方が他方と重なることを期待して、それが機能することを確認しましたが、そうではありません。誰かが私に三角形とおそらく円を作る方法を説明することができますか?また、別のクラスを作成せずにこれを行う方法はありますか?

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;

public class Vehicle extends JFrame

 {
    final int WIDTH = 900; int HEIGHT = 650;

    Rectangle p1Body = new Rectangle(WIDTH/9,HEIGHT/2, WIDTH/30,WIDTH/30);
    Triangle p1Front = new Triangle(WIDTH/9,HEIGHT/2, WIDTH/30,WIDTH/30);

    Rectangle p2Body = new Rectangle(((WIDTH/9)+((int)((WIDTH/9)*1.5)/2)),(HEIGHT/2)+ 
    (HEIGHT/10),WIDTH/30,WIDTH/30);


public Vehicle()
    {
        super("Radical Racing");
        setSize(WIDTH,HEIGHT);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);

}
public void paint(Graphics g)
{
    super.paint(g);

    g.setColor(Color.DARK_GRAY);
    g.fillRect(0,0,WIDTH,HEIGHT);

    g.setColor(Color.BLUE);

    g.fill3DRect(p1Body.x,p1Body.y,p1Body.width,p1Body.height,true);
    g.setColor(Color.BLUE);
    g.fill3D(p1Front.x,p1Front.y,p1Front.width,p1Front.height,true);


    g.setColor(Color.red);

    g.fill3DRect(p2Body.x,p2Body.y,p2Body.width,p2Body.height,true);

}


public static void main(String[]args)
    {
        new Vehicle();
    }

}
4

1 に答える 1

1

三角形はPath2D(.Double)を使用して実行できます円はEllipse2D(.Double)を使用して実行できます

ところで、Areaを使用してこれらすべての形状を1つに結合することを検討することをお勧めします-http://docs.oracle.com/javase/7/docs/api/java/awt/geom/Area.html。エリアは、形状の操作や、ポイントなどが含まれているかどうかのテストに非常に役立ちます。

Graphics2D.draw(または塗りつぶし)をチェックしてください(形状)

http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics2D.html#draw(java.awt.Shape

于 2012-05-29T21:29:28.047 に答える