หน่วยที่ 8 : สุ่ม object (position)

หน่วยที่ 8 : สุ่ม object (position)

เพื่อจะได้หาตำแหน่งสุ่ม object ออกมาได้ค่ะ หรือหาทิศทางที่จะให้ bullet วิ่งไป โดยจะมีแกน X และแกน Y

ตัวอย่างเกมที่สุ่มให้ object ออกมาตาม position ต่างๆ

เนื้อหา

      • จุด X=0,Y=0 จะเริ่มที่มุมบนซ้ายของ layout

      • ทิศทางของ object

          • เลยจากจุด 0,0 ขึ้นไป ทิศทางเป็น 90

          • เลยจากจุด 0,0 ลงมา ทิศทางเป็น -90

          • เลยจากจุด 0,0 ไปขวา ทิศทางเป็น 0

          • เลยจากจุด 0,0 ไปซ้าย ทิศทางเป็น -180

          • เช่น เอาไว้กำหนดทิศทางของ bullet (Set angle of motion)

  • การสุ่ม object ให้ปรากฏในพื้นที่ๆ ต้องการ

    • เช่น ภายในกรอบสีเขียว (ดังภาพ)

      • แกน X ระหว่าง 100-780

      • แกน Y ระหว่าง 100-350 เป็นต้น

      • ดูกากบาทสีแดง

      • ถ้าเลยแกน Y ขึ้นไปข้างบน จะเป็นค่าลบ เช่น -20,-50 เป็นต้น

สุ่ม object แบบที่ 1

การสุ่ม (random) monster แบบที่ 1 เป็นการสุ่มแบบเส้นตรง เคลื่อนที่จาก ขวา-->ซ้าย สุ่มให้ปรากฏออกมาในความเร็วต่างๆ กัน

จัดการ Layout

  • กำหนด Behaviors ของ Monster

    • เลือกแบบ Bullet

    • Set angle --> No

จัดการ Event sheet

  • Add group --> ตั้งชื่อ Random-1

    • การสร้าง group เพื่อทำให้เราเก็บงานเป็นระเบียบ กลับมาแก้ไขได้ง่าย

Add Event

      • System --> Every X seconds --> ใส่ตัวเลข (ทุกๆ กี่วินาที)

      • ในตัวอย่างใส่เลข 4 เพราะจะให้ปรากฏทุกๆ 4 วินาที

* อย่าใส่ค่าตามตัวอย่าง..ควรทดลองเองแล้วเลือกค่าที่เหมาะสมกับเกมของเรา *

Add action

    • System --> Create object (ให้ระบบสร้าง object)

      • เลือก monster (ให้สร้าง object ชื่อ monster)

      • Layer 1 (สร้างที่เลเยอร์ 1)

      • ใส่ตำแหน่งแกน X และ Y ตามที่ผู้ออกแบบวาง monster ไว้

  • ควรวางไว้นอกจอ ขวามือ monster จะวิ่งจาก ขวา--> ซ้าย

Add action

      • monster --> Set bullet speed (ความเร็ว)

        • choose(10,30,60) คือ ให้สุ่มเลือกความเร็วของ monster เป็น 10 หรือ 30 หรือ 60


      • monster --> Set angle of motion (องศาของ monster)

        • 180 degree

Event sheet

สุ่ม object แบบที่ 2

การสุ่ม object แบบที่ 2 หล่นลงมาจากฟ้า

Concept

  • item / bonus / monster หล่นลงมาจากฟ้า

  • สุ่มตำแหน่ง และความเร็วในการหล่น

  • monster สุ่มรูปแบบการแสดง คือ ในตัว monster มีหลายเฟรมนั่นเอง

จัดการ Layout


  • จัดเรียง layout ใหม่

  • เปลี่ยน background ใหม่

  • เลื่อน item / bonus / monster ขึ้นอยู่ด้านบน

  • solid ให้ลดค่า opacity ลงมาเหลือ 0

  • เพิ่ม Frame ให้ monster เวลาหล่นลงมาจะได้เปลี่ยนรูปแบบเป็นหลายๆ แบบ

  • ดับเบิ้ลคลิกที่ monster

  • ที่หน้าต่าง Animation frames คลิกขวา เลือก Add frame

  • เรียกภาพต่างๆ เข้ามาตามจำนวนภาพที่ต้องการให้ปรากฏ ในที่นี้ใช้ 5 เฟรม (5 ภาพ)

  • ปิดหน้าต่าง monster


* ให้ลบ behaviors ชื่อ bullet ของ monster ออกด้วย *


จัดการ Event sheet

    • Add action

      • System --> Wiat --> ใส่ 0.5 (รอ 0.5 วินาที)

      • monster --> Set Y

        • พิมพ์ข้อความ monster.Y+3 (Y คือ แนวตั้ง / +3 คือกำหนดความเร็วในการเคลื่อนที่)

      • item--> Set Y

        • พิมพ์ข้อความ item.Y+2 (Y คือ แนวตั้ง / +2 คือกำหนดความเร็วในการเคลื่อนที่)

      • bonus --> Set Y

        • พิมพ์ข้อความ bonus.Y+1 (Y คือ แนวตั้ง / +1 คือกำหนดความเร็วในการเคลื่อนที่)


  • Add Event

      • System --> Every X secounds --> 2 secound

      • Add action

        • System --> Create object --> เลือก

          • monster

          • Layer 1

          • X พิมพ์ random(200,700) หมายถึง สุ่มให้หล่นลงมาระหว่างตำแหน่งที่ 200-700 ในแกน X

          • Y พิมพ์ -40 หมายถึง สุ่มให้หล่นลงตำแหน่งที่ -40 ในแกน Y คือ บนสุด


      • Add action

          • monster --> Set frame --> random(5) (ให้สุ่ม 5 เฟรม เพราะเราแอดภาพ monster ไว้ 5 เฟรม)


  • Add Event

      • System --> Every X secounds --> 0.5 secound

      • Add action

        • System --> Create object --> เลือก

          • item

          • Layer 1

          • X พิมพ์ random(100,760) หมายถึง สุ่มให้หล่นลงมาระหว่างตำแหน่งที่ 100-760 ในแกน X

          • Y พิมพ์ -40 หมายถึง สุ่มให้หล่นลงตำแหน่งที่ -40 ในแกน Y คือ บนสุด


  • Add Event

    • System --> Every X secounds --> 10 secound

      • Add action

        • System --> Create object --> เลือก

          • bonus

          • Layer 1

          • X พิมพ์ random(200,600) หมายถึง สุ่มให้หล่นลงมาระหว่างตำแหน่งที่ 200-600 ในแกน X

          • Y พิมพ์ -40 หมายถึง สุ่มให้หล่นลงตำแหน่งที่ -40 ในแกน Y คือ บนสุด

Event sheet

สุ่ม object แบบที่ 3

สุ่ม object ให้ปรากฏบนพื้น

เกม : เลือกสิ่งที่เป็นประโยชน์ต่อสุขภาพปากและฟัน

เกม : เลือกสิ่งที่เป็นประโยชน์ต่อสุขภาพปากและฟัน

Concept

    • object ถูกสุ่มออกมา 3 แบบ

      • ทุกๆ 1 วินาที สร้าง object ชื่อ item และ item2 ออกมา

        • สุ่มเล่นเฟรมภายใน item และ item2

      • ทุกๆ 3 วินาที สร้าง object ชื่อ bonus ออกมา


    • object ถูกสุ่มออกมาในเวลาต่างกัน ตำแหน่งต่างกัน

      • คลิกเลือก ผลไม้ (สิ่งที่เป็นประโยชน์ต่อสุขภาพปากและฟัน) +1 ที่ score ถูก

      • คลิกเลือก กล่องนม (bonus) +5

      • คลิกเลือก ลูกกวาด +1 ที่ score ผิด

    • เวลาหมด (30 วินาที) - game over

Layout

  • item ผลไม้

    • ดับเบิ้ลคลิกที่รูปผลไม้

    • Add frame เพิ่มตามภาพผลไม้ที่ต้องการ

    • Speed = 0

  • item 2 ลูกกวาด

    • ดับเบิ้ลคลิกที่รูปลูกกวาด

    • Add frame เพิ่มตามภาพลูกกวาดที่ต้องการ

    • Speed = 0


  • item (ผลไม้) / item2 (ลูกกวาด) / bonus (กล่องนม) -->

    • Behaviors --> Fade

      • Active at start --> Yes

      • Fade in time --> 0.5

      • Wait time --> 0

      • Fade out time --> 0

      • Destroy --> After fade out

Event sheet

  • System --> Every X secound --> 1 (ทุกๆ 1 วินาที)

    • Add action

    • System --> Create object --> item (ระบบสร้าง object)

        • on layer 1 at ( int(random(50,780)) , int(random(220,780)) ) (บน layer 1 ในตำแหน่งแกน X และ Y)

    • item --> Set frame to --> พิมพ์ choose(0,1,2,3,4,5) (ไอเทม-สุ่มเลือกเฟรมที่ 0-5 รวม 6 เฟรม มาแสดง)

    • item --> Fade: start fade (เฟดออกไป)

    • System --> Create object --> item2 (ระบบสร้าง object)

        • on layer 1 at ( int(random(35,810)) , int(random(220,420)) ) (บน layer 1 ในตำแหน่งแกน X และ Y)

    • item2 --> Set frame to --> พิมพ์ choose(0,1,2,3,4) (ไอเทม-สุ่มเลือกเฟรมที่ 0-4 รวม 5 เฟรม มาแสดง)

    • item2 --> Fade: start fade (เฟดออกไป)


  • System --> Every X secound --> 8 (ทุกๆ 8 วินาที)

    • Add action

    • System --> Create object --> bonus (ระบบสร้าง object)

        • on layer 1 at ( int(random(50,780)) , int(random(220,420)) ) (บน layer 1 ในตำแหน่งแกน X และ Y)

    • bonus --> Set frame to --> 0 (ไอเทม-เลือกเฟรมที่ 0 มาแสดง)

    • bonus --> Fade: start fade (เฟดออกไป)


การหาตำแหน่งแกน X และ Y

  • ลองนำ object วางไว้ในตำแหน่งต่างๆ

  • ดูค่าแกน X และ Y ที่ position (ในวงกลม)

  • ใส่เลขจำนวนเต็มก็พอ ทศนิยมไม่ต้องใส่ค่ะ