# PhysObj:ApplyForceCenter

- **Ortam:** İstemci, Sunucu
- **İngilizce aslı:** https://wiki.facepunch.com/gmod/PhysObj:ApplyForceCenter
- **Çeviri tarihi:** 2025-09-08

```lua
PhysObj:ApplyForceCenter( Vector impulse )
```

## Açıklama

Belirtilen itkiyi (impulse) fizik nesnesinin kütle merkezine uygular.

> **NOT:** Bu, oyuncular üzerinde çalışmaz; onun yerine [Entity:SetVelocity](https://gmod.tr/wiki/Entity:SetVelocity) kullanın.

## Argümanlar

1. [Vector](https://gmod.tr/wiki/Vector) **impulse**: Uygulanacak [itki (impulse)](https://en.wikipedia.org/wiki/Impulse_(physics)), birimi `kg*source_unit/s`'dir. (Vektör, dünya koordinat sistemindedir)

### Örnek

Kuvvet denklemine dayanarak objeye aşağı doğru bir kuvvet uygulayarak kendi yer çekimini simüle eden bir obje:

`(Kuvvet = kütle * ivme)`

Varsayılan olarak objelerin zaten yer çekimi olduğundan, varsayılan yer çekiminin özel yer çekimimizle çakışmaması için objenin [Initialize](https://gmod.tr/wiki/ENTITY:Initialize) fonksiyonuna `phys:EnableGravity(false)` eklenerek kapatılması gerekir.

**NOT**: Objenin kütlesini [PhysObj:GetMass](https://gmod.tr/wiki/PhysObj:GetMass) fonksiyonunu kullanarak alabiliriz.

> **NOT:** -9.80665 (metre / saniye ^ 2), Dünya'daki nesnelerin yer çekimi nedeniyle yaklaşık ivmesidir. (Yer çekimi nesneleri aşağı doğru ittiği için negatiftir.)

> **NOT:** ApplyForceCenter'ın kabul ettiği itki biriminin kg*source_unit / s olduğu göz önüne alındığında, birim dönüşümü yapmamız gerekir: 1 metre ≈ 39.37 source birimi ([obje ölçeğinde](https://developer.valvesoftware.com/wiki/Dimensions#Source_Engine_Scale_Calculations))

```lua
function ENT:Initialize()
    self:SetModel( "models/hunter/blocks/cube1x1x1.mdl" )
	self:PhysicsInit( SOLID_VPHYSICS )
	self:SetSolid( SOLID_VPHYSICS )
	self:SetMoveType( MOVETYPE_VPHYSICS )

    local phys = self:GetPhysicsObject()
    if phys:IsValid() then
        phys:EnableGravity( false ) -- Bu gereklidir, çünkü kendi yer çekimimizi oluşturuyoruz.
        phys:Wake()
    end
end

function ENT:PhysicsUpdate( phys )
	local force = phys:GetMass() * Vector( 0, 0, -9.80665 ) * 39.37 -- Bu bize kuvveti kg*source_unit/s^2 cinsinden verir
	local dt = engine.TickInterval() -- Kuvvetin nesne üzerinde etki ettiği zaman aralığı (saniye cinsinden)
    phys:ApplyForceCenter( force * dt ) -- İkisini çarpmak bize itkiyi kg*source_unit/s cinsinden verir
end
```

- [GMod Wiki ana sayfası](https://gmod.tr/wiki)

---

[Tüm sunucular](https://gmod.tr/) · [GmodTR Launcher](https://gmod.tr/launcher) · [Rehber](https://gmod.tr/rehber) · [GMod Wiki](https://gmod.tr/wiki) · [GmodTR nedir?](https://gmod.tr/hakkinda) · [Sunucu ekle](https://gmod.tr/sunucu-ekle) · [Discord](https://discord.gg/gmodtr)

Kaynak: https://gmod.tr/wiki/PhysObj:ApplyForceCenter
