Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Event ขอสอบถามเรื่องการทำเข็มนาฬิกาหน่อยครับ
#1
ตอนนี้ผมทำเกมอันนึงอยู่ที่มระบบเวลาจำลอง
คือเวลาจะไม่ใช่เวลาจริงแต่เป็นค่า Valuable ตัวนึง(เรียกว่า"นาฬิกา")
ตอนที่ผู้เล่นทำกิจกรรมต่างๆในเกม เช่นคุยกับชาวบ้าน สำรวจสิ่งของ พยายามสะเดาะกุญแจ ค่า"นาฬิกาก็จะเพิ่มขึ้น" ทำให้เวลาผ่านไป
(ประมาณพวกเกม Sim Date อ่ะครับ ใครเล่นแต่ RPG ลองนึงถึงระบบเวลาของเกม Person 3-4 ก็ได้)


โดยเวลาในเกม จะจำกัดอยู่ที่ 2-3 ชั่วโมงขึ้นกับระดับความยากของผู้เล่น

โดยผมทำเข็มโดยใช้ภาพ 3 ภาพ
ภาพแรกคือตัวนาฬิกาโล้น
ภาพสองคือตัวเข็มนาที
ภาพสามคือเข็มชั่วโมง

จากนั้นก็หาองศาการหมุนด้วยการคำนวนสมการ
โดยเก็บค่าองศาไว้ใน Variable อีกสองตัว
ซึ่กง็คือ "เข็มนาที" กับ"เข็มชั่วโมง"

ซึ่งปัญหาที่ผมติดอยู่ตอนนี้ก็คือ

1.กรณีของ"เข็มนาที" ผมพอจะถอดสมการแบบง่ายๆ ได้ว่า
"เข็มนาที" = "นาฬิกา"*6
(อ้างอิงจากเข็มนาฬิกา หมุนรอบตัวเองใน 60 นาที มีองศาการหมุน 360 เมื่อทำมาหารออก 60 ก็จะได้1 ต่อ 6)

แต่ทว่า ผมคิดไม่ออกว่าจะควบคุมให้ Variable "เข็มนาที" มีค่าทำกับ "นาฬิกา"คูณกับ 6 ยังไง
เพราะในหน้าจอ Variable Control มันมีให้เลือกแค้ตำแหน่ง"ค่าตัวตั้ง" และ "ค่าตัวแปร" ไม่สามารถกำหนดให้ผลลัพธ์ออกมาเป็นค่าที่ 3 ได้นี่สิ
[Image: SNAG-0106.jpg]

ลองยัดสมการ $gameVariables.value(0110)*6 ลงในช่องสคริปท์ดูก็ไม่ได้ผลแฮะ

2.กรณีของเข็มชั่วโมง จุดนี้ผมตันตั้งแต่เริ่มเลยแฮะ
ยังไงก็คิดไม่ออกว่าว่าจะใช้ัสมการไหนมาคิำนวนองศาเข็มนาฬิกาในแต่ละ 1 ชั่วโมงได้
ใครเก่งคณิตพอจะแนะนำให้ได้บ้างไหมครับ


3.จะกำหนดองศาการหมุนยังไงหว่า ลองกดเข้าไปดูตรง Rotate Picture มันไม่มีให้เลือกแฮะ มีแต่คำหนดความเร็วการหมุน
[-] The following 2 users say Thank You to cdaz for this post:
  • maya, นิราจ
Reply
#2
ตอบเฉพาะการใส่ตัวแปรก่อน
ถ้าจะกำหนดตัวแปรให้เป็นรูปแบบสมการ ตรงแถบ Operand ให้เลือกเป็น script แล้วอาศัย $game_variables[หมายเลขตัวแปร] เอา เช่น ให้ตัวแปรที่ต้องการใช้เป็นตัวแปรหมายเลข 0111 ก็ใส่ใน script เป็น $game_variables[111] / 6 เป็นต้น (ตรง 111 นี้ไม่แน่ใจว่าใน VX Ace ต้องใส่เป็น 0111 หรือเปล่า ลองดู)
Reply
#3
(12-30-2015, 04:23 PM)XthemeCore Wrote: ตอบเฉพาะการใส่ตัวแปรก่อน
ถ้าจะกำหนดตัวแปรให้เป็นรูปแบบสมการ ตรงแถบ Operand ให้เลือกเป็น script แล้วอาศัย $game_variables[หมายเลขตัวแปร] เอา เช่น ให้ตัวแปรที่ต้องการใช้เป็นตัวแปรหมายเลข 0111 ก็ใส่ใน script เป็น $game_variables[111] / 6 เป็นต้น (ตรง 111 นี้ไม่แน่ใจว่าใน VX Ace ต้องใส่เป็น 0111 หรือเปล่า ลองดู)

ผมใช้ MV อ่ะครับ
ลองไปขุดคำสั่งจากสคริปท์ตัวอื่น ดูเหมือนชื่อเรีกยใช้จะเป็นจะเป็น
$gameVariables.value(0110)

และลองใส่ $gameVariables.value(0110) *6 ดูก็ไม่มีอาการ Error แต่เวลาแสดงผลลัพธ์ค่ามันจะออกมาเป็น 0 ตลอดแฮะ
[Image: SNAG-0107.jpg]
Reply
#4
ต้องใส่เป็น $gameVariables.value(110) ครับ ถ้าเป็น Javascript
Reply
#5
เสริมความหมายความของ Operation นิดนึง
ใหัตัวแปรที่คุณ cdaz เลือกเป็น A (สมมตินะ)
ตัวถูกกระทำคือ Operand ความหมายจะเป็นดังนี้
Set คือ A = Operand
Add คือ A = A + Operand
Sub คือ A = A - Operand
Mul คือ A = A * Operand
Div คือ A = A / Operand
Mod คือ A = A ÷ Operand (เป็นการหารที่จะได้ผลลัพธ์เป็นเศษ)

A คือ Variable ที่เลือกนั่นแหละครับในภาพที่คุณ cdaz แสดงด้านบน A คือ 0110 นาฬิกา
Reply
#6
(12-30-2015, 04:41 PM)XthemeCore Wrote: ต้องใส่เป็น $gameVariables.value(110) ครับ ถ้าเป็น Javascript
(12-30-2015, 04:51 PM)XthemeCore Wrote: เสริมความหมายความของ Operation นิดนึง
ใหัตัวแปรที่คุณ cdaz เลือกเป็น A (สมมตินะ)
ตัวถูกกระทำคือ Operand ความหมายจะเป็นดังนี้
Set คือ A = Operand
Add คือ A = A + Operand
Sub คือ A = A - Operand
Mul คือ A = A * Operand
Div คือ A = A / Operand
Mod คือ A = A ÷ Operand (เป็นการหารที่จะได้ผลลัพธ์เป็นเศษ)

A คือ Variable ที่เลือกนั่นแหละครับในภาพที่คุณ cdaz แสดงด้านบน A คือ 0110 นาฬิกา


ได้ละครับ ขอบคุณมาก
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)