วันอาทิตย์ที่ 5 มิถุนายน พ.ศ. 2554

การทำ Save game



สำหรับเกม flash ที่เล่นบนเครื่องของเรา เรามีวิธีที่ใช้สำหรับการเก็บข้อมูลไม่ว่าจะเป็นชื่อ คะแนน ไอเท็มของผู้เล่น ด้วยวิธีการใช้ Shared object มาดูโคทเลยง่ายกว่า


_root.NAME = "test";
_root.NUM1 = 1;
_root.NUM2 = 2;
_root.NUM3 = 3;
_root.NUM4 = 4;

function SaveGame(savename) {
myLSO = SharedObject.getLocal(savename, "/");
myObj = {};
myObj.objArray = new Array(9);
myObj.objArray[0] = _root.NAME;
myObj.objArray[1] = _root.NUM1;
myObj.objArray[2] = _root.NUM2;
myObj.objArray[3] = _root.NUM3;
myObj.objArray[4] = _root.NUM4;
myLSO.data.myObj = myObj;
trace("saved !!");
}


function LoadGame(savename) {
myLSO = SharedObject.getLocal(savename, "/");
if (myLSO.data.myObj.objArray[0] != undefined) {
trace("loading succes!!");
_root.NAME = myLSO.data.myObj.objArray[0];
_root.NUM1 = myLSO.data.myObj.objArray[1];
_root.NUM2 = myLSO.data.myObj.objArray[2];
_root.NUM3 = myLSO.data.myObj.objArray[3];
_root.NUM4 = myLSO.data.myObj.objArray[4];
} else {
trace("loading fail!!");
}
}

โดยจะแบ่งเป็นสองส่วน คือส่วนโหลด และ ส่วนเซฟ ทำเป็นฟังชั่นไว้ใช้ง่ายดี
ลองเอาไปประยุคใช้ดู ในตัวอย่างนี้เราแสดงให้เห็นว่า มันสามารถเก็บค่าตัวแปร 5 ตัวนี้ไว้ได้
ถ้าเกมจริงๆอาจจะมีตัวแปรมากกว่านี้

โหลด ตัวอย่างไปลอง


วันศุกร์ที่ 3 มิถุนายน พ.ศ. 2554

ทำ particle ด้วยคำสั่ง attachMovie







นี้เป็นการเอา คำสั่ง attachMovie มาใช้สร้างระบบ Particle ที่สวยงาม จริงๆคำสั่งนี้ใช้ทำพวกกระสุน หรืออะไรก็ตามที่สร้างออกมาเรื่อยๆจากต้นแบบโดยคำสั่งนั้นมีแค่นี้เอง


attachMovie(ชื่อจาก link", ชื่อใหม่, Depth);




โคทของเราง่ายๆ



_root.attachMovie("ball", "ball"+BallNum, BallNum, {_x:spawner._x, _y:spawner._y});
BallNum += 1;




ในส่วนนี้ {_x:spawner._x, _y:spawner._y} คือการระบุค่าพารามิเตอจำเป็นเริ่มต้นให้ทุกๆอินสเตนที่เราปั้มออกมา ในตัวอย่างนี้คือพิกัดของซิมโบลที่instance ชื่อ spawner คือเราจะให้สิ่งที่เราจะปั่มออกมาพุ่งออกจากเจ้า spawner นี้


ball คือชื่อที่เราทำการ link มันมาจาก library เอาไว้เรียกใช้ด้วยคำสั่ง attachMovie


          วิธี link คลิกขวาที่ซิมโบลของเราในไลบรารี่ เลือกคำสั่ง Linkage



จากนั้น ตั้งชื่อ ในตัวอย่างนี้ชื่อว่า ball


กด ok เสร็จแล้ว




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


Download ตัวอย่าง

ใช้อะไรทำเกมดี

ไม่ว่าคุณจะใช้ภาษาหรือโปรแกรมอะไรก็ตาม สิ่งสำคัญๆที่เครื่องมือ หรือภาษาเหล่านั้นต้องทำได้คือ

1. การแสดงผลของภาพ สามารถเอารูปเข้าไปแสดงได้
2. การเคลื่อนที่ของภาพ หรือวัตถุ X Y Z
3. การเช็คชน
4. การควบคุมด้วยคีย์บอร์ทหรือเมาส์ หรืออื่นๆ

ถ้าทำหลักๆ 4 ข้อนี้ได้แค่นี้เราก็สามารถทำเกมง่ายๆได้แล้ว

การเคลื่อนที่แบบง่าย ( ตามเมาส์ )





การเคลื่อนที่ในบทนี้ผมจะนำเสนอวิธีพื้นฐานในการเคลื่อนย้ายวัตถุตามเมาส์ ตามสมการเส้นตรง
โดยหลักการง่ายๆของสมการเส้นตรงที่เราเอามาใช้คือ


ตำแหน่งเป้าหมาย - ตำแหน่งวัตถุ  


แค่นี้เองเรามาดูโคทกันว่ามันทำงานยังไง




VelX = ball._x;// ตัวแปรนี้เอาไว้เก็บค่าต่ำแหน่งเป้าหมายแนว x
VelY = ball._y;// ตัวแปรนี้เอาไว้เก็บค่าต่ำแหน่งเป้าหมายแนว y
delay = 10;
onEnterFrame = function () {
ball._x += (VelX-ball._x)/delay; //ตรงนี้คือที่เราเอาสมการเส้นตรงมาใช้
ball._y += (VelY-ball._y)/delay;


target._x = VelX;// ส่วนนี้ไม่มีไร แค่สั่งให้ซิมโบลที่ชื่อ instance ว่า target มีตำแหน่งเท่ากับพิกัดเป้าหมายของเรา
target._y = VelY;
};




onMouseDown = function () {// ฟังชั่นสำหรับเช็คการกดของเมาส์
VelX = _xmouse;
VelY = _ymouse;
};


โคททั้งหมดใน Frame 1 ก็มีแค่นี้