PhysObj
Bu, Entity:GetPhysicsObject, Entity:GetPhysicsObjectNum ve Vehicle:GetWheel tarafından döndürülen nesnedir.
Bu, bir fizik nesnesini temsil eder. Bir varlığın birden fazla fizik nesnesi (ragdoll'lar), bir fizik nesnesi (prop'lar) veya hiçbiri olabilir. (NPC'ler, fiziksel olmayan varlıklar vb.)
Fizik nesneleri genellikle fizik motoru tarafından simüle edilir ve genellikle varlığın konumunu belirler, tam tersi geçerli değildir.
Metotlar
PhysObj:AddAngleVelocity( Vector angularVelocity )
Belirtilen açısal hızı mevcut PhysObj'e ekler.
PhysObj:AddGameFlag( number flags )
Bir veya daha fazla bit bayrağı ekler.
PhysObj:AddVelocity( Vector velocity )
Belirtilen hızı mevcuda ekler.
Nesneyi, açıları girilenlerle hizalanacak şekilde döndürür.
PhysObj:ApplyForceCenter( Vector impulse )
Belirtilen itkiyi fizik nesnesinin kütle merkezine uygular.
Bu, oyuncularda işe yaramaz, bunun yerine Entity:SetVelocity kullanın.
Belirtilen itkiyi fizik nesnesine belirtilen pozisyonda uygular.
PhysObj:ApplyTorqueCenter( Vector angularImpulse )
Belirtilen açısal itkiyi fizik nesnesine uygular. Bkz. PhysObj:CalculateForceOffset
Bir ofset itki için nesnenin kütle merkezindeki doğrusal ve açısal itkiyi hesaplar. Çıktılar sırasıyla PhysObj:ApplyForceCenter ve PhysObj:ApplyTorqueCenter ile kullanılabilir.
ApplyTorqueCenter ile kullanacaksanız, açısal itkiyi dünya çerçevesine dönüştürmeye (PhysObj:LocalToWorldVector) dikkat edin.
Bir ofset itki için kütle merkezindeki doğrusal ve açısal hızları hesaplar. Çıktılar sırasıyla doğrudan PhysObj:AddVelocity ve PhysObj:AddAngleVelocity'e aktarılabilir.
Fizik nesnesinin hareketi devre dışı bırakılmışsa bu, sıfır uzunluklu vektörler döndürür. Bkz. PhysObj:IsMotionEnabled.
PhysObj:ClearGameFlag( number flags )
Belirtilen bir veya daha fazla bayrağı kaldırır.
PhysObj:ComputeShadowControl( table shadowparams )
Bir PhysObj'i 3D uzayda bir noktaya ve açıya taşımanıza olanak tanır. Sadece fizik gölgeleriyle değil, herhangi bir PhysObj ile çalışır.
PhysObj:EnableCollisions( boolean enable )
Fizik nesnesinin dünya da dahil olmak üzere herhangi bir şeyle çarpışıp çarpışmayacağını ayarlar.
Bu fonksiyonun şu anda oyuncu çarpışmalarıyla ilgili büyük sorunları vardır ve bu nedenle ne pahasına olursa olsun kaçınılmalıdır.
Bu fonksiyona daha iyi bir alternatif Entity:SetCollisionGroup( COLLISION_GROUP_WORLD ) kullanmak olabilir.
PhysObj:EnableDrag( boolean enable )
Fizik nesnesinin sürüklenmeden etkilenip etkilenmeyeceğini ayarlar.
PhysObj:EnableGravity( boolean enable )
PhysObject'in yer çekiminden etkilenip etkilenmeyeceğini ayarlar
PhysObj:EnableMotion( boolean enable )
Fiziksel nesnenin hareket edip edemeyeceğini ayarlar.
Bu, Fizik Silahı'nın (Physics Gun) propları dondurmak için kullandığı yöntemin aynısıdır. Hareketi devre dışı bırakılmış bir fizik nesnesi fizik silahıyla tutulursa, nesne tekrar hareket edebilir hale gelir. Buna izin vermemek için GM:PhysgunPickup kullanın.
Fizik nesnesinin Eksenle Hizalı Sınırlayıcı Kutusunun (Axis-Aligned Bounding Box) minimum ve maksimum değerlerini döndürür.
Vector PhysObj:GetAngleVelocity()
Nesnenin açısal hızını saniye başına derece cinsinden yerel bir vektör olarak alır. Belirli bir eksenden büyüklüğü okumak için nokta çarpımını (dot product) kullanabilirsiniz.
number PhysObj:GetContents()
PhysObj'in içerik bayrağını (contents flag) döndürür.
Fizik nesnesinin doğrusal ve açısal sönümlemesini döndürür.
Fizik nesnesinin doğrusal ve dönme kinetik enerjilerinin toplamını döndürür.
table PhysObj:GetFrictionSnapshot()
Bu fizik nesnesinin sürtünme anlık görüntüsünü (friction snapshot) döndürür. Bu, örneğin bir nesnenin yere değip değmediğini belirlemek için kullanışlıdır.
Bu fizik nesnesinin, kendi PhysObj:GetEntity'si üzerindeki indeksini döndürür.
Entity:TranslateBoneToPhysBone için kullanışlıdır.
Vector PhysObj:GetInertia()
Fizik nesnesinin asal eylemsizlik momentlerini (Ixx, Iyy, Izz) kütle merkezine göre yerel çerçevede döndürür.
Vector PhysObj:GetInvInertia()
1'in açısal eylemsizliğe bölünmüş halini döndürür. Bkz. PhysObj:GetInertia
number PhysObj:GetInvMass()
1'in fizik nesnesinin kütlesine (kilogram cinsinden) bölünmüş halini döndürür.
Vector PhysObj:GetMassCenter()
Fizik nesnesinin kütle merkezini yerel bir vektör olarak döndürür.
string PhysObj:GetMaterial()
Fizik nesnesinin fiziksel materyalini döndürür.
util.GetSurfaceData fonksiyonuna bakarak bu türleri ve ne oldukları hakkında daha fazla bilgi edinebilirsiniz.
physobj-physobj çarpışması için kullanılan nesnenin fizik ağını (physics mesh) döndürür.
table PhysObj:GetMeshConvexes()
Nesnenin tüm dışbükey (convex) fizik ağlarını döndürür. Daha fazla bilgi için Entity:PhysicsInitMultiConvex'e bakın.
VMatrix PhysObj:GetPositionMatrix()
Fizik nesnesinin pozisyonunu ve açısını 3x4'lük bir matris olarak döndürür (VMatrix 4x4 olduğu için dördüncü satır kullanılmaz). İlk üç sütun açıyı bir rotasyon matrisi olarak saklar ve dördüncü sütun pozisyon vektörünü saklar.
number PhysObj:GetRotDamping()
Fizik nesnesinin dönme sönümlemesini döndürür.
Angle PhysObj:GetShadowAngles()
PhysObj gölgesinin açılarını döndürür. Bkz. PhysObj:UpdateShadow.
Vector PhysObj:GetShadowPos()
PhysObj gölgesinin pozisyonunu döndürür. Bkz. PhysObj:UpdateShadow.
number PhysObj:GetSpeedDamping()
Fizik nesnesinin hız sönümlemesini döndürür.
Fizik nesnesinin yüzey alanını source-birimi² cinsinden döndürür. Veya PhysObj oluşturulmuş bir küre veya kutu ise nil döndürür.
Vector PhysObj:GetVelocity()
Fiziksel nesnenin mutlak yönlü hızını döndürür.
Bir noktanın nesne etrafındaki dünya koordinatlarındaki dünya hızını döndürür. Bu, kendi ekseni/orijini etrafında dönen nesneler için kullanışlıdır.
Hacmi source-birimi³ cinsinden döndürür. Veya PhysObj oluşturulmuş bir küre veya kutu ise nil döndürür.
Belirtilen bayrak(lar)ın ayarlanıp ayarlanmadığını döndürür.
Fizik nesnesinin "uykuda" olup olmadığını döndürür.
Daha fazla bilgi için PhysObj:Sleep'e bakın.
boolean PhysObj:IsCollisionEnabled()
Varlığın çarpışıp çarpışamayacağını döndürür.
boolean PhysObj:IsDragEnabled()
Varlığın sürüklenmeden etkilenip etkilenmediğini döndürür.
boolean PhysObj:IsGravityEnabled()
Varlığın yer çekiminden etkilenip etkilenmediğini döndürür.
boolean PhysObj:IsMotionEnabled()
Fizik nesnesinin kendi kendine (hız, ivme ile) hareket edip edemeyeceğini döndürür
boolean PhysObj:IsMoveable()
Varlığın hareket edip edemeyeceğini döndürür.
boolean PhysObj:IsPenetrating()
Fizik nesnesinin başka bir fizik nesnesine girip girmediğini döndürür.
Bu, dahili olarak PhysObj:HasGameFlag( FVPHYSICS_PENETRATING ) olarak uygulanır ve bu nedenle yalnızca statik olmayan fizik nesneleri için güncellenir.
Fizik nesnesinin yerel çerçevesindeki bir vektörü dünya çerçevesine eşler.
bu fonksiyon, önce öteleme olmak üzere, öteleme ve döndürme yapar.
Bir vektörü fizik nesnesinin yerel çerçevesinden dünya çerçevesine döndürür.
Bu fonksiyon, herhangi bir öteleme işlemi yapmadan sadece vektörü döndürür.
PhysObj:OutputDebugInfo()
Fizik nesnesinin durumu hakkındaki hata ayıklama bilgilerini konsola yazdırır.
PhysObj:RecheckCollisionFilter()
Çarpışma filtresi koşulları bu nesnenin durumuna bağlı olarak değiştiğinde (örneğin, katı türünü veya çarpışma grubunu değiştirme) bunu çağırın
Angle:RotateAroundAxis için bir kolaylık fonksiyonu.
PhysObj:SetAngleDragCoefficient( number coefficient )
Döndürmeye çalışırken bir fizik nesnesine uygulanacak sürüklenme miktarını ayarlar.
PhysObj:SetAngleVelocity( Vector angularVelocity )
Belirtilen açısal hızı PhysObj üzerinde ayarlar
PhysObj:SetAngleVelocityInstantaneous( Vector angularVelocity )
Belirtilen anlık açısal hızı PhysObj üzerinde ayarlar
PhysObj:SetBuoyancyRatio( number buoyancy )
Fizik nesnesinin kaldırma kuvveti oranını ayarlar. (Suda ne kadar iyi yüzdüğü)
PhysObj:SetContents( number contents )
PhysObj'in içerik bayrağını (contents flag) ayarlar.
Fizik nesnesinin doğrusal ve açısal sönümlemesini ayarlar.
PhysObj:SetDragCoefficient( number drag )
Nesneyi ne kadar sürüklenmenin (hava direnci) etkilediğini değiştirir.
PhysObj:SetInertia( Vector angularInertia )
Açısal eylemsizliği ayarlar. Bkz. PhysObj:GetInertia.
Bu, doğrusal eylemsizliği etkilemez.
Fizik nesnesinin kütlesini ayarlar.
Bu, PhysObj:SetBuoyancyRatio'yu sıfırlar (materyallerin ve fizik nesnelerinin yoğunluklarına göre yeniden hesaplanır, ikincisi kütleye bağlıdır). Bu bir fizik motoru sınırlamasıdır.
PhysObj:SetMaterial( string materialName )
Fiziksel nesnenin materyalini ayarlar.
Çarpma sesleri yalnızca bu istemcide (client) çağrılırsa değişir
PhysObj:SetVelocity( Vector velocity )
Bir sonraki yineleme için fizik nesnesinin hızını ayarlar.
PhysObj:SetVelocityInstantaneous( Vector velocity )
Fizik nesnesinin hızını ayarlar.
PhysObj:Sleep()
Fizik nesnesini "uyutur". Fizik nesnesi, başka bir hareketli nesneyle çarpışarak veya PhysObj:Wake tarafından "uyandırılmadığı" sürece artık hareket etmeyecektir.
Bu, fizik motorunun bir optimizasyon özelliğidir. Normalde fizik nesneleri, kaynak tasarrufu yapmak için kısa bir süre hareket etmediklerinde otomatik olarak "uykuya dalarlar", ancak örneğin bir nesneyi havada geçici olarak askıya almak gibi başka amaçlar için de kullanılabilir.
PhysObj:SetPos ve PhysObj:SetAngles'dan farklı olarak bu, fiziksel etkileşimleri sağlam bırakırken bir fiziksel nesnenin hareketine izin verir.
Bu, Gravity Gun'ın hareket kontrolcüsü, +use ile alma ve Physics Gun tarafından ve vinç gibi varlıklar tarafından dahili olarak kullanılır.
Bu, Entity:PhysicsInitShadow veya Entity:MakePhysicsObjectAShadow ile oluşturulmuş bir fizik gölgesini hareket ettirmek için ideal fonksiyondur.
PhysObj:Wake()
Fizik nesnesini uyandırır, böylece fizik/yer çekimini simüle etmeye devam eder.
Daha fazla bilgi için PhysObj:Sleep'e bakın.
Bir vektörü, fizik nesnesinin koordinat sistemine göreli olacak şekilde dönüştürür.
Bir vektörü dünya çerçevesinden fizik nesnesinin yerel çerçevesine döndürür.
Bu fonksiyon, herhangi bir öteleme işlemi yapmadan sadece vektörü döndürür.
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord