1

画面として機能する長方形を作成する3Dゲームがあり、ゲーム自体は位置へのベクトルで機能します。したがって、長方形を作成し、これらのパラメーターのみを使用可能にします。

開始位置 -> ベクトル (x,y,z)。オブジェクト(x,y,z)の角度(回転)。長方形のサイズ。

また、オブジェクトを右側に回転させる必要があるため、天使も (x、y、z) を使用しています。

例:

position:-381.968750 -28.653845 -12702.185547
angle: -0.000 90.000 90.000

私が作成するものは少し難しいですが、アイデアとしては単純です。

2 つの完全に異なる位置と角度を選択し、最初のベクトルから 2 番目のベクトルまで長方形を作成します。

開始点と角度でのみ長方形を作成できます。サイズを (x,y) に設定できます

そこで、2 つの異なる角度で 2 つの位置 (ベクトル) を挿入します。

長方形は、(90 と 0) -> 45 のように、最初の角度と 2 番目の角度の中間の値になります。

四角形は開始ベクトルから始まり、独自のサイズで終了するため、終了ベクトルを直接使用する機会はありません。

写真の伝説:

緑 => 開始位置と終了位置 (ベクトル)。

赤 => マークされたゾーン。

青 => 長方形をどのように作成するか。

ここに画像の説明を入力

    aem_point = vgui.Create( "AEM.Main.Panel" )
if IsValid(aem_point) then
    aem_point:SetSize( 2,2 ) -- <-the size that i can set   
    aem_point:SetPos( 0, 0 )
    aem_ph = vgui.Create( "DHTML", aem_point )  
    aem_ph:SetSize( aem_point:GetSize() )
    aem_ph:SetPos(aem_point:GetPos())
    aem_ph:SetVisible( true )
    aem_ph:SetHTML([[
        <html>
        <body style="margin:0px;padding:0px;font-size:20px;color:red;border-style: solid;border-color: #ff0000;background-color:rgba(255,0,0,0.1);">

        </body>
        </html>
    ]] ) 
end

    hook.Add( "PostDrawOpaqueRenderables", "DrawSample3D2DFrame" .. math.random(), function()
        if first and dat_finish then
vgui.Start3D2D( input_position, input_angle, 1 ) -- <-and position&vec
            aem_point:Paint3D2D()
            vgui.End3D2D()
        end
    end )   
4

1 に答える 1