'Raiden 2' mor lazerin arkasındaki matematik nedir?


15

Lazerin yolu, kullanıcı girişinden ve ekranda bulunan düşmanlardan etkilenir. İşte bir video, 5:00 dakikada söz konusu lazer gösterilir: Raiden II (PS) - 1 Loop Clear - Bölüm 2

GÜNCELLEME

İşte Inkscape kullanarak bir test, gemi altta, ilk 4 düşman plazma tarafından hedefleniyor. Bir çeşit örüntü var gibi. Önce gemiyi hareket ettirdim, daha sonra 45 ° açı oluşturmak için kolu ondan hareket ettirdim, sonra eğriye uymaya çalışırken bir paralel tutamak deseni buldum ve son düşmana ulaşana kadar devam ettim. resim açıklamasını buraya girin

Güncelleme, 26.05.2012 : Bezers kullanarak bir XNA projesi başlattım, hala biraz çalışma gerekiyor, soruyu gelecek hafta güncelleyecek. Bizi izlemeye devam edin !

resim açıklamasını buraya girin

Güncelleme: 30.05.2012 : Görünüşe göre Bézier eğrileri kullanıyorlar, sanırım böyle bir plazmayı çoğaltabileceğim / taklit edebileceğim. Son zamandan beri keşfettiğim iki yeni konu var: Ark uzunluğu , Runge fenomeni , ilk önce bir Bézier eğrisi üzerinde doğrusal bir hareketin mümkün olmasına yardımcı olmalı, ikincisi köşe sayısını optimize etmeye yardımcı olmalı. Bir dahaki sefere videoyu koyacağım, böylece ilerlemeyi göreceksiniz 8-)


2
Şey, bir tür spline. Muhtemelen Bézier Eğrisi . Bu sorunun orijinal geliştiricilerden başka biri tarafından cevaplanıp yanıtlanmadığından emin değilim. Bu efekti yeniden yaratmaya çalışıyorsanız, neye sahip olduğunuzu bize göstermeli ve bize bunun ne işe yaramadığını söylemelisiniz.
MichaelHouse

2
Hiçbir fikrim yok, ama bir miktar radikal var.
Hackworth

1
Sağlıksız miktarda Raiden oynadıktan sonra, diş macununun herhangi bir tür kapalı form eğrisi olduğuna dair şüphelerim var. Her zaman adil bir hafıza tutar gibi görünüyordu. Zorunlu dönüş yarıçapı ile bir çeşit yol yaptığını sanıyorum.

@ Byte56: Shmup geliştiricileri / hayranları adanmış, eğer şimdiye kadar bir yerde belgelenmemiş / tersine mühendislik yapılmamışsa şaşırırdım.

3
Görünüşe göre segmentleri gemiden çıkarken maksimum viraj ile birer birer yerleştiriyor ve her segment yakındaki veya geminin hareket yönündeki düşmanlara dönüyor.
Kevin Reid

Yanıtlar:


6

Sadece sana yardımcı olabilecek bir şey yarattım. GLBasic forumlarında birisine yardım etmek için cevaptı.

İşte benim önerim ile forum bağlantısı: Random Textured Rolling Hills

Bu GLBasic dilinde yazılmış, ancak okumayı kolay tutmaya çalıştım, bu yüzden herhangi bir dile kolayca dönüştürülmelidir.

İhtiyaçlarınız için kullanmak için spline verilerinizi / puanlarınızı oluşturmanız gerekir. Örneğimdeki 'tepe' noktalarını spline noktalarınızla değiştirin. Sadece bir şekilde bir animasyon / titreme efekti eklemeniz gerekir. Belki rastgele bir doku değişimi.

Gerçek 'sihir' benim 'AddPoint' fonksiyonumda gerçekleşir:

FUNCTION AddPoint: h AS THillPoint
    DIMPUSH self.points[], h

    // Is this the very first data point?
    IF LEN(self.points[]) = 1
        self.points[0].pu.Set(0, self.points[0].pm.y - self.texture_ht_up)
        self.points[0].pd.Set(0, self.points[0].pm.y + self.texture_ht_dn)
        RETURN
    ENDIF

    ALIAS h0 AS self.points[-2]  // Reference to the 2nd last point
    ALIAS h1 AS self.points[-1]  // Reference to the last point
    LOCAL angle#
    LOCAL v1 AS TVector
    LOCAL v0 AS TVector

    // Calculate 'p2' of HillPoint - form rectangle with previous point
    angle = ATAN(h1.pm.y - h0.pm.y, h1.pm.x - h0.pm.x)  -90// Angle of the two points

    v1.x = COS(angle) * self.texture_ht_up + h1.pm.x
    v1.y = SIN(angle) * self.texture_ht_up + h1.pm.y
    v0.x = COS(angle) * self.texture_ht_up + h0.pm.x
    v0.y = SIN(angle) * self.texture_ht_up + h0.pm.y
    h0.pu = h0.pu.AverageWith(v0)
    h1.pu.Copy(v1)

    v1.x = COS(angle) * -self.texture_ht_dn + h1.pm.x
    v1.y = SIN(angle) * -self.texture_ht_dn + h1.pm.y
    v0.x = COS(angle) * -self.texture_ht_dn + h0.pm.x
    v0.y = SIN(angle) * -self.texture_ht_dn + h0.pm.y
    h0.pd = h0.pd.AverageWith(v0)
    h1.pd.Copy(v1)
ENDFUNCTION

Sprite'ı çizgi boyunca çizen son dörtlü / çokgenleri burada hesaplıyorum.

İşte nihai sonuçlar: resim açıklamasını buraya girin

Ve çokgenlerin tel çerçevesi açıkken: resim açıklamasını buraya girin


1
Harika bakacağım. BTW, verdiğiniz bağlantı koptu.
Aybe

3
Bağlantı benim için kopmuş gibi görünmüyor ...
doppelgreener

Rastgele Dokulu Rolling Hills bağlantısını şimdi kontrol ettim, bana bir 404 hatası getiriyor.
Aybe

1
Tuhaf. Hala benim için çalışıyor. Ancak temel link şudur
Doug.McFarlane

Benim için kırılmış, ana sayfayı denedim, 'Çalışıyor!' ve bu kadar ... garip.
Aybe
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.