งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Sprite Suphot Sawattiwong 1. Sprite ใน XNA นั้น ใช้ตัวแปร Texture2D ในการเก็บ รูปภาพที่ใช้งานแต่หากศัพท์ที่นิยมใช้กันทั่วไป ในการพัฒนาเกม.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Sprite Suphot Sawattiwong 1. Sprite ใน XNA นั้น ใช้ตัวแปร Texture2D ในการเก็บ รูปภาพที่ใช้งานแต่หากศัพท์ที่นิยมใช้กันทั่วไป ในการพัฒนาเกม."— ใบสำเนางานนำเสนอ:

1 Sprite Suphot Sawattiwong 1

2 Sprite ใน XNA นั้น ใช้ตัวแปร Texture2D ในการเก็บ รูปภาพที่ใช้งานแต่หากศัพท์ที่นิยมใช้กันทั่วไป ในการพัฒนาเกม อาจจะเรียกสิ่งเหล่านี้ว่า “Sprite” โดยปกติที่ผ่านมาได้มีการโหลดรูปเพื่อใช้ใน เกมโดย 1 ภาพ เป็นภาพที่พร้อมใช้งาน แต่หาก เกมมีเป็น 100 ภาพ มันก็เสียเวลาที่โหลด content นานเกินไป ดังนั้นเราจึงมีวิธีการจัดภาพที่มีลักษณะการใช้ งานเข้าด้วยกันมาอยู่ในภาพเดียวกัน และเลือก ที่จัดการโดยการ Clip 2

3 การ Clip ของ Sprite การ Clip เป็นการตัดภาพออกมาเป็นส่วนเพื่อที่ใช้งาน เฉพาะส่วนนั้นๆได้ Rectangle(localX,localY, ความกว้างที่ต้องการ, ความยาวที่ ต้องการ ) แล้วนำไปใส่ใน Draw 3

4 ตัวอย่างการ Clip ตัวอย่างจากภาพก่อนหน้าหาก clip ที่กรอบสี แดงของภาพต้องใช้คำสั่งดังนี้ spriteBatch.Draw(t2dSprite, new Vector(10, 20), new Rectangle(0, 0, 64, 64), Color.White); 4

5 ตัวอย่างการ Clip หากต้องการ Clip ดังภาพต้องเขียน code ดังต่อไปนี้ spriteBatch.Draw(t2dSprite, new Vector(10, 20), new Rectangle(10, 64, 64, 64), Color.White); ให้ดู Project ที่ชื่อว่า SpriteClip แล้วลองรันดู 5

6 Cel Animation หรือ Sprite Animation จากที่รู้จักการใช้ Clip แล้ว ต่อมาเป็นการเพิ่มขีด ความสามารถของ Clip ให้สูงขึ้น โดยการ นอกจากทำการ Clip เป็นชิ้นงานแล้ว นำมาทำ การต่อเนื่องเป็น Animation กัน ซึ่งสิ่งเหล่านี้ เรียกว่า “Cel Animation” 6

7 ชุดคำสั่งในการใช้งาน SpriteAnimationManager การประกาศ Instance ทำได้โดยมี parameter ดังนี้ ตัวแปร = new SpriteAnimationManager(Game game, string contentPath); โดยมี game เป็นตัวที่เรียก Class game ที่เป็นตัว เรียกใช้ sam contentPath เป็นที่อยู่ของที่เก็บภาพใน Folder Content อีกที 7

8 ชุดคำสั่งในการใช้งาน SpriteAnimationManager การประกาศ Instance ทำได้โดยมี parameter ดังนี้ ตัวแปร = new SpriteAnimationManager(Game game, string contentPath); โดยมี game เป็นตัวที่เรียก Class game ที่เป็นตัว เรียกใช้ sam contentPath เป็นที่อยู่ของที่เก็บภาพใน Folder Content อีกที 8

9 การ AddAnimation ใน SpriteAnimationManager ได้มีการ AddAnimation อยู่ 2 แบบด้วยกันคือ แบบที่ 1 animationKey เป็นชื่อ Animation ที่ต้องการใช้ textureName เป็นชื่อไฟล์ Texture SpriteCount เป็น Struct ที่สามารถเรียกใช้โดยใส่ จำนวน frame ต่อแถว และใส่จำนวนแถว เช่น new SpriteCount(6, 3) framesPerSecond เป็น ความเร็วในการเคลื่อนที่ ของ Sprite หน่วยเป็น fps AddAnimation(string animationKey, string textureName, SpriteCount spriteCount, int framesPerSecond) 9

10 การ AddAnimation แบบที่ 2 animationKey เป็นชื่อ Animation ที่ต้องการใช้ textureName เป็นชื่อไฟล์ Texture SpriteRange เป็น Struct ที่สามารถเรียกใช้ได้โดยการใส่ จุดเริ่มต้นทั้ง x,y หากจุดเริ่มต้นเป็น 1,1 และตามด้วยตำแหน่ง ท้ายสุดของช่วงเช่น 6,1 เช่น new SpriteRange(1, 1, 6,1) spriteWidth คือความกว้างของ sprite spriteHeight คือความยาวของ sprite numberOfSprites คือจำนวน sprite ในช่วง framesPerSecond เป็น ความเร็วในการเคลื่อนที่ของ Sprite หน่วยเป็น fps AddAnimation(string animationKey, string textureName, SpriteRange spriteRange, int spriteWidth, int spriteHeight,int numberOfSprites, int framesPerSecond) 10

11 การวาด Sprite Animation มีด้วยกัน 2 แบบ แบบที่ 1 gameTime เป็นตัวแปรของเวลาในเกม animationKey ชื่อ Action ของ Sprite spriteBatch นำ spriteBatch จาก Class game เข้ามา ใช้งาน position เป็นตำแหน่งของภาพที่ต้องการให้ draw Draw(GameTime gameTime, string animationKey, SpriteBatch batch, Vector2 position) 11

12 การวาด Sprite Animation แบบที่ 2 gameTime เป็นตัวแปรของเวลาในเกม animationKey ชื่อ Action ของ Sprite spriteBatch นำ spriteBatch จาก Class game เข้ามาใช้งาน position เป็นตำแหน่งของภาพที่ต้องการให้ draw Color เป็นสีที่ใช้ในการแสดง Draw(GameTime gameTime, string animationKey, SpriteBatch batch, Vector2 position, Color color) 12

13 การใช้งาน SpriteAnimationManager ดูใน Project Ex15_SpriteAnimate ให้ add PhotXNALibrary จากนั้น ให้ประกาศตัวแปร ใน Class Game1 SpriteAnimationManager sam; จากนั้นใน Method LoadContent sam = new // new instance โดยให้ใส่ instance game และ folder ที่ เก็บภาพ Components.Add(sam); // ทำการ Add sam เข้าไปใน เกม 13

14 การใช้งาน SpriteAnimationManager sam.AddAnimation("Bee_All", "Monster_Set_01", new SpriteCount(6, 3),8); // ทำการ Add Animation เป็นการ Play Animation ทั้งหมดใน Texture โดยบอก column และ row รวมถึง จำนวน FramesPerSecond sam.AddAnimation("Bee_Fly", "Monster_Set_01", new SpriteRange(1, 1, 6, 1), 76, 66, 6, 8); // ทำการ Add Animation เป็นการ Play Animation ตั้งแต่ 1,1 ถึง 6,1 ความกว้างยาวของ sprite จำนวน frames ใน Action 6 frames และ มี ความเร็ว 8 fps 14

15 การใช้งาน SpriteAnimationManager spriteBatch.Begin(); sam.Draw(gameTime, "Bee_All", spriteBatch, new Vector2(30,300)); // ทำการวาด Action Bee_All sam.Draw(gameTime, "Bee_Fly", spriteBatch, new Vector2(300, 300)); spriteBatch.End(); // ทำการวาด Action Bee_Fly ใน Method Draw ให้เพิ่มดังต่อไปนี้ 15

16 Lab8: เกมหยิบของ เกมนี้จะแบ่งของเป็น 2 ชนิด ลงในพื้นที่กำหนด หากวางผิดที่ก็จะตาย หากวางถูกที่ก็จะได้ คะแนน โดยตัวละครต้องเดินไปเดินมาในฉาก ได้ จากภาพ ตัว ละคร จะมีแกะ กับ หมู เดินไปเดินมาใน ฉาก เราต้องเอาแกะ ไปไว้ ในรั้วของแกะ และหมู เอาไว้ในรั้วของ หมู 16

17 เงื่อนไขเกมหยิบของ การคิดคะแนนนั้น หากวางให้ถูกที่ ให้ได้ +200 และหากตัวละครตาย ในกรณีวางผิดที่ ให้ -100 ให้เลือกตัวละครที่มี Animation อะไรก็ได้มา 2 ตัว ( ทำขึ้นมาเองก็ได้ ) ซึ่งต้อง มีภาพ Animation การเดิน และ ภาพ Animation ตอน ตาย ในระหว่างการลากตัวละคร ควรให้ตัวละครเด่น ขึ้นมา ไม่ว่าจะใช้การ Scale ขึ้นมา หรือ อื่น แล้วแต่ตามชอบใจ ต้องมี Mouse Pointer 17


ดาวน์โหลด ppt Sprite Suphot Sawattiwong 1. Sprite ใน XNA นั้น ใช้ตัวแปร Texture2D ในการเก็บ รูปภาพที่ใช้งานแต่หากศัพท์ที่นิยมใช้กันทั่วไป ในการพัฒนาเกม.

งานนำเสนอที่คล้ายกัน


Ads by Google