Showing posts with label game flash. Show all posts
Showing posts with label game flash. Show all posts
Membuat Game Ping Pong Sederhana P2P Dengan Adobe Flash Builder
Game kali ini yaitu game Ping Pong multiplayer berbasis jaringan LAN Peer to peer(P2P). Untuk membuatnya saya menggunakan aplikasi Adobe Flash Builder 4.6, untuk download Flash Builder bisa masuk ke website Adobe.
1. Buat project baru(File>New>Flex Project).
2. Paste code dibawah ini.
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="294" height="424" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import flashx.textLayout.factory.TruncationOptions;
import org.osmf.events.TimeEvent;
private var nc:NetConnection;
private var group:NetGroup;
[Bindable]
private var speedx:int = 3;
private var speedy:int = 3;
private var nyawa1:int = 10;
private var nyawa2:int = 10;
private var timer:Timer = new Timer(25);
private var obj:Object = new Object();
public var host:Boolean = false;
private function connect():void{
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatus);
nc.connect("rtmfp:");
}
private function netStatus(event:NetStatusEvent):void{
trace("[EVENT]\n"+event.info.code+"\n");
switch(event.info.code){
case "NetConnection.Connect.Success":
setupGroup();
break;
case "NetGroup.Connect.Success":
//connected = true;
break;
case "NetGroup.Posting.Notify":
//mc.x = event.info.message.x;
//mc.y = event.info.message.y;
break;
case "NetGroup.Neighbor.Connect":
ballpos();
break;
case "NetGroup.Neighbor.Disconnect":
break;
// routed message received
case "NetGroup.SendTo.Notify":
if(!host){
ball.x = event.info.message.bx;
ball.y = event.info.message.by;
}
mc2.x = event.info.message.x;
//mc2.y = event.info.message.y;
live1.text = event.info.message.nyawa2.toString();
live2.text = event.info.message.nyawa1.toString();
winLabel.text = event.info.message.wintxt;
goPanel.visible = event.info.message.panel;
break;
}
}
private function setupGroup():void{
var groupspec:GroupSpecifier = new GroupSpecifier("myGroup");
groupspec.postingEnabled = true;
groupspec.routingEnabled = true;
groupspec.ipMulticastMemberUpdatesEnabled = true;
groupspec.addIPMulticastAddress("225.225.0.1:30303");
group = new NetGroup(nc,groupspec.groupspecWithAuthorizations());
group.addEventListener(NetStatusEvent.NET_STATUS,netStatus);
}
// enable dragging
private function drag(e:MouseEvent):void {
this.stage.addEventListener(MouseEvent.MOUSE_MOVE, moveMe);
} // end drag function
// Drop the object.
private function drop(e:MouseEvent):void {
this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, moveMe);
} // end drop function
// Move the object in accordind of the mouse position
private function moveMe(e:MouseEvent):void {
// move movieclip to mouse position
mc.x = this.mouseX - mc.width/2;
//mc.y = this.mouseY - mc.height/2;
// Save the current movieclip position
obj.x = ((mc.x+mc.width)-(294))*-1;
//obj.y = ((mc.y+mc.height)-(424))*-1;
// Set sender id
obj.sender = group.convertPeerIDToGroupAddress(nc.nearID);
// Sends a message to all members of a group.
//group.post(obj);
group.sendToAllNeighbors(obj);
} // end moveMe function
//start game
private function ballpos():void{
ball.x = 63 + Math.random() * 150;
ball.y = 212;
timer.stop();
timer.addEventListener(TimerEvent.TIMER,moveBall);
timer.start();
}
private function moveBall(e:TimerEvent):void{
if(host){
obj.main=false;
//===ball speed
ball.x +=speedx;
ball.y +=speedy;
//=========collision stage=============
if(ball.y < 28){
speedy = -3;
//speedx = 3;
ball.y = 212;
ball.x = 63 + Math.random() * 150;
nyawa2 -= 1;
live2.text = nyawa2.toString();
}else if(ball.y > 388){
speedy = 3;
//speedx = 3;
ball.y = 212;
ball.x = 63 + Math.random() * 150;
nyawa1 -= 1;
live1.text = nyawa1.toString();
}
if (ball.x < 0){
ball.x = 0;
speedx *= -1;
}else if (ball.x > 293){
ball.x = 293 - ball.width;
speedx *= -1;
}
//==========collision paddle=========
if(mc.hitTestObject(ball)){
if(ball.x>((mc.width/2)+4)){
speedx -=2;
}else if(ball.x<((mc.width/2)-4)){
speedx +=2;
}
if(speedy<10){
speedy +=1;
speedx +=1;
}
speedy *= -1;
}else if(mc2.hitTestObject(ball)){
if(ball.x>((mc2.width/2)+4)){
speedx -=2;
}else if(ball.x<((mc2.width/2)-4)){
speedx +=2;
}
if(speedy>-10){
speedy -=1;
}
speedy *= -1;
}
//===score ball======
if(nyawa1 == 0){
timer.stop();
goPanel.visible=true;
winLabel.text="You Lose";
obj.wintxt="You Win";
obj.panel = true;
}else if(nyawa2 == 0){
timer.stop();
goPanel.visible=true;
winLabel.text="You Win";
obj.wintxt="You Lose";
obj.panel = true;
}
//====save the value====
obj.nyawa1= nyawa1;
obj.nyawa2= nyawa2;
obj.bx = ((ball.x+ball.width)-(294))*-1;
obj.by = ((ball.y+ball.height)-(424))*-1;
// Set sender id
obj.sender = group.convertPeerIDToGroupAddress(nc.nearID);
group.sendToAllNeighbors(obj);
}
}
protected function join_clickHandler():void{
connect();
host = false;
mc.visible = true;
mc2.visible = true;
mulai.visible = false;
join.visible = false;
live2.rotation = 180;
live1.visible = true;
live2.visible = true;
}
protected function mulai_clickHandler():void{
connect();
host=true;
mc.visible = true;
mc2.visible = true;
mulai.visible = false;
join.visible = false;
live2.rotation = 180;
live1.visible = true;
live2.visible = true;
obj.x=112;
group.post(obj);
}
]]>
</fx:Script>
<mx:HRule x="-23" y="212" width="341" height="3"/>
<s:Ellipse x="95" y="161" width="104" height="104" id="tes">
<s:stroke>
<s:SolidColorStroke weight="2" color="#DDDDDD"/>
</s:stroke>
</s:Ellipse>
<s:Rect width="293" height="423">
<s:stroke>
<s:SolidColorStroke color="#DDDDDD" weight="4"/>
</s:stroke>
</s:Rect>
<s:Button id="ball" x="140" y="205" width="15" height="15" label="Ball" chromeColor="#FCFCFC"/>
<s:Label id="live1" x="269" y="223" fontWeight="bold" text="10" visible="false"/>
<s:Label id="live2" x="25" y="203" fontWeight="bold" text="10" visible="false"/>
<s:Button id="mc" x="112" label="▬▬▬▬▬▬▬" fontFamily="Courier New" mouseDown="drag(event)"
mouseUp="drop(event)" verticalCenter="190"/>
<s:Button id="mc2" x="112" label="▬▬▬▬▬▬▬" fontFamily="Courier New" verticalCenter="-192"/>
<s:Button id="mulai" x="112" y="187" label="Host" click="mulai_clickHandler()"
enabled="true" fontWeight="bold"/>
<s:Button id="join" x="112" y="218" label="Join" click="join_clickHandler()"
fontWeight="bold"/>
<s:Panel id="goPanel" x="30" y="140" width="235" height="144" title="Game Over" visible="false">
<s:Label id="winLabel" x="10" y="35" width="213" height="34" fontSize="32"
text="Player X Win" textAlign="center" verticalAlign="middle"/>
</s:Panel>
</s:Application>
Selamat mencoba. Semoga dapat membantu, dan menjadi inspirasi.
Workshop Flash Game Elventales
Workshop Flash Game elventales.com
Ini hasilnya silahkan download disini
Demo gamenya langsung mainkan disini
Untuk tutorialnya dowload langsung disini
Ini hasilnya silahkan download disini
Demo gamenya langsung mainkan disini
Untuk tutorialnya dowload langsung disini
Platform Flash Game
Membuat Game Pertualangan Dengan Flash Bag.2
Pada pembahasan kali ini panggung area akan dibuat lebih lebar, sehingga pemain bisa bergerak lebih lebar daripada latihan sebelumnya. Caranya sangat mudah sekali. Anda hanya tinggal menambahkan script dibawah ini di dalam script fungsi pemain(player).
// platform menggulung secara horizontal
if (p._x>=340 && t._x>=-(t._width-605)) {
p._x = 339;
t._x -= walk_speed;
}
if (p._x<=261 && t._x<=0) {
p._x = 262;
t._x += walk_speed;
}
Saran saya masukkan script di atas(platform menggulung secara horizontal) di atas script di bawah ini.
//jika player jatuh melebihi platform
if (p._y>=600) {
p._x = 80;
p._y = 180;
}
contoh gambar panggung area yang akan dibuat seperti ini.
Setelah selesai menggambar dan memasukkan script, untuk melihat hasilnya tekan (Ctrl+Enter).
Selamat mencoba. Semoga berhasil dan menjadi inspirasi anda serta pengalaman yang menyenangkan.
Contoh file dapat di download disini
// platform menggulung secara horizontal
if (p._x>=340 && t._x>=-(t._width-605)) {
p._x = 339;
t._x -= walk_speed;
}
if (p._x<=261 && t._x<=0) {
p._x = 262;
t._x += walk_speed;
}
Saran saya masukkan script di atas(platform menggulung secara horizontal) di atas script di bawah ini.
//jika player jatuh melebihi platform
if (p._y>=600) {
p._x = 80;
p._y = 180;
}
contoh gambar panggung area yang akan dibuat seperti ini.
Setelah selesai menggambar dan memasukkan script, untuk melihat hasilnya tekan (Ctrl+Enter).
Selamat mencoba. Semoga berhasil dan menjadi inspirasi anda serta pengalaman yang menyenangkan.
Contoh file dapat di download disini
Membuat Game Pertualangan Dengan Flash
Dalam Pembahasan kali ini akan dijelaskan bagaimana cara membuat sendiri game pertualangan
sederhana dengan menggunakan aplikasi flash. Untuk membuat game tersebut sebelumnya kita harus tau apa saja yang diperlukan untuk membuat game pertualangan. Dalam logika, saat memainkan game kita menggerakkan pemain berjalan di panggung permainan. berarti, kita membutuhkan dua objek, yaitu pemain dan panggung area. detail dari kedua objek tersebut:
•> Pemain
- Dapat berjalan ke kanan
- Dapat berjalan keKekiri
- Dapat Loncat
- Jatuh terkena gravitasi
•> Panggung
- Tempat pijakan pemain
Dari hipotesa atau kesimpulan awal tadi, marilah memulai membuat game pertualangan dengan tangan
sendiri dengan membuka dokumen baru.
1. Tekan (Ctrl+N) pilih flash document, kemudian klik kanan pada lembar kerja pilih Document Properties maka akan muncul jendela dialog. kemudia isikan angka 30 pada Frame Rate, Dimension 600 x 400 dan Background color putih, Setelak itu Klik Ok.
2. Setelah itu menggambar sebuah pemain. Disini saya menggunakan Rectangle Tool(R) untuk membuat pemain. Anda bisa kreasikan sendiri pemain anda.
3. Kemudian seleksi pemain dan klik kanan pada pemain, pilih Convert to Symbol..
4. Beri nama pemain dengan nama "player" pada kolom name, pilih Movie Clip pada pilihan type, dan pilih poros di tengah pada pilihan Registration, kemudian klik OK.
5. Kemudian klik Movie clip player dan berikan nama instansi di properties>Instance Name dengan nama instansi "player".
6. Setelah itu gambar panggung area untuk tempat berjalan pemain. Disini saya juga menggunakan Rectangle Tool(R) untuk membuat panggung seperti gambar dibawah. Kemudian, seleksi semua gambar panggung area, buat menjadi Movie clip dengan klik kanan pilih Convert to Symbol.
7. Beri nama "tanah" pada kolom Name, pilih Movie Clip pada pilihan Type, dan tentukan registration, kemudian klik OK.
8. Kemudian klik Movie clip tanah dan berikan nama instansi di properties>Instance Name dengan nama instansi "tanah".
9. Setelah itu klik kanan pada layer1 frame pertama, pilih Actions.
10. Masukkan kode dibawah ini pada jendela Actions.
//Kode dibawah ini disertai dengan penjelasan\\
stop();
//deklarasi platform
t = _root.tanah;
//deklarasi player
p = _root.player;
xspeed = 0;
yspeed = 0;
max_yspeed = 10;
walk_speed = 4;
// keadaan saat loncat ya
jumping = true;
// gravitasi & kekuatan loncat
gravity = 1;
jump_power = 10;
//fungsi player dalam frame
player.onEnterFrame = function() {
//jika ditekan ke kiri
if (Key.isDown(Key.LEFT)) {
xspeed = -walk_speed;
}
//jika ditekan ke kanan
if (Key.isDown(Key.RIGHT)) {
xspeed = walk_speed;
}
//jika ditekan tombol ke atas dan tidak saat loncat
if ((Key.isDown(Key.UP)) and !jumping) {
yspeed -= jump_power;
jumping = true;
}
//--------script jatuh seakan2 terkena grafitasi-----------\\
// jika keadaan saat loncat
if (jumping) {
yspeed += gravity;
}
//jika yspeed>max_yspeed
if (yspeed>max_yspeed) {
yspeed = max_yspeed;
}
//--------akhir script seakan2 terkena gravitasi-----------------\\
//jika platform dibawah kaki dan tidak saat loncat dan tidak saat naik
if (level_under_my_feet() and !jumping) {
yspeed = 0;
}
// memerintahkan player untuk melakukan gerakan
// ->masukkan nilai-nilai x, y player ke dalam variabel forecast
forecast_x = this._x+xspeed;
forecast_y = this._y+yspeed;
// mengontrol platform
//ketika platform menyentuh bagian bawah player lakukan
while (t.hitTest(forecast_x, forecast_y+this._height/2-1, true)) {
forecast_y--;
xspeed = 0;
yspeed = 0;
jumping = false;
}
//ketika platform menyentuh bagian atas player lakukan
while (t.hitTest(forecast_x, forecast_y-this._height/2, true)) {
forecast_y++;
yspeed = 0;
}
//ketika platform menyentuh bagian kiri player lakukan
while (t.hitTest(forecast_x-this._width/2+1, forecast_y, true)) {
forecast_x++;
xspeed = 0;
}
//ketika platform menyentuh bagian kanan player lakukan
while (t.hitTest(forecast_x+this._width/2, forecast_y, true)) {
forecast_x--;
xspeed = 0;
}
//kembalikan nilai forecast ke player agar player begerak sesuai event
this._x = forecast_x;
this._y = forecast_y;
// hentikan gerakan setelah event terjadi
xspeed = 0;
//membatasi lebar gerak karakter
if (p._x-(p._width/2)<=0) {
p._x = p._width/2;
} else if (p._x+(p._width/2)>=600) {
p._x = 600-(p._width/2);
}
//jika player jatuh melebihi platform
if (p._y>=600) {
p._x = 80;
p._y = 180;
}
if (t.hitTest(player._x, player._y+player._height/2, true)) {
jumping = false;
} else {
jumping = true;
}
};
//end finction player
//fungsi platform ketika dibawah player
function level_under_my_feet() {
return t.hitTest(player._x, player._y+player._height/2, true);
}
11. Setelah itu tekan (Ctrl+Enter) untuk melihat hasil
Script di atas hanyalah salah satu dari logika-logika yang saya berikan, anda bisa menambah dan menggunakan logika-logika kreasi anda. Apabila ingin mengedit panggung area, tinggal dobel klik movie clip tanah dan edit sesuka hati.
Selamat mencoba. Semoga berhasil dan menjadi inspirasi anda serta pengalaman yang menyenangkan.
Contoh file dapat di download disini
sederhana dengan menggunakan aplikasi flash. Untuk membuat game tersebut sebelumnya kita harus tau apa saja yang diperlukan untuk membuat game pertualangan. Dalam logika, saat memainkan game kita menggerakkan pemain berjalan di panggung permainan. berarti, kita membutuhkan dua objek, yaitu pemain dan panggung area. detail dari kedua objek tersebut:
•> Pemain
- Dapat berjalan ke kanan
- Dapat berjalan keKekiri
- Dapat Loncat
- Jatuh terkena gravitasi
•> Panggung
- Tempat pijakan pemain
Dari hipotesa atau kesimpulan awal tadi, marilah memulai membuat game pertualangan dengan tangan
sendiri dengan membuka dokumen baru.
1. Tekan (Ctrl+N) pilih flash document, kemudian klik kanan pada lembar kerja pilih Document Properties maka akan muncul jendela dialog. kemudia isikan angka 30 pada Frame Rate, Dimension 600 x 400 dan Background color putih, Setelak itu Klik Ok.
2. Setelah itu menggambar sebuah pemain. Disini saya menggunakan Rectangle Tool(R) untuk membuat pemain. Anda bisa kreasikan sendiri pemain anda.
3. Kemudian seleksi pemain dan klik kanan pada pemain, pilih Convert to Symbol..
4. Beri nama pemain dengan nama "player" pada kolom name, pilih Movie Clip pada pilihan type, dan pilih poros di tengah pada pilihan Registration, kemudian klik OK.
5. Kemudian klik Movie clip player dan berikan nama instansi di properties>Instance Name dengan nama instansi "player".
6. Setelah itu gambar panggung area untuk tempat berjalan pemain. Disini saya juga menggunakan Rectangle Tool(R) untuk membuat panggung seperti gambar dibawah. Kemudian, seleksi semua gambar panggung area, buat menjadi Movie clip dengan klik kanan pilih Convert to Symbol.
7. Beri nama "tanah" pada kolom Name, pilih Movie Clip pada pilihan Type, dan tentukan registration, kemudian klik OK.
8. Kemudian klik Movie clip tanah dan berikan nama instansi di properties>Instance Name dengan nama instansi "tanah".
9. Setelah itu klik kanan pada layer1 frame pertama, pilih Actions.
10. Masukkan kode dibawah ini pada jendela Actions.
//Kode dibawah ini disertai dengan penjelasan\\
stop();
//deklarasi platform
t = _root.tanah;
//deklarasi player
p = _root.player;
xspeed = 0;
yspeed = 0;
max_yspeed = 10;
walk_speed = 4;
// keadaan saat loncat ya
jumping = true;
// gravitasi & kekuatan loncat
gravity = 1;
jump_power = 10;
//fungsi player dalam frame
player.onEnterFrame = function() {
//jika ditekan ke kiri
if (Key.isDown(Key.LEFT)) {
xspeed = -walk_speed;
}
//jika ditekan ke kanan
if (Key.isDown(Key.RIGHT)) {
xspeed = walk_speed;
}
//jika ditekan tombol ke atas dan tidak saat loncat
if ((Key.isDown(Key.UP)) and !jumping) {
yspeed -= jump_power;
jumping = true;
}
//--------script jatuh seakan2 terkena grafitasi-----------\\
// jika keadaan saat loncat
if (jumping) {
yspeed += gravity;
}
//jika yspeed>max_yspeed
if (yspeed>max_yspeed) {
yspeed = max_yspeed;
}
//--------akhir script seakan2 terkena gravitasi-----------------\\
//jika platform dibawah kaki dan tidak saat loncat dan tidak saat naik
if (level_under_my_feet() and !jumping) {
yspeed = 0;
}
// memerintahkan player untuk melakukan gerakan
// ->masukkan nilai-nilai x, y player ke dalam variabel forecast
forecast_x = this._x+xspeed;
forecast_y = this._y+yspeed;
// mengontrol platform
//ketika platform menyentuh bagian bawah player lakukan
while (t.hitTest(forecast_x, forecast_y+this._height/2-1, true)) {
forecast_y--;
xspeed = 0;
yspeed = 0;
jumping = false;
}
//ketika platform menyentuh bagian atas player lakukan
while (t.hitTest(forecast_x, forecast_y-this._height/2, true)) {
forecast_y++;
yspeed = 0;
}
//ketika platform menyentuh bagian kiri player lakukan
while (t.hitTest(forecast_x-this._width/2+1, forecast_y, true)) {
forecast_x++;
xspeed = 0;
}
//ketika platform menyentuh bagian kanan player lakukan
while (t.hitTest(forecast_x+this._width/2, forecast_y, true)) {
forecast_x--;
xspeed = 0;
}
//kembalikan nilai forecast ke player agar player begerak sesuai event
this._x = forecast_x;
this._y = forecast_y;
// hentikan gerakan setelah event terjadi
xspeed = 0;
//membatasi lebar gerak karakter
if (p._x-(p._width/2)<=0) {
p._x = p._width/2;
} else if (p._x+(p._width/2)>=600) {
p._x = 600-(p._width/2);
}
//jika player jatuh melebihi platform
if (p._y>=600) {
p._x = 80;
p._y = 180;
}
if (t.hitTest(player._x, player._y+player._height/2, true)) {
jumping = false;
} else {
jumping = true;
}
};
//end finction player
//fungsi platform ketika dibawah player
function level_under_my_feet() {
return t.hitTest(player._x, player._y+player._height/2, true);
}
11. Setelah itu tekan (Ctrl+Enter) untuk melihat hasil
Script di atas hanyalah salah satu dari logika-logika yang saya berikan, anda bisa menambah dan menggunakan logika-logika kreasi anda. Apabila ingin mengedit panggung area, tinggal dobel klik movie clip tanah dan edit sesuka hati.
Selamat mencoba. Semoga berhasil dan menjadi inspirasi anda serta pengalaman yang menyenangkan.
Contoh file dapat di download disini
Subscribe to:
Posts (Atom)











