สร้าง Movie Clip มา 2 ตัว ตัวแรกตั้ง instance ว่า ground เป็นพื้น อีกตัวชื่อ sprite เป็นตัวละครของเรา
คลิ๊กขวาที่ movieclip sprite แล้วเลือก action
ฟังก์ชั่น onload เพื่อตั้งค่าเริ่มต้น
onClipEvent(load)
{
gravity = 0; //แรงโน้มถ่วง
jumping = false; //ตั้งค่าว่ายังไม่โดด
jumpheight = 10; //ความสูงตอนกระโดด
}
ใน enterframe ใส่ code เพื่อจัดการแรงโน้มถ่วงดังนี้
onClipEvent(enterFrame)
{
if(!_root.ground.hitTest(_x, _y, true)) //ตัวละครเท้าไม่ติดพื้น
{
gravity++; //เกิดแรงโน้มถ่วง
_y += gravity;//ค่าแกน y เริ่มเยอะขึ้น
} else //เมื่อเท้าติดพื้นให้ตั้งค่าเป็น 0
{
jumping = false;
gravity = 0;
}
//วนลูป set ค่า ตัวละคร อยู่ในตำแหน่ง บนพื้น (ค่าy-ความสูงตนเอง)
while(_root.ground.hitTest(_x, _y - _height, true))
{
jumping = false;
_y--;
}
}
ตอนนี้ เราได้ระบบ physic สำหรับทำเกมต่างๆแล้ว
ต่อมาจะทำการเขียน code ส่วนควบคุมตัวละคร
ใส่ keydown เพื่อกระโดดลงไป
if(Key.isDown(Key.UP) && !jumping) // ใส่ เพื่อไม่ให้กด โดดซ้ำได้
{
gravity = -jumpheight;
jumping = true;
}
ใส่ code เดินซ้ายขวา
if(Key.isDown(Key.RIGHT))
{
_x += 5;
}
if(Key.isDown(Key.LEFT))
{
_x -= 5;
}
สรุป code ทั้งหมดด้านล่างนี้
----------------------------------------------------------
onClipEvent(load)
{
gravity = 0;
jumping = false;
jumpheight = 15;
}
onClipEvent(enterFrame)
{
if(Key.isDown(Key.RIGHT))
{
_x += 5;
}
if(Key.isDown(Key.LEFT))
{
_x -= 5;
}
if(Key.isDown(Key.UP) && !jumping)
{
gravity = -jumpheight;
jumping = true;
}
if(!_root.ground.hitTest(_x, _y, true))
{
gravity++;
_y += gravity;
} else
{
jumping = false;
gravity = 0;
}
while(_root.ground.hitTest(_x, _y +_height , true))
{
jumping = false;
_y--;
}
}