2016-03-19 38 views
1

Düğüm dizileri dizisi var ve bu dizideki nesnenin konumunu ilk nesnede ayarlamak istiyorum, çalışır ve nesne aslında amaçlandığı gibi konumlandırılır. karşılaştırmayı başarısız yapar ve 'HAYIR' kaydını yapar.[cc yaratıcısı] Karşılaştırma çalışmıyor

Konumu ayarlayan kod satırı çalışır, ancak karşılaştırma başarısız, burada neyin var ?!

start: function() { 
     this.node.position = this.flags[0].position; 
     this.movement(); 
    }, 
    movement: function() { 
     if (this.node.position == this.flags[0].position) { // Problem 
      console.log("YES"); 
     } 
     else { 
      console.log("No"); 

Güncelleme: Böyle yaptığımda

çalışır: Eh

if (this.node.position.x == this.flags[0].position.x) // or position.y 

cevap

1

burada javascript yazmak (ve senin gibi görünüyor) iki şey vardır eğer bilmeniz gerekenler:

  1. ile nesneleri karşılaştıramazsınız kutudan

    ({ "a": 1} == { "a": 1}) yanlış (tarayıcınızda kendiniz deneyebilirsiniz geri döner. Eğer böyle bir şey yapabileceğini Çözüm olarak :

    fonksiyon posCompare (p1, p2) { dönüş p1.x === p2.x & & p1.y === p2.y;

  2. Ben === yerine == kullanımı Bak nasıl }

Sonra

    pozisyonlar için yerine == arasında kullanmak? İkinci bir şey bilmek sadece === kullanın. Which equals operator (== vs ===) should be used in JavaScript comparisons? arasındaki farkı öğrenebilir, ancak her yerde =='dan uzak durabilirim. Bu daha yavaş, burada ve orada garip hatalara neden olabilir - sadece hiç kullanmayın sadece
+0

Bunu denedi, değişiklik yok. Güncellemeyi kontrol et. – Abdou023

+0

Bir saniye bekleyin. Position.x-es işlerini karşılaştırdığınızı yazdınız (her iki koordinatı da kontrol etmeniz gerektiğinden, bu da yanlıştır). Eğer siz ne düşünüyorsunuz? If (this.node.position.x === this.flags [0] .position.x && this .node.position.y == this.flags [0] .position.y) 'çalışmaz mı? (belki de değerler gerçekten farklı mıdır?) –

+1

=== yerine === hakkında konuşuyordum, ama evet, yolun çalışıyor, ama orijinal kodumun neden işe yaramayacağını anlamıyorum, karşılaştırmaya devam etmek çok büyük bir zorluk. hem x hem de bunun gibi. Diğer oyun motorlarında pozisyon karşılaştırması iyi sonuç verir. – Abdou023