ฉันจะสร้างภูมิประเทศแบบนั้นได้จาก Scorched Earth ได้อย่างไร


12

ฉันเป็นนักพัฒนาเว็บและฉันกระตือรือร้นที่จะเริ่มเขียนเกมของตัวเอง

เพื่อความคุ้นเคยฉันได้เลือก JavaScript และcanvasองค์ประกอบสำหรับตอนนี้

ฉันต้องการสร้างภูมิประเทศแบบนั้นใน Scorched Earth

โลกเกรียม

ความพยายามครั้งแรกของฉันทำให้ฉันรู้ว่าฉันไม่สามารถสุ่มyค่าได้ จะต้องมีสติในยอดเขาและราง

ฉันใช้ Googled สักหน่อย แต่ไม่สามารถหาอะไรที่ง่ายพอสำหรับฉันหรือฉันใช้คำหลักผิด

คุณช่วยแสดงให้ฉันดูว่าอัลกอริทึมแบบไหนที่ฉันจะใช้สร้างบางอย่างในตัวอย่างโดยจำไว้ว่าฉันยังใหม่กับการเขียนโปรแกรมเกม (ตั้งแต่สร้าง Breakout ในปี 2003 ด้วย Visual Basic ต่อไป)

คำตอบ:


18

อัลกอริธึมการกระจัดกลางคือสิ่งที่คุณต้องการ

ลิงก์นั้นสามารถสร้างสิ่งนี้:

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

หรือชอบภาพของคุณขึ้นอยู่กับพารามิเตอร์ที่คุณใช้ มี C มาใช้ได้เป็นที่นี่


ขอบคุณสำหรับสิ่งนี้ฉันยังไม่แน่ใจว่าจะใช้งานอย่างไรใน JavaScript แต่หวังว่ามันจะชัดเจนขึ้นสำหรับฉันเมื่อฉันอ่านบทความนั้น
alex

มีแหล่งที่มา C ที่ฉันเพิ่งแก้ไขมันไม่ควรมีปัญหามากเกินไปที่จะใช้ :)
The Communist Duck

@ The Communist Duck ขอบคุณมากฉันเคยขลุกอยู่ที่ซี
alex


@alex คุณควรใช้การเรียกซ้ำในการใช้งานของคุณ ขณะนี้คุณมีเพียงบรรทัดที่มีองค์ประกอบสุ่ม y โดยที่การเปลี่ยนแปลงแบบสุ่มลดลงไปทางขวา
Juha Syrjälä

5

วิธีการเกี่ยวกับการใช้อัลกอริธึมการกระจัดกลางอาจตามด้วยการปรับให้เรียบเล็กน้อยเช่นการกรองผ่านต่ำเพื่อกำจัดแหลมที่แหลมเกินไป วิธีนี้ไม่เหมือนกับใน Scorched Earth แต่ควรให้ผลลัพธ์ที่คล้ายกัน

ฉันเชื่อว่า Scorched Earth จำลองแรงดึงดูดและสิ่งสกปรกที่ตกลงมา ตัวอย่างเช่นคุณไม่สามารถมีเนินเขาสูงชันเกินไปเพราะมิฉะนั้นสิ่งสกปรกจะตกลงมาและสร้างความลาดชันน้อยกว่า


1

มีวิธีการอื่นที่คุณสามารถใช้ได้ คุณสามารถเพิ่มจำนวนคลื่นไซน์ที่สุ่มสร้างขึ้นมารวมกันแล้วปรับขนาดผลลัพธ์ให้พอดีกับหน้าจอของคุณ มันเป็นเรื่องง่ายในทางปฏิบัติและให้ผลลัพธ์ที่ดีแม้ว่าจะนุ่มนวลและอาจประดิษฐ์ได้มากกว่าภาพหน้าจอตัวอย่างของคุณ

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

https://github.com/fmstephe/Tankwars

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