画面として機能する長方形を作成する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 )