0

ユーザーが絶えず成長するラインを操作できるようにするプログラム (Tron ゲーム) を持っていますが、私が抱えている問題は、プレイヤーが向きを変えるとき、コーナーの表示方法に問題があることです。1px幅のペンなら問題ありませんが、ペンのサイズを大きくすると問題が顕著に…。

コードは次のとおりです。

    canvas = this.CreateGraphics();
    foreach (LightBike b in bikes) //draw bikes
    {
        canvas.DrawLine(new Pen(b.color, BIKE_SIZE), b.getPreviousLocation(), b.location);
        grid[b.location.X, b.location.Y] = bikes.IndexOf(b)+1;
    }

衝突を from 自体のサイズである 2D グリッドに保存します。各位置で、配列内の自転車の値を指定します。

15px幅でここに見られる: トロンオフセット

4

2 に答える 2

1

これは、ラインが選択したポイントで終了するためです。修正は簡単Penです。各行の始点と終点に正方形のキャップを描画するように に指示するだけです。

canvas.DrawLine(new Pen(b.color, BIKE_SIZE) {
    EndCap = System.Drawing.Drawing2D.LineCap.Square,
    StartCap = System.Drawing.Drawing2D.LineCap.Square
}, b.getPreviousLocation(), b.location);
于 2012-04-11T00:57:06.583 に答える
0

DrawLineコマンドを使用して、接続された線を描画しないでください。ループ内で 1 つずつ描画するのではなく、DrawLinesコマンドを使用してまとめて描画すると、線の見栄えが大幅に向上します。そして: アルファ チャネルを使い始めると、どんなに優れた LineCaps でも本当に見苦しくなります..

于 2014-03-19T17:49:10.207 に答える