Ev Kişisel Finans HTML5 Oyununuza Çarpışma Ekleme - AYAKLAR

HTML5 Oyununuza Çarpışma Ekleme - AYAKLAR

İçindekiler:

Video: How to make a 2D Game in Unity 2025

Video: How to make a 2D Game in Unity 2025
Anonim

HTML5 video oyunlarındaki en ilginç şeyler sprite'ler birbirine çarpıp çarpıştıklarında gerçekleşir. Oyun motorları normalde iki sprite'nin çakışıp çakışmadığını test etmek için bir takım araçlara sahiptir. Bu, çarpışma algılama olarak adlandırılır ve bir takım yollarla yapılabilir. Bu örnek, standart sınırlayıcı dikdörtgen düzenini kullanmaktadır. Mükemmel değil, ancak uygulanması çok kolay ve yaygın olarak kullanılmaktadır.

Oyununızda sınırlayıcı dikdörtgen çarpışmalar nasıl kurulur

colTest'e bir göz atın. html ve basit bir örnek göreceksiniz.

ColTest'te. html örneğinde, kullanıcı yaratıcıyı fareyle hareket ettirir ve yaratıcı ekranın ortasındaki kutuya dokunduğunda bir mesaj alırsınız.

COLTEST. html checkCollisions (); kutu. güncelleştirme(); yaratık. update ();} // son güncelleme; function checkCollisions () { if (box. CollidesWith (critter)) { çıktı. innerHTML = "Çarpışma"; } else { çıktı. innerHTML = "Çarpışma yok"; } // end if } // son checkCollisions boş

Bu kodda bazı ilginç şeyler oluyor:

  1. Normal fare imlecini gizleyin.

    Farenizi takip eden başka bir nesneye sahip olduğunuzda, normalde normal ok imlecini gizlemek istersiniz. SimpleGame'de oyunu kullanın. Oyun ekranının içinde fare imlecini gizlemek için hideCursor () yöntemi.

  2. Birden fazla sprite oluşturun.

    İki tango ya da çarpışmak gerekiyor. Bu örnekte, kutu sabit kalacak ve fareyi izleyen bir yaratık olacaktır.

  3. Kritere bir FollowMouse () yöntemi verin.

    Bu örnekte, yaratıcı fareyi takip ettirin. Bir followMouse () yöntemi oluşturarak başlayın.

  4. Farenin konumunu belirleyin.

    Fare konumu (simpleGame.js'de) belge ile belirlenir. mouseX ve belge. mouseY özellikleri.

  5. Fare konumunu yaratıcı konuma kopyalayın.

    Sığanın x konumunu ayarlamak için fare x konumunu kullanın ve y ile tekrarlayın.

  6. Yaratıcının followMouse () yöntemini her kareye çağırın.

    Her zamanki gibi, update () işlevi, art arda gerçekleşmesi gereken kodu koyduğunuz yerdir.

ColTest ile oyun oynarsanız. html sayfasında, muhtemelen çarpışmaların tam olmadığını fark edeceksiniz. Yaratıcı kutuya dokunmadığında bile bir çarpışma kaydı yaptırmak mümkündür. Bu önemlidir, çünkü simpleGame sınırlayıcı kutu çarpışmaları olarak adlandırılan bir düzen kullanır.

Bu, gerçekte, görüntülerin çarpıp karışmadığını değil, görüntülerin çevresindeki dikdörtgelerin çarpışıp çarpmayacağını kontrol etmediğiniz anlamına gelir. Bu örnekte, fark ufak olmakla birlikte, bu mekanizma ile, özellikle de uzun ve ince unsurlarla bazen önemli hatalar göreceksiniz. Bir sprite döndüğünde, sınırlayıcı dikdörtgenin boyutu değişebilir.

Oyununuz için mesafeye dayalı çarpışmalar

sınırlayıcı çember çarpışmaları olarak adlandırılan alternatif bir çarpışma algılama biçimi var. Bu mekanizma ile, sadece iki sprite merkezi arasındaki mesafeyi hesaplarsınız ve bu değer bir miktar eşik değerden küçükse, onu bir çarpışma olarak değerlendirirsiniz. Bu yaklaşımın iki avantajı vardır:

  • Çarpışma mesafesi sabittir. Görüntüler döndürülürse, görüntülerin boyutunu değiştirse bile görüntü merkezleri arasındaki mesafe değişmez.

  • Çarpışma eşiği çeşitlendirilebilir. İstediğiniz hassasiyeti ayarlayabilirsiniz. Kolay çarpışmalar için büyük bir çarpışma yarıçapı ve yalnızca çarpıtmalar birbirine çok yakın olduğunda çarpışmaların tetiklenmesini istiyorsanız daha küçük bir yarıçap ayarlayın.

simpleGame kitaplığı Sprite nesnesi, bir sprite'tan diğerine olan mesafeyi hesaplayan distanceTo () yöntemine sahiptir. Uzaktan bu koda bir örnek görebilirsiniz. html örneği:

mesafe. html var oyun; var kutu; yaratık; var çıktı; işlev init () {game = yeni Sahne (); oyun. hideCursor (); kutu = yeni Sprite (oyun, "simpleBox. png", 50, 50); critter = yeni Sprite (oyun, "yaratıcı. gif", 50, 50); çıktı = belge. getElementById ("çıkış"); // kutu sabit konum kutusunu ver. ayarlanan konum (200, 150); Kutu. (0) setspeed; yaratık. setPosition (100, 100); yaratık. (0) setspeed; // critter fare yaratıcısı tarafından kontrol edilir. followMouse = işlevi () {this. setX (doküman mouseX); bu. setY (document. mouseY);} // sonu takipMouse oyunu. start ();} / / bitiş init işlevi update () {oyun. açık(); yaratık. followMouse (); checkDistance (); kutu. güncelleştirme(); yaratık. update ();} // son güncelleme; function checkDistance () { dist = kutu. DistanceTo (yaratık); if (dist <50) { çıktı. innerHTML = "Çarpışma:" + dist; } else { çıktı. innerHTML = "Çarpışma yok:" + dist; } // end if } // son checkDistance boş

Mesafee dayalı çarpışma yöntemi, sınırlayıcı dikdörtgen biçimine çok benzemektedir. Eski checkCollisions () gibi davranacak bir checkDistance () işlevi oluşturun. CheckDistance'da gerçekleşen şeylerin adımları:

  1. İki sprite arasındaki mesafeyi bulun.

    İki sprite arasındaki mesafeyi belirlemek için sprite'ın distanceTo () yöntemini kullanın.

  2. Mesafe bir miktar eşiğin altında ise, bir çarpışma olarak sayın.

    Genellikle, bir çarpışma eşiğinin başlangıç ​​noktası olarak küçük sprite genişliğini kullanmanız gerekir; ancak bunu, çarpışmaları daha fazla veya daha düşük olası kılmak için ayarlayabilirsiniz.

  3. Çarpışma durumunu bildirin.

    Bu örnekte basitçe "çarpışma" veya "çarpışma yok" yazdı; ancak gerçek bir oyunda çarpışmalar diğer eylemlerin tetikleyicileri: puanın artırılması, hayat sayısının azaltılması, çarpışan öğelerin hızının veya konumunun değiştirilmesi, ya da her neyse. (Umarım patlamalar içerir.)

HTML5 Oyununuza Çarpışma Ekleme - AYAKLAR

Editörün Seçimi

Google'a Ödenen Bağlantıları Ne Zaman ve Nasıl Raporlarsınız? - mankenler

Google'a Ödenen Bağlantıları Ne Zaman ve Nasıl Raporlarsınız? - mankenler

ŞüPheleniyorsanız çevrimiçi yarışmacılarınızın satın aldığı bağlantılar ve arama motoru sonuçlarında daha yüksek sırada yer alıyorsa, soruşturma için bunları Google'a bildirebilirsiniz. Ancak, önce, rakibin gerçekten sistemi kötüye kullandığından emin olmanız gerekir. Ücretli bağlantıları bildirmek, spam bildirmekten farklıdır. ...

Web siteniz için İçerik Fikirleri Nerede Bulundu - mankenler

Web siteniz için İçerik Fikirleri Nerede Bulundu - mankenler

Eğer boğulmuş hissederseniz Web siteniz için sayfalar ve içerik sayfaları yazma düşüncesi kalpten alır. Beyin fırtınası yapmak, rakiplerinizin sitelerine bakmak, kendi çevrimdışı malzemelerinizi kullanmak ve müşterilerinizin neyi istediğini dinlemek de dahil olmak üzere içerik için fikir edinmenin birçok yolu vardır. Web içeriği geliştirmek için beyin fırtınası ...

Neden pazarlamanız için Arama Motorlarını Kullanıyorsunuz? - mankenler

Neden pazarlamanız için Arama Motorlarını Kullanıyorsunuz? - mankenler

Neden pazarlamanız için arama motorlarını kullanmaya özen gösterin? Çünkü arama motorları, yeni web sitesi ziyaretçileri için tek en önemli kaynağı temsil eder. Çoğu Web sitesi ziyaretinin bir arama motorundan başladığını duymuşsundur. Pek çok kişi bu eski istatistikleri kullanmaya devam etse de, bu doğru değil - "% 80'i ..."

Editörün Seçimi

Doğa ve Manzara İçin Doğru Çekim Modu - mankenler

Doğa ve Manzara İçin Doğru Çekim Modu - mankenler

Doğa fotoğrafçılığının farklı çekim modları alt -genres. Doğa fotoğraflandığında, sayısız konu var. Sonsuza dek uzanan muhteşem manzara, yaban hayatı ve çiçekler ve böcekler gibi küçük nesneler var. Ayrıca, mükemmel pozlu bir sonuç elde etmek için kullanabileceğiniz enstantane hızı, diyafram ve ISO kombinasyonlarınız da var ...

Akvaryum ve Hayvanat Bahçelerinde Fotoğraf Çekme Dijital SLR'yi Kullanma - Hayvanları

Akvaryum ve Hayvanat Bahçelerinde Fotoğraf Çekme Dijital SLR'yi Kullanma - Hayvanları

Cam veya metal, siz ve dijital SLR'niz iyi bir ekip. Ve, biraz çalışma ve yaratıcılık ile, vahşi doğada olduğu gibi harika görüntüler elde edebilirsiniz. Kameranız, kalın akvaryum camıyla odaklanmakta zorlanır ya da ...

Kuşların Fotoğrafını Yapma Hakkı Ekipmanları - kuklalar

Kuşların Fotoğrafını Yapma Hakkı Ekipmanları - kuklalar

Kuş fotoğrafı çok faydalıdır. Bununla birlikte, doğru ekipmana sahip olmadığınızda kuşların iyi fotoğraflarını çekmek oldukça zor olabilir. Konularınızı bilmenin yanı sıra, hangi cihazın kullanılacağını ve dijital kameranızla harika kuş görüntüleri yakalamak için hangi teknikleri kullanacağınızı bilmeniz gerekir. Kamera ...

Editörün Seçimi

Adobe Edge'de Konteynerde Büyük Resimleri Biçimlendirme Animate CC - mankenler

Adobe Edge'de Konteynerde Büyük Resimleri Biçimlendirme Animate CC - mankenler

Edge Animate'ye çok parçalı bir resim içe aktardığınızda, daha büyük bir görüntünün küçük öğelerini bir arada tutmak için bir kap kullanabilirsiniz. Ama neden büyük bir imajı daha küçük parçalara ayırıyorsun? 1024 x 1024'ten daha büyük resimler, mobil cihazlar ve tabletlerde iyi çalışmaz. Bu büyük görüntüleri daha küçük parçalara ayırmak akıllıca olur ...

Dizileri Nasıl Oluşturulur? Kenar Animate'de Diziler Nasıl Oluşturulur - mankenler

Dizileri Nasıl Oluşturulur? Kenar Animate'de Diziler Nasıl Oluşturulur - mankenler

Anahtar kareler ve animasyon ile çalışma konusunda bir işlem yapmak önemlidir dizilerini Adobe Edge Animate'de oluşturabilir, böylece bunları oluşturabilir ve istediğiniz gibi yapacak şekilde düzenleyebilirsiniz. Ana Animate'nin ana kareleri ve animasyon dizileri oluşturmak için ihtiyacınız olan tüm parçalarını inceleyin. Burada aslında bu ana kareleri oluşturduğunuz yerdir ve ...

Adobe Kenarında Rollover Resimleri Biçimlendirme Adobe Kenarında Rollover Görüntüleri Biçimlendirme Animate CC

Adobe Kenarında Rollover Resimleri Biçimlendirme Adobe Kenarında Rollover Görüntüleri Biçimlendirme Animate CC

Için tek tek rollover efektleri oluşturun. Edge Animate'de imajınızı oluşturan farklı öğeler. Bu, resminizin kullanıcı tarafından yanıtlanmasını sağlayabilir. Bunu yapmak için fazladan koda ihtiyacınız bile yok. Zaman Çizelgesi'ni kullanın ve fareyle üzerine tıklama işlemlerini öğelere ilişkilendirin. Bir rollover efekti oluşturmak için şu adımları izleyin: ...