Membuat Game Ular Sederhana Menggunakan Processing
Assalamu'alaikum Wr.Wb Teman Mahasiswa ,
Hai teman mahasiswa apa kabar semua ? semoga sehat selalu yaa dan selalu dilindungi oleh Allah SWT, amiinn :)
Kali ini kita kembali lagi dengan program processing .(semoga ngga bosan yaa :D)
Dan sekarang kita akan membuat sebuah Game Ular sederhana menggunakan Processing.
Baca juga :( Membuat Animasi Bergerak Perkotaan serta Lalu Lintas Menggunakan Processing )
Tanpa berlama-lama, berikut koding membuat game ular sederhana menggunakan processing ;)
//Membuat Game Ular Sederhana Menggunakan Processing
//Catatans Mahasiswa
ArrayList<Float> x = new ArrayList<Float>();
ArrayList<Float> y = new ArrayList<Float>();
//float[] x = new float[200];
//float[] y = new float[200];
float segLength = 18;
int X=100, Y=100, n=1, speed = 5, EatX=200, EatY=200, length=5;
int[] EX={(int)random(100, width-50), (int)random(100, width-50), (int)random(100, width-50), (int)random(100, width-50), (int)random(100, width-50)}, EY={(int)random(100, height-50), (int)random(100, height-50), (int)random(100, height-50), (int)random(100, height-50), (int)random(100, height-50)};
void setup() {
size(1000,600);
for(int i=0;i<200;i++){
x.add(0f);
y.add(0f);
}
}
void draw() {
background(0);
strokeWeight(10);
stroke(255, 170);
line(0, 5, width, 5);
line(0, height-30, width, height-30);
line(30, 0, 30, height);
line(width-50, 0, width-50, height-30);
text("speed: "+speed, 30, 30);
text("length: "+length, 30, 60);
ellipse(EatX, EatY, 30, 30);
if ( dist( X, Y, EatX, EatY) < 20 ) {
EatX=(int)random(50, width-50);
EatY=(int)random(50, height-50);
length++;
if (length%20==0)speed++;
// file.play();
}
for (int i=0; i<length/10; i++) {
if (length>10) {
stroke(255, 0, 0, 170);
strokeWeight(10);
ellipse(EX[i], EY[i], 30, 30);
if ( dist( X, Y, EX[i], EY[i]) < 20 ) {
EX[i]=(int)random(50, width-50);
EY[i]=(int)random(50, height-50);
length-=5;
}
}
}
strokeWeight(15);
stroke(255, 100);
if (n==1) {
X+=speed;
} else if (n==2) {
X-=speed;
} else if (n==3) {
Y-=speed;
} else if (n==4) {
Y+=speed;
}
if (X>width-60)
{
X=width-61;
n=(int)random(3, 5);
}
if (X<42)
{
X=43;
n=(int)random(3, 5);
}
if (Y>height-40)
{
Y=height-41;
n=(int)random(1, 3);
}
if (Y<17)
{
Y=18;
n=(int)random(1, 3);
}
strokeWeight(25);
stroke(255, 200);
dragSegment(0, X, Y);
for (int i=0; i<length; i++) {
if ( dist( X, Y, x.get(i), y.get(i)) < 10 &&i>1) {
length=i;
}
strokeWeight(15);
stroke(0, 0, 255, 100);
dragSegment(i+1, x.get(i), y.get(i));
}
}
void dragSegment(int i, float xin, float yin) {
float dx = xin - x.get(i);
float dy = yin - y.get(i);
float angle = atan2(dy, dx);
x.set(i, xin - cos(angle) * segLength);
y.set(i,yin - sin(angle) * segLength);
segment(x.get(i), y.get(i), angle);
}
void segment(float x, float y, float a) {
pushMatrix();
translate(x, y);
rotate(a);
line(0, 0, segLength, 0);
popMatrix();
}
void segment1(float x, float y, float a) {
pushMatrix();
translate(x, y);
rotate(a);
line(0, 0, segLength, 0);
popMatrix();
}
void keyPressed() {
if (keyCode== UP ||keyCode=='W') {
n=3;
} else if (keyCode== DOWN||keyCode=='S') {
n=4;
} else if (keyCode== LEFT||keyCode=='A') {
n=2;
} else if (keyCode== RIGHT||keyCode=='D') {
n=1;
}
}
//Catatans Mahasiswa
ArrayList<Float> x = new ArrayList<Float>();
ArrayList<Float> y = new ArrayList<Float>();
//float[] x = new float[200];
//float[] y = new float[200];
float segLength = 18;
int X=100, Y=100, n=1, speed = 5, EatX=200, EatY=200, length=5;
int[] EX={(int)random(100, width-50), (int)random(100, width-50), (int)random(100, width-50), (int)random(100, width-50), (int)random(100, width-50)}, EY={(int)random(100, height-50), (int)random(100, height-50), (int)random(100, height-50), (int)random(100, height-50), (int)random(100, height-50)};
void setup() {
size(1000,600);
for(int i=0;i<200;i++){
x.add(0f);
y.add(0f);
}
}
void draw() {
background(0);
strokeWeight(10);
stroke(255, 170);
line(0, 5, width, 5);
line(0, height-30, width, height-30);
line(30, 0, 30, height);
line(width-50, 0, width-50, height-30);
text("speed: "+speed, 30, 30);
text("length: "+length, 30, 60);
ellipse(EatX, EatY, 30, 30);
if ( dist( X, Y, EatX, EatY) < 20 ) {
EatX=(int)random(50, width-50);
EatY=(int)random(50, height-50);
length++;
if (length%20==0)speed++;
// file.play();
}
for (int i=0; i<length/10; i++) {
if (length>10) {
stroke(255, 0, 0, 170);
strokeWeight(10);
ellipse(EX[i], EY[i], 30, 30);
if ( dist( X, Y, EX[i], EY[i]) < 20 ) {
EX[i]=(int)random(50, width-50);
EY[i]=(int)random(50, height-50);
length-=5;
}
}
}
strokeWeight(15);
stroke(255, 100);
if (n==1) {
X+=speed;
} else if (n==2) {
X-=speed;
} else if (n==3) {
Y-=speed;
} else if (n==4) {
Y+=speed;
}
if (X>width-60)
{
X=width-61;
n=(int)random(3, 5);
}
if (X<42)
{
X=43;
n=(int)random(3, 5);
}
if (Y>height-40)
{
Y=height-41;
n=(int)random(1, 3);
}
if (Y<17)
{
Y=18;
n=(int)random(1, 3);
}
strokeWeight(25);
stroke(255, 200);
dragSegment(0, X, Y);
for (int i=0; i<length; i++) {
if ( dist( X, Y, x.get(i), y.get(i)) < 10 &&i>1) {
length=i;
}
strokeWeight(15);
stroke(0, 0, 255, 100);
dragSegment(i+1, x.get(i), y.get(i));
}
}
void dragSegment(int i, float xin, float yin) {
float dx = xin - x.get(i);
float dy = yin - y.get(i);
float angle = atan2(dy, dx);
x.set(i, xin - cos(angle) * segLength);
y.set(i,yin - sin(angle) * segLength);
segment(x.get(i), y.get(i), angle);
}
void segment(float x, float y, float a) {
pushMatrix();
translate(x, y);
rotate(a);
line(0, 0, segLength, 0);
popMatrix();
}
void segment1(float x, float y, float a) {
pushMatrix();
translate(x, y);
rotate(a);
line(0, 0, segLength, 0);
popMatrix();
}
void keyPressed() {
if (keyCode== UP ||keyCode=='W') {
n=3;
} else if (keyCode== DOWN||keyCode=='S') {
n=4;
} else if (keyCode== LEFT||keyCode=='A') {
n=2;
} else if (keyCode== RIGHT||keyCode=='D') {
n=1;
}
}
Jangan lupa semua koding nya di copy-paste dan silahkan "Run" . :)
Jika ada kesalahan atau kekurangan dalam penyampaian tutorial maupun perkataan yang kurang jelas, kami mohon maaf sebesar-besarnya.
Jika ada kesalahan atau kekurangan dalam penyampaian tutorial maupun perkataan yang kurang jelas, kami mohon maaf sebesar-besarnya.
Jika ada kekurangan, jangan sungkan untuk berkomentar yaa.
Komentar kalian sangat berarti bagi perkembangan Blog ini , Terima kasih .. :)
Jangan lupa di share yaa :D wkwk
#Salam Teman Mahasiswa
Selamat mencoba dan semoga berhasil ;)
Disini saya menggunakan Processing 2.2.1 .
Untuk Aplikasi Processing nya bisa di ( Download Disini :) )
Untuk Aplikasi Processing nya bisa di ( Download Disini :) )
Wassalamu'alaikum wr.wb
Baca juga :
( Membuat Animasi 3D Bola Dalam Kotak Menggunakan Processing )
( Membuat Animasi Papan Catur Menggunakan Processing )
Baca juga :
( Membuat Animasi 3D Bola Dalam Kotak Menggunakan Processing )
( Membuat Animasi Papan Catur Menggunakan Processing )
ConversionConversion EmoticonEmoticon