irpg Community

Full Version: ปัญหาการสร้างเกมส์ตอบปัญหากับเรื่องเซตสกอร์
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
สวัสดีครับ ผมกลับมาอีกแล้วก็เพราะเกมส์ที่ผมทำอยู่ ซึ่งเป็นเกมส์ตอบปัญหาอาเซียน (ใช้ลงแข่ง)
มีเรื่องหลายเรื่องที่ผมไม่ค่อยเข้าใจสักเท่าไหร่ อยากจะวอนผู้รู้ใครก็ได้สักคนมาตอบแก้ไขปัญหานี้ที

ขออธิบายรูปแบบเกมส์ก่อนน่ะครับ เป็นเกมส์ตอบปัญหาง่ายๆเกี่ยวกับอาเซียนดูคล้ายเกมส์แฟล็ต (ขออภัยที่ไม่มีรูป) โดยมีสี่ตัวเลือก หากเลือกถูกก็ได้หนึ่งคะแนน และจะไปยังข้อต่อไป ซึ่งเราจะสลับถามกันคนล่ะข้อ พอครบสิบข้อใครมีคะแนนสูงสุด จะเป็นผู้ชนะไป อ้อ มีปุ่มให้ข้ามคำถามด้วย แต่เราจะเสียเทิร์นที่ตอบคำถามไป ไปให้อีกฝ่ายตอบแทน
เล่นได้สองคน

1.ผมอยากจะให้มันสุ่มคำถามได้น่ะครับ แต่กลัวมันสุ่มแล้วจะเอาอันเดิมกลับมาด้วยเนี่ยสิ

2.คะแนน ผมอยากให้มันแสดงคะแนนของสองผู้เล่น แล้ววิธีเซตคะแนนทำยังไงบ้าง

3.พอครบสิบข้อ ก็มีการเช็กว่าใครคะแนนเยอะสุดก็เป็นฝ่ายชนะไปน่ะครับ อยากรู้ว่าให้โปรแกรมเช็กคะแนนต้องใช้ตัวไหน

4.สุดท้าย ขอวิธีใช้เครื่องมือในเกมส์เมกเกอร์อย่างละเอียดหน่อยครับ จะได้ประยุกต์ใช้ได้ มีบางอันที่ยังโง่อยู่ใช้ไม่เป็นครับ

ขอขอบคุณล่วงหน้าสำหรับคนที่ตอบคำถามของผมได้น่ะครับ
ขอตอบข้อที่ผมนึกออกก่อนนะครับ
2. สร้างตัวแปร(Set viable)ขึ้นมา2ตัว คือ global.pscore1=0 และ global.pscore2=0 ประกาศค่าที่หน้าไตเติ้ลเกมนะครับ
ใน event : Create
แสดงค่าโดยสร้างออบเจกต์ที่ใช้บอกคะแนน ใส่ใน event : Draw
action : Draw text ว่า "Player1score:"+string(global.pscore1)
และ "Player2score:"+string(global.pscore2)
ส่วนพิกัด XY ของข้อความแล้วแต่คุณกำหนดเลยครับ
ถ้าใครตอบถูกก็ให้ค่าตัวแปรนั้น+1 เช่นผู้เล่นคนแรกตอบถูก ก็ให้ตั้งค่า(Set viable)เป็น global.pscore1 =+1
โดยคลิกตรง Relative เพื่อให้ค่าตัวเลขเพิ่มขึ้นครับ
3. ที่หน้าเช็คคะแนน สร้างออบเจกต์เช็คคะแนน แล้วไปที่ Event : Create action: Test expression
ช่อง expression ให้ใส่ global.pscore1>global.pscore2 ก็ให้ขึ้นข้อความ(หรือรูปภาพอื่นๆ)ว่าผู้เล่นที่1ชนะ
แล้วใส่ action: Test expression อีกอันให้เป็น global.pscore2>global.pscore1 ก็ให้ขึ้นข้อความ
(หรือรูปภาพอื่นๆ)ว่าผู้เล่นที่2ชนะ
4. รายละเอียดมีใน helpครับ แต่ยังไม่มีคนแปลเป็นภาษาไทยสักที
อืม ทำไมผมลองทำแล้วเออร์เรอ ไม่รู้ครับ
มันบอกว่าไม่รู้จัก score1 และ score2

แบบนี้อ่ะครับ

ERROR in
action number 1
of Mouse Event for Left Button
for object ตอบ 1.1:

Error in code at line 1:
global.pscore1 += 1
^
at position 1: Unknown variable pscore1

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

ทำแบบนี้คำถามที่เคยสุ่มออกไปแล้วจะได้ไม่ออกมาอีกในข้อถัดๆมาครับผม
(10-01-2014, 11:48 AM)Nayru Wrote: [ -> ]ข้อ 1. ผมไกด์ให้คร่าวๆว่า ควรจะมี array คอยเก็บค่าครับว่าเคยออกเลขอะไรไปแล้วบ้าง
ถ้าสุ่มแล้วตรงกับเลขใดเลขหนึ่งใน array ก็สุ่มใหม่ ถ้าไม่ตรงกับเลขใดใน array ก็นำคำถามนั้นมาใช้และเพิ่มเลขนั้นไปใน array

ทำแบบนี้คำถามที่เคยสุ่มออกไปแล้วจะได้ไม่ออกมาอีกในข้อถัดๆมาครับผม

เอ๊ะ เกมเมกเกอร์มีใช้อาเรย์ด้วยเหรอครับ แล้วอาเรย์นี้ใช้ยังไงกัน เคยได้ยินมาเท่านั้นเอง
(10-01-2014, 11:23 AM)arkman Wrote: [ -> ]ต้องเอาไปประกาศค่าตัวแปรที่หน้าแรกก่อนครับ มันงงเพราะมันยังไม่รู้จักตัวนี้

ประกาศตัวแปรนี่ใช่ set vari... อะไรนั้นหรือเปล่าครับ ผมก็เชตในออบเจ็คส์แรกไปแล้ว มันก็ยังขึ้นเหมือนเดิม
หรือว่าต้องเอาออบเจ็คส์ไปใส่ในรูมไตเติ้ลด้วย
(10-01-2014, 10:31 PM)shogun Wrote: [ -> ]
(10-01-2014, 11:23 AM)arkman Wrote: [ -> ]ต้องเอาไปประกาศค่าตัวแปรที่หน้าแรกก่อนครับ มันงงเพราะมันยังไม่รู้จักตัวนี้

ประกาศตัวแปรนี่ใช่ set vari... อะไรนั้นหรือเปล่าครับ ผมก็เชตในออบเจ็คส์แรกไปแล้ว มันก็ยังขึ้นเหมือนเดิม
หรือว่าต้องเอาออบเจ็คส์ไปใส่ในรูมไตเติ้ลด้วย

ต้องนำ obj_score ให้แสดงผลในรูมครับโดยใช้คำสั่ง

[Image: newcanvas1.png]

1-ขั้นแรก สร้าง obj_ ขึ้นมา1ตัวเป็นobj เปล่า แล้วตั้งชื่อว่าอะไรก็ได้ แต่อย่าซ้ำกับคำต้องห้าม
2-เลือก Draw event
3-เลือก Draw the value score ตามในรูป
4-เซ็ตค่า ที่ต้องการให้แสดงในส่วนไหนของ จอภาพ เช่น ข้างบน ข้างล่าง ด้านข้าง (เช่น x-200 , y-100 มันก็จะไปแสดงในตำแหน่งที่เราเซ็ตครับ ถ้าไม่่แน่ใจ ลอง ย้ายจุดดูหลายๆทีก็ได้ เอาตำแหน่งที่อยากได้ แต่ถ้า เซ็ตว่า x,y มันจะไปอยู่ที่มุมบนซ้ายสุดของroom นั่นคือจุด 0ม0)

[Image: newcanvas2.png]
5- เอาobjนั้น ไปวางใน room ตามรูป


[Image: newcanvas3.png]
6-เซ็ต ที่ตัว obj ศัตรู เมื่อ ศัตรูตาย ให้ + score โดยใช้ ในส่วนของ event obj_destroy
7-8-9 เซ็ตตามรูป ในรูป ผมใช้ว่า เมื่อศัตรูตาย ศัตรู จะเปลี่ยนตัวเองเป็น obj_die
และจะ+คะแนนให้กับทาง player 100
[Image: newcanvas4.png]
ผลออกมา score จะแสดงผลในตำแหน่งที่เราเซ็ตไว้ อย่างของผมคือ จุดกึ่งกลางของห้อง (ซึ่ง ขนาดของroom ผมเซ็ตไว้ที่ 1280*768 ที่จุดกึ่งกลางคือ 640 แต่ผมเพื่อการเหลือมของตัวเลขไว้ เลยสั่งให้แสดงที่จุด x +600 และ y+30 แทนครับ )

เสร็จทั้งหมดแล้ว ทดลอง Run ดูครับ ลองดูว่า ตำแหน่ง score ที่แสดง ตรงกับที่ต้องการไหม พอศัตรูตายแล้วคะแนน+ให้รึเปล่า

อนึ่ง วิธีที่ผมใช้ มันปนกันมั่วซั่ว ทั้ง drag&drop และ code ไม่แนะนำให้ทำตาม เพราะจะลำบากมากเวลาที่ไปถามคำถามกับคนอื่น เพราะการเอาทั้ง2อย่างมารวมกันมันจะปวดหัวมากๆ ถ้าเราไม่เข้าใจวิธีการทั้ง2อย่าง แนะนำให้หัดจนถนัดวิธีใดวิธีหนึ่งไปเลยจะดีกว่า
มีวิธีไหนที่ทำให้ออบเจ็คส์ที่อยู่อันดับอื่นๆกลายเป็นออบเจ็คส์แรกมีบ้างไหมครับ
ผมลองสร้างออบเจ็คส์เปล่าแล้วทำดูมันไม่ขึ้นคะแนน ลองย้ายขึ้นไปบนสุดแล้วก็ยังไม่ได้ แต่พอลองสร้างอีกเกมส์หนึ่งโดยให้ออบเจ็คส์แรกเป็นออบเจ็คส์เปล่ากำหนดคะแนนดันขึ้นเฉย
ได้แล้วครับ โง่ตั้งนาน โน่ววว

แต่ว่าทำยังไงให้มันแยกออกจากกันล่ะครับ
คะแนน1 กับ คะแนน2 ดันขึ้นพร้อมกันตอนตอบถูก แถมตัวกำหนดค่า set score มันก็ไม่มีกำหนดด้วยว่าจะให้ขึ้นตัวไหน

ปล.ผมใช้วิธี draw score น่ะครับ
Pages: 1 2