หลักการทำ Animation แบบง่ายๆ โดย อ. นัฐพงศ์ ส่งเนียม VB.NET_02_graphics_in_vb_net_05_Animation
ภาพเคลื่อนไหวแบบต่างๆ เลื่อน ย้ายตำแหน่ง (Translation) หมุน (Rotation) การสลับรูปภาพ (Switch, Swap) การเปลี่ยนขนาด (Scaling)
การเลื่อน ( Translation ) .Top Y Y’ .Left X’ = X + @ Y’ = Y + @ X X’
สร้าง Project ใหม่ ไปที่ File เลือก New เลือก Project
ตั้งชื่อ :: VB11_Animation01
กำหนดคุณสมบัติของ ฟอร์ม Name :: Frm_Animation01 BackColor :: black Size :: 600,400 FormBorderStyle :: None Text :: โปรแกรมภาพเคลื่อนแบบที่ 1
นำ Picturebox มาวางบนฟอร์ม Name :: Pb1 Image :: กำหนดรูปมา 1 รูป SizeMode :: StretchImage
นำ Button มาวาง 4 Button ดังรูป Name :: BtnMoveLeft Text :: Left กำหนดคุณสมบัติของ button2 Name :: BtnMoveTop Text :: Up กำหนดคุณสมบัติของ button3 Name :: BtnMoveRight Text :: Right กำหนดคุณสมบัติของ button4 Name :: BtnMoveDown Text :: Down
เมื่อกำหนดคุณสมบัติเรียบร้อยจะได้
เข้าไปเขียนคำสั่งในแต่ละ Button เริ่มต้นให้ Double click ที่ปุ่ม BtnMoveLeft ก่อน แล้วเขียนคำสั่งดังนี้
เข้าไปเขียนคำสั่งในแต่ละ Button ต่อไปให้ Double click ที่ปุ่ม BtnMoveTop แล้วเขียนคำสั่งดังนี้
เข้าไปเขียนคำสั่งในแต่ละ Button ต่อไปให้ Double click ที่ปุ่ม BtnMoveRight แล้วเขียนคำสั่งดังนี้
เข้าไปเขียนคำสั่งในแต่ละ Button ต่อไปให้ Double click ที่ปุ่ม BtnMoveDown แล้วเขียนคำสั่งดังนี้
การใช้งานร่วมกับ KeyBoard KEYCODE >> รหัสพิเศษ แป้นฟังก์ชันต่างๆ(F1-F2) ลูกศร ตัวเลข (0-9) KEYCHAR >> Ascii Code ก-ฮ , A-Z , a-z
กำหนด KeyPreviews ก่อน เปลี่ยนคุณสมบัติของฟอร์มก่อน KeyPreviews : True
เข้าไปสร้างเหตุการณ์ Form_KeyDown เหตุการณ์เกี่ยวกับ คีย์บอร์ด มีดังนี้ KeyPress Key UP Key Down
เหตุการณ์ KEYDOWN
เขียนคำสั่ง ดังนี้
หากต้องการใช้ปุ่มตัวอักษรควบคุม W = เดินหน้า A = ไปด้านซ้าย S = ถอยหลัง D = ไปด้านขวา
เหตุการณ์ KEYPRESS
หากต้องการใช้ปุ่มตัวอักษรควบคุม
การตรวจสอบการชน (Collision Detection) เมื่อเราเลื่อนวัตถุ ไปเรื่อยจน ล้นขอบของฟอร์ม เราจะทำอย่างไร ? เมื่อเราตรวจสอบการชนกันของขอบของฟอร์ม และวัตถุเจอแล้วจะทำอย่างไร ?
Me.top Me.width Me.left Me.height
ต.ย. คำสั่ง การตรวจสอบการชนขอบของฟอร์ม Private Sub Frm_Animation01_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress If e.KeyChar = "a" Or e.KeyChar = "A" Then If Pb1.Left > 0 Then Pb1.Left -= 10 '--หมายถึง Pb1.Left = Pb1.Left - 10 Else End If ElseIf e.KeyChar = "w" Or e.KeyChar = "W" Then If Pb1.Top > 0 Then Pb1.Top -= 10 '-- หมายถึง Pb1.Top = Pb1.Top - 10 ElseIf e.KeyChar = "d" Or e.KeyChar = "D" Then If Pb1.Left + Pb1.Width <= Me.Width Then Pb1.Left += 10 '--หมายถึง Pb1.Left = Pb1.Left + 10 ElseIf e.KeyChar = "s" Or e.KeyChar = "S" Then If Pb1.Top + Pb1.Height <= Me.Height Then Pb1.Top += 10 '-- หมายถึง Pb1.Top = Pb1.Top + 10 End Sub