อะไรคือคณิตศาสตร์ที่อยู่เบื้องหลังเลเซอร์สีม่วง 'Raiden 2'


15

เส้นทางของแสงเลเซอร์ได้รับผลกระทบจากอินพุตของผู้ใช้และศัตรูที่ปรากฏบนหน้าจอ นี่คือวิดีโอเวลา 5:00 นาทีเลเซอร์ดังกล่าวจะปรากฏขึ้น: Raiden II (PS) - 1 Loop Clear - Part 2

UPDATE

นี่คือการทดสอบโดยใช้ Inkscape เรืออยู่ที่ด้านล่างศัตรู 4 ตัวแรกถูกกำหนดโดยพลาสมา ดูเหมือนว่าจะมีรูปแบบ ฉันขยับเรือก่อนจากนั้นมือจับจากมันจะทำมุม 45 °จากนั้นในขณะที่พยายามให้พอดีกับเส้นโค้งที่ฉันพบว่ามีรูปแบบของด้ามจับแบบขนานและต่อเนื่องจนกระทั่งฉันไปถึงศัตรูคนสุดท้าย ป้อนคำอธิบายรูปภาพที่นี่

Update, 5/26/2012 : ฉันเริ่มต้นโครงการ XNA โดยใช้ beziers ยังมีงานที่ต้องทำอีกจะอัพเดตคำถามในสัปดาห์หน้า คอยติดตาม !

ป้อนคำอธิบายรูปภาพที่นี่

ปรับปรุง: 5/30/2012 : ดูเหมือนว่าพวกเขากำลังใช้Bézier curves ฉันคิดว่าฉันจะสามารถเลียนแบบ / เลียนแบบพลาสมาของเกรดดังกล่าวได้ มีสองหัวข้อใหม่ที่ฉันค้นพบตั้งแต่ครั้งที่แล้ว: ความยาวส่วนโค้ง , ปรากฏการณ์ของ Runge , หัวข้อแรกควรช่วยให้มีการเคลื่อนไหวเชิงเส้นที่เป็นไปได้เหนือเส้นโค้งเบซิเยร์ที่สองควรช่วยในการปรับจำนวนจุดยอด ครั้งต่อไปฉันจะใส่วิดีโอเพื่อให้คุณเห็นความคืบหน้า 8-)


2
มันเป็นอะไรบางอย่าง อาจจะเป็นเบซิเยร์ Curve ฉันไม่แน่ใจว่าคำถามนี้ตอบได้โดยใครก็ตามที่ไม่ใช่นักพัฒนาดั้งเดิม หากคุณกำลังพยายามสร้างเอฟเฟกต์นี้ใหม่คุณควรแสดงให้เราเห็นว่าคุณมีอะไรและบอกเราว่ามันใช้งานไม่ได้
MichaelHouse

2
ไม่มีความคิด แต่มันมีจำนวนที่ต่างไปจากเดิมอย่างสิ้นเชิง
Hackworth

1
หลังจากที่ได้เล่นกับ Raiden ในปริมาณที่ไม่ดีต่อสุขภาพฉันมีข้อสงสัยว่ายาสีฟันเป็นรูปแบบโค้งแบบปิดใด ๆ ดูเหมือนว่าจะเก็บความทรงจำไว้พอสมควร ฉันสงสัยว่ามันกำลังทำเส้นทางบางอย่างด้วยรัศมีวงเลี้ยวบังคับ

@ Byte56: devm Shmup / แฟน ๆ ทุ่มเทฉันจะแปลกใจถ้านี่ไม่ใช่เอกสาร / วิศวกรรมย้อนกลับที่ใดที่หนึ่งตอนนี้

3
ดูเหมือนว่าจะมีการแบ่งเซกเมนต์ทีละตัวเมื่อออกจากเรือโดยมีการโค้งงอมากที่สุดและแต่ละเซกเมนต์จะหันไปหาศัตรูถ้ามีอยู่ใกล้หรือในทิศทางของการเคลื่อนไหวของเรือ
Kevin Reid

คำตอบ:


6

ฉันเพิ่งสร้างสิ่งที่อาจช่วยคุณได้ เป็นการตอบสนองเพื่อช่วยเหลือใครบางคนในฟอรัม GLBasic

นี่คือลิงค์ของฟอรัมพร้อมด้วยคำแนะนำของฉัน: Random Hills Textures Rolling Hills

สิ่งนี้เขียนใน GLBasic แต่ฉันพยายามทำให้อ่านง่ายดังนั้นควรแปลงเป็นภาษาใด ๆ ได้อย่างง่ายดาย

หากต้องการใช้งานตามความต้องการของคุณคุณจะต้องสร้างข้อมูล / คะแนนอิสระ แทนที่คะแนน 'ฮิลล์' ในตัวอย่างของฉันด้วยคะแนนอิสระของคุณ คุณจะต้องเพิ่มเอนิเมชั่น / เอฟเฟกต์ภาพกะพริบเท่านั้น อาจเป็นการเปลี่ยนพื้นผิวแบบสุ่ม

'วิเศษ' ที่แท้จริงเกิดขึ้นในฟังก์ชั่น 'AddPoint' ของฉัน:

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

นี่คือที่ที่ฉันคำนวณ quads / รูปหลายเหลี่ยมสุดท้ายที่วางแผน sprite ตามเส้น

นี่คือผลลัพธ์สุดท้าย: ป้อนคำอธิบายรูปภาพที่นี่

และด้วยโครงร่างของรูปหลายเหลี่ยมเปิดอยู่: ป้อนคำอธิบายรูปภาพที่นี่


1
ที่ดีฉันจะดูมัน BTW ลิงก์ที่คุณให้เสีย
Aybe

3
ลิงค์ดูเหมือนจะไม่เสียหายสำหรับฉัน ...
doppelgreener

ฉันเพิ่งตรวจสอบลิงค์ Random Textured Rolling Hills ตอนนี้มันทำให้ฉันมีข้อผิดพลาด 404
Aybe

1
แปลก. มันยังใช้งานได้สำหรับฉัน แต่นี่คือลิงค์พื้นฐาน: glbasic.com/forum/index.php?topic=8118
Doug.McFarlane

หักสำหรับฉันฉันลองหน้าแรกมันแสดงว่า 'ใช้งานได้!' และนั่นมัน ... แปลก
Aybe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.