1 / 112

การสร้างเกมแนว Shooting

การสร้างเกมแนว Shooting. การสร้างเกมแนว Shooting. เกมแนว Shooting เกิดขึ้นมานานแล้วก่อนเกม Pong เสียอีก ซึ่งได้มีการพัฒนาวีการเล่นเรื่อยมาจนมาถึงปัจจุบัน เกมแนวนี้ยังคงได้รับความนิยมอยู่เนื่องจากสามารถเล่นได้เรื่อยๆ และท้าทายความสามารถซึ่งต้องอาศัยทักษะการบังคับหลบหลีกเป็นหลัก.

elani
Download Presentation

การสร้างเกมแนว Shooting

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. การสร้างเกมแนว Shooting

  2. การสร้างเกมแนว Shooting • เกมแนว Shooting เกิดขึ้นมานานแล้วก่อนเกม Pong เสียอีก ซึ่งได้มีการพัฒนาวีการเล่นเรื่อยมาจนมาถึงปัจจุบัน เกมแนวนี้ยังคงได้รับความนิยมอยู่เนื่องจากสามารถเล่นได้เรื่อยๆ และท้าทายความสามารถซึ่งต้องอาศัยทักษะการบังคับหลบหลีกเป็นหลัก

  3. การสร้างเกมแนว Shooting • ในปี1943 ขณะที่เครื่องเล่น Famicom โด่งดังสุดขีด บริษัท Capcom จึงได้สร้างเกมชื่อ 1943 ขึ้นมา ซึ่งพัฒนามาจากภาคก่อนๆ โดยเป็นเกมที่จำลองเหตุการณ์สงครามโลก ผู้เล่นจะต้องบังคับเครื่องบินเพื่อทำลายศัตรูให้หมด นับว่าเป็นเกมที่ได้รับความนิยมมากอีกเกมหนึ่ง

  4. สร้าง Room • เริ่มจากการสร้าง room โดยตั้งค่าต่อไปนี้

  5. โหลดภาพ Sprite • นำภาพ sprite เข้ามาเก็บไว้พร้อมทั้ง • ภาพพื้นหลังด้วยสังเกตชื่อไฟล์จะตรงกับ • ชื่อ sprite หลังจาก “sp_”

  6. การทำให้พื้นหลังเคลื่อนที่การทำให้พื้นหลังเคลื่อนที่ • การตั้งค่าพื้นหลังที่ Room Properties • ให้ความเร็วแนวตั้งของพื้นหลังเป็น 1 • เพื่อให้ดูเหมือนเครื่องบินกำลังบินขึ้นเรื่อยๆ ดังต่อไปนี้

  7. การทำให้เครื่องบินดันจอไปทางซ้ายและขวาการทำให้เครื่องบินดันจอไปทางซ้ายและขวา • สำหรับมุมมองนั้นถ้าสังเกตในเกมจะเห็นว่า • เมื่อเครื่องบินของผู้เล่นบินไปสุดจอด้านขวาและซ้าย • มุมมองจะเลื่อนตามผู้เล่นไป สามารถตั้งค่าได้ต่อไปนี้ • สังเกตที่ช่อง Object following • ซึ่งขณะนี้เรายังได้สร้างวัตถุแทนตัวผู้เล่นซึ่งจะปรากฏใ • นขั้นตอนต่อไป

  8. สร้างออบเจกต์ • ลำดับต่อไปให้สร้างออบเจกต์ในเกมซึ่งจะมีค่อนข้างมาก สามารถแบ่งออกเป็นหมวดหมู่ได้ดังนี้

  9. กลุ่ม Player • ออบเจกต์ภายในกลุ่มนี้จะเกี่ยวกับตัวที่ผู้เล่นต้องควบคุมอาวุธของผู้เล่น รวมถึงการแสดงสถานะของผู้เล่นด้วย

  10. กลุ่ม Enemy • ออบเจกต์ภายในกลุ่มนี้จะเกี่ยวข้องกับศัตรู อาวุธศัตรูและการควบคุมสร้างศัตรู

  11. กลุ่ม Island • ออบเจกต์ภายในกลุ่มนี้จะไม่เกี่ยวข้องกับการเล่นเกมแต่จะสร้างขึ้นมาประกอบฉากเพื่อความสวยงาม

  12. รายละเอียดของออบเจกต์ในแต่ละกลุ่มมีดังต่อไปนี้ กลุ่ม Player • Information about object: player • เป็น parent ของเครื่องบินทุกลำ • Sprite: <no sprite> • Solid: false • Visible: true • Depth: -10 • Persistent: false • Parent: <no parent> • Mask: <same as sprite>

  13. กลุ่ม Player • Create Event: • COMMENT: ตั้งตัวแปรเพื่อถ่วงเวลาการยิง ถ้าค่าเป็น 0 คือยิงได้ ถ้าค่าเป็น 1 คือนยิงไม่ได้ • Set variable shot to 0

  14. กลุ่ม Player • Alarm Event for alarm 0: • COMMENT: คืนค่า 0 ทำให้ยิงได้อีกครั้ง • Set variable shot to 0

  15. Player • Step Event: • COMMENT: ทำให้เครื่องบินไม่ออกนอกจอ • If bbox_right is lager than room_width • Set variable x to room_width- (sprite_width/2) • If bbox_left is smaller than 0 • Set variable x to sprite_width/2 • If bbox_bottom is larger than room_height • Set variable y to room_height-(sprite_height/2) • If bbox_top is smaller than 0 • Set variable y to sprite_height/2

  16. Player • End Step Event: • COMMENT: เมื่อพลังหมด • If health is smaller than 1 • Create a medium effect of type ring relative at • (0,0) of color 4227327 above objects • COMMENT: เมื่อตายจะหน่วงเวลารอกล่องข้อความขึ้น • For all show_status: set Alarm 0 to 120 destroy the instance

  17. Player • Collision Event with object enemy: • COMMENT: ถ้าชนกับเครื่องบินศัตรูเราจะเสียพลังเท่ากับตัวแปร power ของศัตรู และให้ศัตรูระเบิด • Set the health relative to -other.power • for other object: destroy the instance

  18. Player • Collision Event with object bullet_enemy: • COMMENT: ถ้าโดนกระสุนศัตรูพลังจะลดเท่ากับ power ของกระสุนศัตรู และทำลายกระสุนศัตรูด้วย • Set the health relative to-other.power • for other object: destroy the instance

  19. Player • Mouse Event for Glob Right Pressed: • if global.bomb is larger than 0 • for all enemy: destroy the instance • for all bullet_enemy: destroy the instance • set variable global.bomb relative to -1

  20. Player • Key Press Event for 1-key Key: • COMMENT: เปลี่ยนเครื่องบิน • Change the instance into object player 1, yes • Performing events • Key Press Event for 2-key Key: • COMMENT: เปลี่ยนเครื่องบิน • Change the instance into object player 2, yes • Performing events

  21. Player • Key Press Event for 3-key Key: • COMMENT: เปลี่ยนเครื่องบิน • Change the instance into object player 3, yes • Performing events • Key Press Event for 4-key Key: • COMMENT: เปลี่ยนเครื่องบิน • Change the instance into object player 4, yes • Performing events

  22. Player • Key Press Event for 5-key Key: • COMMENT: เปลี่ยนเครื่องบิน • Change the instance into object player 5, yes • Performing events

  23. object: bullet_player • Information about object: bullet_player • กระสุนทั่วไปของเครื่องบินผู้เล่น • Sprite: sp_bullet_player • Solid: false • Visible: true • Depth: 0 • Persistent: false • Parent: <no parent> • Mask: <same as sprite>

  24. Create Event: • COMMENT: พลังกระสุนที่จะไปลด hp ศัตรู • Set variable power to 1

  25. Step Event: • COMMENT: ทำให้ทิศทางของกระสุนถูกต้องและเมื่อกระสุนออกนอกจอให้ทำลายทิ้ง • Scale the sprite with 1 in the xdir, 1 in the ydir, • Rotate over direction-90, and no mirroring • If expression y > room_heigth + 100 || y <-100 || x<-100 • || x>room_width + 100 is true • Destroy the distance

  26. Information about object: player1 • เครื่องบินแบบที่หนึ่งของผู้เล่นสามารถยิงกระสุนได้ทีละ 2 นัด และเคลื่อนที่ได้เร็ว • Sprite: sp_ player1 • Solid: false • Visible: true • Depth: -10 • Persistent: false • Parent: player • Mask: <same as sprite>

  27. player1 • Step Event: • COMMENT: วิ่งตามเมาส์และเรียกเหตุการณ์เหมือนกับ parent • Perform a step towards position (mouse_x, mouse_y) • With speed 3 stop at solid only • Call the inherited event of the parent object

  28. player1 • Mouse Event for Glob Left Button: • COMMENT: ยิงกระสุนค่า shot ต้องเป็น 0 เท่านั้น • if shot is equal to 0 • create instance of object bullet_player at relative position (-5,0) with speed 10 in direction 90 • create instance of object bullet_player at relative position (5,0) with speed 10 in direction 90 • set variable shot to 1 • set Alarm 0 to 20

  29. Information about object: player2 • เครื่องบินแบบที่สองของผู้เล่นสามารถยิงกระสุนได้เร็วติดต่อกันแต่เคลื่อนที่ช้า • Sprite: sp_player2 • Solid: false • Visible: true • Depth: -10 • Persistent: false • Parent: player • Mask: <same as sprite>

  30. player2 • Step Event: • COMMENT: วิ่งตามเมาส์และเรียกเหตุการณ์เหมือนกับ parent • perform a step towards position (mouse_x,mouse_y) with speed 3 stop at solid only • call the inherited event of the parent object

  31. player2 • Mouse Event for Glob Left Button: • COMMENT: ยิงกระสุน ค่า shot ต้องเป็น 0 เท่านั้น • if shot is equal to 0 • create instance of object bullet_player at relative position (0,0) with speed 10 in direction 90 • set variable shot to 1 • set Alarm 0 to 5

  32. Information about object: player3 • เครื่องบินแบบที่สามของผู้เล่นสามารถยิงกระสุนกระจาย 3 ทิศทางแต่เคลื่อนที่ปานกลาง • Sprite: sp_ player3 • Solid: false • Visible: true • Depth: -10 • Persistent: false • Parent: player • Mask: <same as sprite>

  33. player3 • Step Event: • COMMENT: วิ่งตามเมาส์และเรียกเหตุการณ์เหมือนกับ parent • Perform a step towards position (mouse_x, mouse_y) • With speed 2 stop at solid only • Call the inherited event of the parent object

  34. player3 • Mouse Event for Glob Left Button: • COMMENT: ยิงกระสุนค่า shot ต้องเป็น 0 เท่านั้น • If shot is equal to 0 • Create instance of object bullet_player • At relative position (0,0) with speed 10 • In direction 115 • Create instance of object bullet_player • At relative position (0,0) with speed 10 • In direction 90 • Create instance of object bullet_player • At relative position (0,0) with speed 10 • In direction 65 • Set variable shot to 1 • Set alarm 0 to 10

  35. Information about object: bullet_player4 • กระสุนของเครื่องบินแบบที่สี่จะแตกต่างจากกระสุนทั่วไป • ตรงที่เมื่อสร้างขึ้นมาแล้วจะต้องเซต path • ตามที่กำหนดไว้ โดยให้ Add path ดังนี้

  36. bullet_player4 • Create Event: • Call the inherited event of the parent object • COMMENT: เซ็ตกระสุนเข้า path • Set the relative path to path_bullet_palyer4 with • Speed 10 and at the end relative

  37. Information about object: player4 • เครื่องบินแบบที่สี่ของผู้เล่นสามารถยิงกระสุนโค้งในแนวกว้างไปด้านหน้า • Sprite: sp_ player 4 • Solid: false • Visible: true • Depth: -10 • Persistent: false • Parent: player • Mask: <same as sprite>

More Related