หน่วยที่ 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

  • สร้าง group ชื่อ Random-2
  • Add Event
      • System --> Every tick
    • 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 (ในวงกลม)
  • ใส่เลขจำนวนเต็มก็พอ ทศนิยมไม่ต้องใส่ค่ะ