irpg Community

Full Version: ขอสอบถามเรื่องการทำเข็มนาฬิกาหน่อยครับ
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
ตอนนี้ผมทำเกมอันนึงอยู่ที่มระบบเวลาจำลอง
คือเวลาจะไม่ใช่เวลาจริงแต่เป็นค่า 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 มันไม่มีให้เลือกแฮะ มีแต่คำหนดความเร็วการหมุน
ตอบเฉพาะการใส่ตัวแปรก่อน
ถ้าจะกำหนดตัวแปรให้เป็นรูปแบบสมการ ตรงแถบ Operand ให้เลือกเป็น script แล้วอาศัย $game_variables[หมายเลขตัวแปร] เอา เช่น ให้ตัวแปรที่ต้องการใช้เป็นตัวแปรหมายเลข 0111 ก็ใส่ใน script เป็น $game_variables[111] / 6 เป็นต้น (ตรง 111 นี้ไม่แน่ใจว่าใน VX Ace ต้องใส่เป็น 0111 หรือเปล่า ลองดู)
(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]
ต้องใส่เป็น $gameVariables.value(110) ครับ ถ้าเป็น Javascript
เสริมความหมายความของ 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 นาฬิกา
(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 นาฬิกา


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