The following warnings occurred:
Warning [2] count(): Parameter must be an array or an object that implements Countable - Line: 871 - File: showthread.php PHP 7.4.28 (Linux)
File Line Function
/showthread.php 871 errorHandler->error



Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[GML] มุมองศาและระยะ จากวัตถุ 2 ตำแหน่ง
#1
[GML] มุมองศาและระยะ จากวัตถุ 2 ตำแหน่ง

บทความนี้จะมาเรียนรู้การหามุมองศาและระยะทาง จากวัตถุที่1 ไปยัง วัตถุที่2
ค่าตัวแปรที่จะต้องมี คือ พิกัดแนวแกน x และ y ของวัตถุทั้ง 2
[Image: large17.png]

เรียนรู้เรื่องสูตร
การหาระยะทาง
[Image: Ch5-1.jpg]
จากสูตรด้านบนเราจะแทนค่าโค้ดใน GM ได้ดังนี้
point_distance(x1, y1, x2, y2)

การหามุมองศา
[Image: sin+cos+tan.bmp]
จากสูตรด้านบนเราจะแทนค่าโค้ดได้
point_direction(x1, y1, x2, y2)

การนำไปใช้งาน
1.รู้ระยะจากวัตถุที่1 ไปยัง วัตถุที่2
การรู้ระยะสามารถนำไปประยุคใช้ได้หลายอย่าง เช่น
-หาระยะจากศตรูถึงตัวผู้กล้า
-หาระยะจากโคมไฟเพื่อให้เกิดแสงเงา
-หาระยะเพื่อให้เกิดเหตุการณ์ที่กำหนด ฯลฯ

2.รู้มุมองศาจากวัตถุที่1 ไปยัง วัตถุที่2
สามารถนำไปประยุคใช้ได้ดังนี้ เช่น
-หาทิศทางจากศัตรูไปยังผู้กล้า
-ทิศทางและขอบเขตการมองของศัตรู
-กำหนดทิศทางเเพื่อกำหนดเหตุการณ์ที่กระทำไว้ ฯลฯ
===============================================

โค้ด
point_distance(x1, y1, x2, y2)
point_direction(x1, y1, x2, y2)

x1 คือ พิกัดแนวแกน x ของวัตถุชิ้นที่ 1
y1 คือ พิกัดแนวแกน y ของวัตถุชิ้นที่ 1
x2 คือ พิกัดแนวแกน x ของวัตถุชิ้นที่ 2
y2 คือ พิกัดแนวแกน y ของวัตถุชิ้นที่ 2

เขียนโค้ดไว้ที่ eventsConfusedtep
Code:
dt = point_distance(x, y, mouse_x, mouse_y)

จากโค้ดตัวอย่าง เราจะได้ค่าระยะทางจากตัววัตถุไปยังเมาส์ โดยให้ไปอยู่ในตัวแปร dt

เขียนโค้ดไว้ที่ eventsConfusedtep
Code:
dc = point_direction(x, y, mouse_x, mouse_y)

จากโค้ดตัวอย่าง เราจะได้ค่ามุมองศาจากตัววัตถุไปยังเมาส์ โดยให้ไปอยู่ในตัวแปร dc

ขอบคุณที่เข้ามาชม สงสัยตรงไหน ถามได้ครับ
[-] The following 4 users say Thank You to gol-a-khung for this post:
  • dreamknight, [IRPG] Kuntana, motley, นิราจ
Reply


Messages In This Thread
[GML] มุมองศาและระยะ จากวัตถุ 2 ตำแหน่ง - by gol-a-khung - 07-24-2014, 02:12 PM

Forum Jump:


Users browsing this thread: 1 Guest(s)