Friday, June 3, 2016

Tutorial Make Game PONG with Arduino + Processing EASY !

Posted by Unknown
            halo teman - teman sekalian .. hahaha apakabar? :D sedikit lagi ada tutorial yang mungkin bisa menambah resource di dalam negeri . kali ini saya akan berbagi bagaimana membuat game Pong dengan processing tetapi kontrol nya oleh arduino. simple kok ga usah yg ribet ribet. :D karena dari yg simple itu nanti bakal ribet juga (huhu gmn seh >.< ) langsung saja part yang dibutuhkan untuk membangun game Pong. sebelumnya tau kan game pong itu apa? namanya sih ping pong. karena orang males nyebut nya 2x jadi nyebut nya 1x saja jadi Pong.. berikut sedikit penjelasan beserta perangkat keras yang dibutuhkan :D 
hardware requirements
- Arduino UNO R3
- Potentiometer 10k 1x
- beberapa kabel jumper

          sangat simple bukan ? . ya ini hanya sebagai kontrol saja nanti untuk menggerakan papan pada game pong nya. setelah itu mari kita pasang .. pasang dan pasang ,
     

           
Sumber : arduino.cc



setelah itu seperti biasa masuk ke langkah pengkodingan >.< . yaps karna bermain arduino dan processing pasti bakal ngoding ujung2 nya.

Arduino Sketch

harap perhatikan pin input pada arduino. pada gambar di atas masuk ke A2.

 int control; 
 int Potentio=A2 //perhatikan analog pin yg digunakan
void setup(){  
  Serial.begin(57600);  
 }  
 void loop(){  
  control = map(analogRead(Potentio),0,1023,0,250);  
  Serial.write(control);  
 }  

         wah sangat simple sekali bukan untuk sketch pada Arduino ? ahahaha. fungsi nya hanya mengambil value dari 0-250. yang nanti nya akan menjadi penggerak papan pada pong.

Processing Sketch


   
 import processing.serial.*;  
   
 Serial myPort;  
   
 float startTime;  
   
 float kecBolaX = random(1,5);  
 float kecBolaY = random(1,5);  
 float x=random(20,280);  
 float y=random(20,280);  
 float controlY;  
   
 float tinggi=50;  
   
 int diam;  
 String val;  
   
 boolean mulai=false;  
   
   
   
 int warna=color(random(255),random(255),random(255));  
   
 void setup(){  
   size(300,300);  
   noStroke();  
   smooth();  
   myPort = new Serial(this,Serial.list()[0],57600);  
   myPort.clear();  
   textSize(20);  
     
 }  
   
 void draw(){  
  background(255);  
  fill(0);  
  diam = 20;  
  ellipse(x,y,diam,diam);  
  dindingKiri();  
  dindingAtas();  
  dindingBawah();  
  pemantul();  
  play();  
 }  
   
   
 void dindingKiri(){  
  fill(warna);  
  rect(0,0,10,height);   
    
 }  
   
 void dindingAtas(){  
   fill(warna);  
   rect(0,0,width,10);  
     
 }  
   
 void dindingBawah(){  
   fill(warna);  
   rect(0,height-10,width,10);   
 }  
   
 void pemantul(){  
   fill(random(255),random(255),random(255));  
   rect(width-10,controlY-tinggi/2+20,10, tinggi);  
    
 }  
   
 void keyPressed(){  
  if(key == 's' || key == 'S')  
   mulai = !mulai;   
 }  
   
 void serialEvent(Serial myPort){  
   while(myPort.available() > 0){  
    controlY = myPort.read();  
    if(val != null){  
      println(controlY);}  
    }  
 }  
   
 void play(){  
   if(mulai){  
       
   x = x + kecBolaX;  
   y = y + kecBolaY;  
     
     if(x > width-20 && x < width-10 && y > controlY-tinggi/2+20  && y < controlY+ tinggi/2+20 ){  
        
      kecBolaX = kecBolaX * -1;  
      x = x + kecBolaX;  
        
        
     } else if( x < 20){  
      kecBolaX = kecBolaX * -1.1;  
      x = x + kecBolaX;   
        
     }  
       
     if( y > height - 10 || y < 10){  
      kecBolaY = kecBolaY * -1;  
      y = y + kecBolaY;   
     }  
       
     if( x > width){  
      mulai = false;  
      x = random(20,280);  
      y = random(20,280);  
     kecBolaX = random(1,5);  
     kecBolaY = random(1,5);   
        
     }  
  }   
 }  

   wah agak panjang nya. ya memang seperti itu koding nya. itu adaptasi dari code yang ane dapet di forum openprocessing.org lebih tepat nya disini!!
  kalau sudah begitu mari kita lihat hasil nya  !!!

note* tekan S atau s untuk memulai dan pause :)




0 comments:

Post a Comment