Kalau sebelumnya saya pernah memposting membuat Titik Potong sederhana dan pada postingan kali ini kita coba membuat yang lebih sedikit berbeda walaupun sebenarnya masih sangat-sangat simple, okay tidak perlu berlama-lama silahkan dicoba coding dibawah ini untuk tahu jelanya jalannya coding, goodluck. :)
Berikut adalah output dari coding diatas:
#include //Header buat fungsi random #include //Header buat bikin Windows #include #include int letak=0; int warnaKapal=0; //variable bwt cek warna kapal dan pena yang dipake void initial(void) //inisialisasi nilai awal { glClearColor(1.0, 1.0, 1.0, 1.0); //warna background pertama kali glMatrixMode(GL_PROJECTION); //mode bentuk koordinat glPointSize(4.0); //setting besarnya dari point sekali buat glLoadIdentity(); // gluOrtho2D(-400.0,400.0,-200.0,400.0); //meletakkan koordinat awal yang tampil di layar } void gantibackground(int background) //fungsi bwt ganti warna background { if(background%7==0) { glClearColor(1.0,0.0,0.0,0.0); } else if(background%7==1) { glClearColor(0.0,1.0,0.0,0.0); } else if(background%7==2) { glClearColor(0.0,0.0,1.0,0.0); } else if(background%7==3) { glClearColor(0.5,1.0,0.5,0.0); } else if(background%7==4) { glClearColor(0.5,0.5,0.5,0.0); } else if(background%7==5) { glClearColor(0.2,0.5,0.8,0.0); } else{ glClearColor(1.0,1.0,1.0,0.0); } } void gantiWarnaKapal(int warnanya) //fungsi bwt ganti warna kapal { if(warnanya%7==0) { glColor3f(1.0,0.0,0.0); } else if(warnanya%7==1) { glColor3f(0.0,1.0,0.0); } else if(warnanya%7==2) { glColor3f(0.0,0.0,1.0); } else if(warnanya%7==3) { glColor3f(0.5,1.0,0.5); } else if(warnanya%7==4) { glColor3f(0.5,0.5,0.5); } else if(warnanya%7==5) { glColor3f(0.2,0.5,0.8); } else{ glColor3f(1.0,1.0,1.0); } } void kapal(void) //fungsi buat gambar kapal { glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0,0.0,0.0); //BODY KAPAL glBegin(GL_LINE_LOOP); glVertex2i(-200,100); glVertex2i(200,100); glVertex2i(150,0); glVertex2i(-150,0); glEnd(); //TIANG BENDERA glBegin(GL_LINE_STRIP); glVertex2i(-20,280); glVertex2i(-20,50); glEnd(); //BENDERA //glColor3f(0.9,0.7,0.0); glBegin(GL_LINE_LOOP); glVertex2i(-19,280); glVertex2i(-19,150); glVertex2i(50,230); glEnd(); //AIR glColor3f(0.3,0.3,0.7); glBegin(GL_LINES); glVertex2i(-100,-10); glVertex2i(100,-10); glVertex2i(-130,-20); glVertex2i(-50,-20); glVertex2i(150,-20); glVertex2i(60,-20); glVertex2i(80,-35); glVertex2i(-70,-35); glEnd(); gantiWarnaKapal(warnaKapal); //mengeload warna yang dipakai. //WARNA KAPAL glBegin(GL_QUADS); glVertex2i(-199,100); glVertex2i(199,100); glVertex2i(149,1); glVertex2i(-149,1); glEnd(); //WARNA BENDERA //glColor3f(0.9,0.7,0.0); glBegin(GL_TRIANGLES); glVertex2i(-19,280); glVertex2i(-19,150); glVertex2i(50,230); glEnd(); //glutSwapBuffers(); glFlush(); //mengirim gambar dari swap ke layar } void keyboard(unsigned char key, int x, int y) //fungsi penanganan keyboard { if(letak<-210 data-blogger-escaped-agar="" data-blogger-escaped-arah="" data-blogger-escaped-balik="" data-blogger-escaped-belakang="" data-blogger-escaped-bisa="" data-blogger-escaped-dari="" data-blogger-escaped-else="" data-blogger-escaped-fungsi="" data-blogger-escaped-ga="" data-blogger-escaped-gltranslatef="" data-blogger-escaped-if="" data-blogger-escaped-jalan="" data-blogger-escaped-kalau="" data-blogger-escaped-kapal="" data-blogger-escaped-keliatan="" data-blogger-escaped-letak="" data-blogger-escaped-udah="" data-blogger-escaped-yang="">210) { glTranslatef((3*-letak)*2,0.0,0.0); letak=-210; kapal(); } int warna; //variabel warna background switch(key) { //switch variabel key case 'r': //r untuk Random Background case 'R': warna=rand(); //random nilai integer gantibackground(warna); //memanggil fungsi gantibackground dengan passin parameter dari hasil random kapal(); //menampilkan kapal lagi dengan background baru break; //keluar case 'b': //b untuk Random warna kapal case 'B': warnaKapal=rand(); //random nilai integer kapal(); //menampilkan kapal lagi dengan warna kapal baru break; case 'a': //pindah posisi kapal kekiri case 'A': letak--; //mengetahui letak kapal (minus jika kekiri) warna=5; //memberi warna background bila digeser ke kanan gantibackground(warna); //mengganti warna background glTranslatef(-3.0,0.0,0.0); //menggeser letak kapal kapal(); //gambar ulang break; case 'd': //pindah posisi kapal kekanan case 'D': letak++; //mengetahui letak kapal (plus jika kekanan warna=4; //memberi warna background bila digeser ke kanan gantibackground(warna); //mengganti warna background glTranslatef(3.0,0.0,0.0); //menggeser letak kapal kapal(); //gambar ulang break; } } void main(int argc, char** argv) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(500,500); glutInitWindowPosition(100,100); glutCreateWindow("Coba | Kapal Layar - 672010179"); glutKeyboardFunc(keyboard); glutDisplayFunc(kapal); initial(); glutMainLoop(); }
Berikut adalah output dari coding diatas:
Output |
Gan,, ada project yang membuat transformasi ga ??
ReplyDeletedari sebuah bentuk menjadi bentuk lain??
tolong di share ya ke email q..
Blog : trik-os.blogspot.com
Jonathan_rere_kudus@yahoo.com
GBU
Oh..! maksutnya Tweening.?? kalau itu saya juga belum masuk ke materi tweening BroOO..! munkin 1/2 minggu depan..! :)
ReplyDelete