Kaydırma, yakınlaştırma ve ölçekleme eylemleriyle oyununuzun görüntü alanını nasıl kontrol edeceğinizi öğrenin.
İyi tasarlanmış bir kamera sistemi, oyuncuları oyun dünyasının içine çekmeye ve daha iyi bir konum hissi vermeye yardımcı olabilir. Kamera, oyuncunun gözleri gibi davranarak oyun dünyasında gezinmesini ve etkileşim kurmasını sağlar.
Godot'ta bir kamera sistemi oluşturmak basit ama güçlüdür. Kamerayı kolayca oyuncuyu takip edecek şekilde ayarlayabilir, hareketlerini oyun alanıyla sınırlayabilir ve hatta oyundaki olaylara göre dinamik yakınlaştırma ve ölçekleme ekleyebilirsiniz.
Basit Bir Oyun Yaratmak
Başlamadan önce 2 boyutlu bir oyun dünyası ve oyununuzda bir karakter oluşturmanız gerekiyor. Godot Oyun Motoru kamera takip edebilir.
Yeni bir 2B sahne oluşturun ve KarakterBody2D düğüm. Bu, oyuncu karakterimiz olarak hizmet edecek. CharacterBody2D'nin içine bir ekleyin Çarpışma Şekli2D ve şeklini şu şekilde ayarlayın: DikdörtgenShape2D oyuncunun dünyadaki fiziksel varlığını sağlamak.
Bu makalede kullanılan kod bu makalede mevcuttur. GitHub deposu ve MIT lisansı altında ücretsiz olarak kullanabilirsiniz.
Ayrıca, CharacterBody2D'nin içine bir Sprite2D düğümü oluşturun ve oynatıcınızın hareketli görüntüsünü buna atayın. CharacterBody2D düğümüne eklenmiş yeni bir komut dosyası oluşturun ve aşağıdaki kodu ekleyin:
extends CharacterBody2D
var speed = 200
func _physics_process(delta):
var velocity = Vector2()if Input.is_action_pressed('ui_right'):
velocity.x += 1if Input.is_action_pressed('ui_left'):
velocity.x -= 1if Input.is_action_pressed('ui_down'):
velocity.y += 1if Input.is_action_pressed('ui_up'):
velocity.y -= 1
velocity = velocity.normalized() * speed
move_and_collide(velocity * delta)
Bu kod ile oyuncu karakteri artık dört yönde de hareket edebilmektedir ve platformlarla çarpışacaktır.
Takip Kamerası Sisteminin Uygulanması
Bir sonraki adım, oyuncunun hareketlerini takip eden bir kamera oluşturmaktır. Ekle Kamera2D senin bir çocuğu olarak düğüm KarakterBody2D düğüm. Bu, kameranın her zaman oynatıcıyı takip etmesini sağlar. Hareketi daha yumuşak hale getirmek için, hareketin konum yumuşatma özelliğini etkinleştirin. Kamera2D düğüm.
$Camera2D.enabled = true
$Camera2D.position_smoothing_enabled = true
Kamera Sınırlarını ve Kısıtlamalarını Uygulama
Oyuncunun görüşünü oyun alanıyla sınırlamak genellikle önemlidir. Ancak bunu düzgün bir şekilde halletmezseniz, kamera oyunun kapsamı dışında kalan alanları gösterebilir. Bunlar boşlukları veya tamamlanmamış alanları içerebilir.
Godot, kamera sınırlarını belirlemenin ve oyun alanı içindeki hareketlerini kısıtlamanın kolay bir yolunu sunar.
İçinde Kamera2D düğüm özellikleri, dört değişken vardır: limit_left, limit_top, limit_right, Ve limit_bottom. Bunlar kameranın sınırlarını belirler. Bu değerleri oyun dünyanızın boyutuna göre ayarlayabilirsiniz.
$Camera2D.limit_left = 0
$Camera2D.limit_top = 0
$Camera2D.limit_right = your_game_area_width
$Camera2D.limit_bottom = your_game_area_height
Yer değiştirmek your_game_area_width Ve your_game_area_height oyun dünyanızın genişliği ve yüksekliği ile. Bu komut dosyası, kamerayı istenen alan içinde etkili bir şekilde kısıtlayarak oyuncu için temiz ve odaklanmış bir oyun deneyimi sağlar.
Kamera Yakınlaştırma ve Ölçekleme İşlemleri
Dinamik yakınlaştırma ve ölçeklendirme, oyunda etkili anlar yaratmada etkili olabilir. Örneğin, güçlü bir aksiyon sırasında oyuncu karakterini yakınlaştırmak veya büyük bir düşmanı veya oyun dünyasının panoramik bir görüntüsünü ortaya çıkarmak için uzaklaştırmak isteyebilirsiniz.
Godot, yakınlaştırmayı ve ölçeklemeyi kolaylaştırıyor. yakınlaştır mülkiyeti Kamera2D düğüm. Bu özellik bir Vector2'dir ve (1, 1) varsayılan yakınlaştırma düzeyidir. Daha yüksek değerler uzaklaşarak görüntülenen nesnelerin daha küçük görünmesini sağlarken, daha düşük değerler yakınlaşarak nesnelerin daha büyük görünmesini sağlar.
Yakınlaştırmak için şunları kullanabilirsiniz:
$Camera2D.zoom = Vector2(0.7, 0.7)
Yakınlaştırmayı sıfırlamak için şunu kullanın:
$Camera2D.zoom = Vector2(1, 1)
Vector2()'ye ilettiğiniz değerler, X ve Y eksenlerindeki yakınlaştırma seviyesini belirler. (0,7, 0,7) yakınlaştırma değeri, kameranın yakınlaştıracağı, (1,5, 1,5) değeri ise kamerayı uzaklaştıracağı anlamına gelir.
En boy oranını korumak için genellikle her iki eksen için aynı değeri tutmalısınız, ancak benzersiz efektler elde etmek için farklı değerler deneyebilirsiniz.
Ek Özellikler Dahil
Oyununuz için bir kamera sistemi oluştururken, deneyimi geliştirmek için dahil edebileceğiniz çok sayıda ek özellik vardır.
kamera sallanıyor
Birçok oyunda kullanılan ortak bir efekt, özellikle platform oyunları, kamera sarsıntısıdır. Bu, genellikle oyunun belirli anlarında, örneğin bir patlama veya bir karakterin güçlü saldırısı gibi, etkiyi veya yoğunluğu iletmek için kullanılır.
Bu işlevi, Godot'ta bir işlev oluşturarak kolayca ekleyebilirsiniz. sallamak() işlev. Belirli oyun içi etkinliğe göre sallama efektinin süresini ve yoğunluğunu belirleyebilirsiniz.
Sesler, bir oyundaki yer ve hareket hissini büyük ölçüde geliştirebilir. Bu, bir swoosh oynamak kadar basit olabilir ses efekti kamera hızla hareket ettiğinde veya kaydırdığında veya kameranın konumuna veya yakınlaştırma düzeyine göre ortam seslerinin veya müzik parçalarının ses düzeyini veya perdesini değiştirmek kadar karmaşık olduğunda.
Örneğin, bir mesafe hissi vermek için kamera uzaklaşırken bir şarkının sesini kısmak isteyebilirsiniz.
Dinamik aydınlatma
Ayrıca dinamik aydınlatma efektlerini kameranıza bağlayabilirsiniz. Kameranız oyun dünyasında hareket ederken, yeni ortamları yansıtmak veya belirli alanları veya nesneleri vurgulamak için aydınlatma koşullarını değiştirebilirsiniz.
Bu, kamera bir mağaraya girerken sahneyi kademeli olarak karartmak veya bir spot ışığıyla önemli bir nesneyi vurgulamak gibi şeyleri içerebilir.
Kamera Geçiş Efektleri
Kameralar arasında geçiş yaparken çeşitli geçiş efektleri oluşturabilirsiniz. Bu, görüntünün anında bir kameradan diğerine atladığı basit bir kesme veya görüntünün kademeli olarak bir kameradan diğerine geçtiği bir solma olabilir.
Ek kodlama ve animasyonla silme, slayt veya iris gibi daha karmaşık geçişler kullanabilirsiniz.
Kamera Sistemi Eklemek İçin En İyi Uygulamalar
Oyununuza bir kamera sistemi eklerken, mümkün olan en iyi oyun deneyimini sağlamak için akılda tutulması gereken birkaç en iyi uygulama vardır.
Ani Kamera Hareketlerinden Kaçının
Kamera perspektifindeki ani değişimler oyuncular için kafa karıştırıcı olabilir ve oyunu bozabilir. Sürükleyiciliği korumak için her zaman yumuşak kamera geçişlerini hedefleyin.
Kamera Sarsıntısını Sınırla
Kamera sarsıntısı belirli olaylara etki edebilirken, çok fazlası oyunu takip etmeyi zorlaştırabilir ve oynamayı rahatsız edebilir. Bu efekti idareli ve ölçülü olarak kullanın.
Farklı Zum Düzeylerini Test Edin
Farklı oyunlar ve bir oyun içindeki farklı durumlar, farklı yakınlaştırma seviyeleri gerektirebilir. Her durum için en uygun yakınlaştırma seviyesini bulmak için baştan sona test edin.
Kamera Sınırlarını Dikkatle Düşünün
Kamera sınırları, seviyelerinizin tasarımına uyacak şekilde dikkatlice ayarlanmalıdır. Oyuncunun oyun dünyasının dışını görmesini veya ekran dışındaki önemli öğeleri kaçırmasını istemezsiniz.
Oyuncu Deneyimine Öncelik Verin
Kamera sisteminin ana hedefi her zaman oyuncu deneyimini geliştirmek olmalıdır. Aksiyonun en iyi görüntüsünü sağlamak, önemli anları vurgulamak veya oyuncunun çevrede gezinmesine yardımcı olmak için kamera her zaman daha iyi bir oyun deneyimine katkıda bulunmalıdır.
Kamera Sistemi İle Godot Oyunlarını Daha İlgi Çekici Hale Getiriyor
İyi uygulanmış bir kamera sistemi, genel oyun deneyimini geliştirebilir. Aksiyonu vurgulayabilir, hikaye anlatımına yardımcı olabilir ve daha sürükleyici bir deneyim sağlayabilir.
Oyuncunun ne gördüğünü ve ne zaman gördüğünü kontrol ederek oyun dünyasındaki yolculuğuna rehberlik edebilir ve oyunu daha dinamik ve ilgi çekici hale getirebilirsiniz.