วันพุธที่ 4 พฤษภาคม พ.ศ. 2554

XNA 4.0 Tutorial Chapter 2 "Move Sprite"








จาก chapter ที่ 1 นะครับ เราจะมาทำให้ภาพขยับได้กันนน *0*

หลักการคือ เมื่อเรากดปุ่มซ้ายขวาขึุ้นลง จะทำให้ภาพขยับตาม นั่นเองงง วู้วๆๆๆ
แล้ววิธีการนั้น คือ จากบทความที่แล้ว ภาพจะอยู่ที่ ตำแหน่ง 100,50 ตลอดเวลา ทำให้เราไม่สามารถแก้ให้มันขยับไปตำแหน่งอื่นได้ วิธีการที่จะทำให้มันขยับได้คือเราต้องทำให้มันเป็นตัวแปรนั่นเองง

เริ่มกันเลยดีกว่าา
เราต้องไปประกาศตัวแปร ที่เป็นชนิด Vector2 เพื่อที่จะแทนที่ new Vector2(100,50) อันเก่า ครับ
ในที่นี่ผมใช้ชื่อว่า position ให้เป็นตำแหน่ง 0,0 ในตอนเริ่มต้น (ซ้ายบนสุด) ตามนี้ครับ



นี่ครับ เสร็จแล้วเราก็ต้องมาเปลี่ยนตรง method Draw อันเดิมครับ เปลี่ยนจาก new Vector (100,50) เป็น position แืทนครับผม -0- ทีนี้ถ้าเราลองกด F5 ดูปุ้บบบ !! มันก็จะไปอยู่ที่ตำแหน่ง 0,0 ตามที่เราประกาศครับ -0-


ต่อไปก็ต้องเขียนให้เมื่อเรากดปุ่มแล้วสามารถทำให้ sprites เคลื่อนที่ได้กันนน -0-
เราก็ต้องไปประกาศตัวแปรกันต่อ ตัวแปรนี้ต้องเป็นชนิด KeyboardState ครับ คือเป็นสถานะ ของ keyboard ที่กดนั่นเอง ผมใช้ชื่อว่า keynow ละกันครับ ประกาศตามรูปเลย -0-



เสร็จแล้วมาตรง method update แล้วเพิ่มตามนี้เลยครับ =0=



อธิบายก็คือ เรากำหนดว่า keynow = keyboard.GetState();
เป็นการบอกว่า ตัวแปร keynow เท่ากับ keyboard ที่เรากำลังกดอยู่นั่นเอง

แล้ว if ก็คือ if(keynow.IsKeyDown(Key.Up))position.Y -=1;
หมายถึง ถ้าตัวแปร keynow เป็นการกดลง ของ ปุ่ม up หรือ ปุ่มลูกศรขึ้น ให้ตัวแปร position ตำแหน่ง y ลดลง 1
กล่าวคือ จากที่เราประกาศตัวแปร position = new Vector2 (0,0) แล้ว เมื่อเรากดปุ่มลูกศรขึ้น 1 ที ก็จะเป็น
position = Vector(0,-1 ) นั่นเอง
หมายเหตุ. position.Y -= 1 เขียนได้อีกรูปคือ position.Y = position.Y - 1; นั่นเอง
แล้วอีก 3 if ที่เหลือก็ความหมายเหมือนกันครับผมม
จากนั้นลอง กด F5 เพื่อรันเกม ดู แล้วกด ปุ่ม ขึ้นลงซ้ายขวา ก็จะขยับภาพได้แล้วครับผม *0*



0 ความคิดเห็น:

แสดงความคิดเห็น