Pages

Manual Book Game Base Defender

Aplikasi ini berjudul “Game Base Defender”. Didalam aplikasi ini pemain utama harus menghancurkan pesawat-pesawat yaang terbang yang mana pesawat tersebut bertujuan menjatuhkan pemain utama.
Berikut adalah listing dari game ini :



import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
totalobjects = 0;
curlevel = 1;
passedplanes = 0;
gameon = 1;
var enemyarray:Array = new Array();
function removeEnemy(enemyname) {
for (enemysearch=0; enemysearch
}
}
removeMovieClip(enemyname);
}
function removeAllEnemies() {
for (enemyloop=0; enemyloophighscore.score) {
highscore.score = score.score;
}
explosion(eval(enemyarray[enemysearch])._x, eval(enemyarray[enemysearch])._y);
removeEnemy(eval(enemyarray[enemysearch]));
removeMovieClip(eval(collider));
break;
}
}
}
var grasspng:BitmapData = BitmapData.loadBitmap('grass');
var grass:BitmapData = new BitmapData(grasspng.width, grasspng.height, true, 0x00000000);
this.createEmptyMovieClip('grasscontainer', this.getNextHighestDepth());
function resetGrass() {
grass.copyPixels(grasspng, new Rectangle(0, 0, grasspng.width, grasspng.height), new Point(0, 0), grasspng, new Point(0, 0), true);
grasscontainer.attachBitmap(grass, grasscontainer.getNextHighestDepth());
grasscontainer._y = 275;
}
resetGrass();
this.attachMovie('soldier', 'soldier', this.getNextHighestDepth());
soldier._x = Stage.width/2;
soldier._y = 50;
soldier.xvel = 0;
soldier.yvel = 0;
soldier.airborne = 1;
soldier.onEnterFrame = function() {
for (enemysearch=0; enemysearchStage.height+20) {
loseGame();
this._x = Stage.width/2;
this._y = 30;
}
}
this._x = Math.max(5, Math.min(Stage.width-5, Math.round(this._x+this.xvel)));
this._y = Math.round(this._y+this.yvel);
if (grass.getPixel32((this._x-grasscontainer._x), (this._y-grasscontainer._y+1)) != 0) {
for (moveup=1; moveup<=this.yvel; moveup++) { //check if the soldier has dropped below the top of the ground if (grass.getPixel32((this._x-grasscontainer._x), (this._y-grasscontainer._y-moveup)) == 0) { //there is a collision, so move the y position up this._y -= (moveup); //exit the for loop break; } } //the soldier has hit the ground, so reset the y velocity this.yvel = 0; //the soldier is no longer airborne this.airborne = 0; } else { //else the soldier has not hit the ground, so it is still airborne this.airborne = 1; } //jump if the W key or up arrow are pressed and the soldier is not airborne if ((Key.isDown(Key.UP) || Key.isDown(87)) && !this.airborne) { //soldier is now airborne this.airborne = 1; //soldier jumps, so boost the y velocity this.yvel = -10; } //Left or A key is pressed, so move the soldier left if (Key.isDown(Key.LEFT) || Key.isDown(65)) { this.xvel = -5; //Else if the right or D key are pressed, move the soldier right } else if (Key.isDown(Key.RIGHT) || Key.isDown(68)) { this.xvel = 5; //Else if neither left or right are pressed, stop the soldier horizontally } else if (!this.airborne) { this.xvel = 0; } if (this.xvel != 0 && !this.airborne) { for (buffup=1; buffup<6; buffup++) { if (grass.getPixel32((this._x-grasscontainer._x), (this._y-grasscontainer._y-buffup)) == 0) { this._y -= buffup; break; } } if(buffup==6){ this._y -= 1; } } }; function explosion(xpos, ypos) { this.attachMovie('explosion', 'explosion'+totalobjects, this.getNextHighestDepth()); eval('explosion'+totalobjects)._x = xpos; eval('explosion'+totalobjects)._y = ypos; totalobjects++; } function circleErase(bitmap, xpos, ypos, circlesize) { r2 = circlesize*circlesize; for (circx=-circlesize; circx<=circlesize; circx++) { circy = Math.round(Math.sqrt(r2-circx*circx)+0.5); bitmap.fillRect(new Rectangle(xpos+circx, ypos-circy, 1, circy*2), 0x0); } } function loseGame() { for (xpos=10; xposStage.width || this._y<0 || this._y>Stage.height) {
removeMovieClip(this);
}
};
totalobjects++;
};
this.onEnterFrame = function() {
if (gameon && (Math.random()*100)/curlevel<1) { enemyarray.push('plane'+totalobjects); attachMovie('plane', 'plane'+totalobjects, this.getNextHighestDepth()); eval('plane'+totalobjects).movedir = Math.floor(Math.random()*2)-1; eval('plane'+totalobjects)._y = Math.random()*50+15; eval('plane'+totalobjects)._x = Stage.width*(-eval('plane'+totalobjects).movedir); eval('plane'+totalobjects)._xscale = 100*(1+2*eval('plane'+totalobjects).movedir); eval('plane'+totalobjects).onEnterFrame = function() { this._x += 1+this.movedir*2; if ((Stage.widthStage.height) {
loseGame();
removeEnemy(this._name);
}
};
totalobjects++;
}
};
totalobjects++;
passedplanes++;
if (passedplanes>40) {
passedplanes = 0;
curlevel++;
}
}
};

function visitswfspot() {
getURL("http://www.swfspot.com", "_blank");
}
var myMenu = new ContextMenu();
var menubezz = new ContextMenuItem("Visit swfspot.com for more games and code", visitswfspot);
myMenu.customItems.push(menubezz);
_root.menu = myMenu;



Output Game :

Baca Selengkapnya...

Story Board Game Base Defender

Disini akan dibahas permainan yang dijadikan tugas softskill, game ini berjudul “Base Defender”. Awal mula setelah game dijalankan, maka akan muncul tampilan awal game seperti gambar di bawah ini. Awal mula dideklarasikan score bernilai 0.

Gambar di bawah ialah scene selanjutnya setelah game berjalan, munculnya pesawat-pesawat yang merupakan musuh utama dalam game ini.
Scene di bawah ini merupakan penjelasan bagaimana pesawat-pesawat yang merupakan musuh dalam game ini bereaksi. Pesawat-pesawat tersebut melepaskan peluru semacam torpedo ke bawah arah pemain utama.
Scene di bawah merupakan penjelasan dimana musuh pesawat tersebut dapat dilawan dan dihancurkan dengan menembak objek musuh pesawat tersebut dengan mengklik kiri mouse dan diarahkan ke arah pesawat tersebut sehingga pesawat tersebut hancur meledak. Untuk setiap pesawat yang dihancurkan, akan mendapat tambahan nilai score sebanyak 1 point untuk masing-masing pesawat yang dihancurkan.
Scene di bawah merupakan scene dimana pemain utama terkena tembakan torpedo yang dilepaskan pesawat musuh. Jika objek pemain terkena tembakan torpedo tersebut, maka pemain akan dinyatakan kalah dan akan muncul pertanyaan apakah ingin bermain lagi atau tidak.

Nama : Dzul Azhar Iskandar
Kelas: 3IA18
NPM : 50409722 Baca Selengkapnya...

Membuat Game Dengan HTML 5

Berikut adalah tutorial untuk membuat game pada HTML5.


1. Buat Canvas
dibawah ini adalah kode programnya:

var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
canvas.width = 512;
canvas.height = 480;
document.body.appendChild(canvas);


maksud dari kode tersebut ialah membuat layer atau lahan untuk kita membuat game dengan tinggi dan lebar yang telah kita tentukan.


2. Memasukan Gambar
dibawah ini adalah kode programnya:

var bgReady = false;
var bgImage = new Image();
bgImage.onload = function () {
bgReady = true;
};
bgImage.src = "images/background.png";


maksud dari kode tersebut ialah memasukan gambar background.png yang ada pada folder images pada website kita.


3. Membuat Object Hero dan Monster
dibawah ini adalah kode programnya:

var heroReady = false;
var heroImage = new Image();
heroImage.onload = function () {
heroReady = true;
};
heroImage.src = "images/hero.png";
var monsterReady = false;
var monsterImage = new Image();
monsterImage.onload = function () {
monsterReady = true;
};
monsterImage.src = "images/monster.png";
var hero = {
speed: 256
};
var monster = {};
var monstersCaught = 0;


maksud dari kode ini ialah membuat object hero dan monster yang menggunakan gambar hero.png dan monster.png yang ada pada folder image juga, lalu mendeklarasikan kecepatan dalam pergerakan hero dan mendeklarasikan nilai permainan.


4.Pengaturan Tombol Permainan
dibawah ini adalah kode programnya:

var keysDown = {};
addEventListener("keydown", function (e) {
keysDown[e.keyCode] = true;
}, false);
addEventListener("keyup", function (e) {
delete keysDown[e.keyCode];
}, false);


dalam sebuah permainan tentunya kita diperlukan tombol kontrol untuk melakukan aksi dari object kita tersebut, oleh karena itu kode di atas ialah kode yang membuat object merespon atas tombol arah yang kita tekan.


5. Peraturan Lokasi Object Permainan
dibawah ini adalah kode programnya:

var reset = function () {
hero.x = canvas.width / 2;
hero.y = canvas.height / 2;
monster.x = 32 + (Math.random() * (canvas.width - 64));
monster.y = 32 + (Math.random() * (canvas.height - 64));
};


berikut ini adalah kode jika hero mengenai monster, maka hero akan di tempatkan kembali pada tengah-tengah dari canvas dan posisi dari monster di random kembali agak posisinya tidak monoton.


6.Pengaturan Arah Object Hero
dibawah ini adalah kode programnya:

var update = function (modifier) {
if (38 in keysDown) {
hero.y -= hero.speed * modifier;
}
if (40 in keysDown) {
hero.y += hero.speed * modifier;
}
if (37 in keysDown) {
hero.x -= hero.speed * modifier;
}
if (39 in keysDown) {
hero.x += hero.speed * modifier;
}


kode diatas ialah kode yang menerangkan pergerakan dari object hero saat tombol arah pada keyboard di tekan, maka posisi x dan y hero akan bergerak dengan kecepatan yang telah di deklarasikan sebelumnya.


7. Pengaturan Nilai Permainan
dibawah ini adalah kode programnya:

if (
hero.x <= (monster.x + 32) && monster.x <= (hero.x + 32) && hero.y <= (monster.y + 32) && monster.y <= (hero.y + 32) ) { ++monstersCaught; reset(); } };


kode diatas menerangkan suatu kondisi jika object hero kita telah mengenai object monster maka nilai dari monstersCought akan bertambah dan akan memanggil fungsi reset yang akan mereset posisi hero dan merandom posisi monster.


8. Render Object
dibawah ini adalah kode programnya:

var render = function () {
if (bgReady) {
ctx.drawImage(bgImage, 0, 0);
}
if (heroReady) {
ctx.drawImage(heroImage, hero.x, hero.y);
}
if (monsterReady) {
ctx.drawImage(monsterImage, monster.x, monster.y);
}
ctx.fillStyle = "rgb(250, 250, 250)";
ctx.font = "24px Helvetica";
ctx.textAlign = "left";
ctx.textBaseline = "top";
ctx.fillText("Goblins caught: " + monstersCaught, 32, 32);
};

kode diatas merupakan pengaturan tampilan dari object-object kita tersebut, dan memberikan tampilan nilai pada canvas kita tersebut dengan pengaturan font seperti yang ada pada kode program diatas.


9. Melakukan Pengulangan Game
dibawah ini adalah kode programnya:

var main = function () {
var now = Date.now();
var delta = now - then;
update(delta / 1000);
render();
then = now;
};


pada kode diatas menerangkan perintah saat permainan di ulang dan melakukan render ulang.


10. Memulai Permainan
dibawah ini adalah kode programnya:

reset();
var then = Date.now();
setInterval(main, 1);


diatas merupakan perintah untuk memulai permainan dengan pengaturan-pengaturan yang telah kita buat diatas.



*referensi
sumber

Baca Selengkapnya...