PROJEK KOMPUTER GRAFIK PESAWAT MENGGUNAKAN BAHASA C DENGAN APLIKASI CODE BLOCK 5302412019
Hai Guest , , ,
ada projek baru nih ,, , kalian pengen tau gak ,,,, hehe projek ini dibuat
untuk memenuhi tugas ahkir mata kuliah Komputer Grafik. Nama ku Okta
Purnawirawan di ahkir semester ini aku membuat suatu projek mengenai komputer
grafik. Di sini saya membuat sebuah alur cerita yaitu :
Kemudian selanjutnya, pada display kedua merupakan kelanjutan dari
cerita pada display ke satu, pesawat tersebut melintasi lagi di sekitar menara,
namun karena kondisi awan pada waktu itu mendung, maka ketinggian pesawat
menjadi diturunkan. Tempat dari dibangunya menara pada display ke dua ini
berbeda, karena dibangun di pinggir lautan, yang digambarkan oleh sebuah
daratan yang berwarna coklat dan ditumbuhi rumput hijau. Kemudian lautan yang
digambarkan dengan warna biru tua dan muda. Untuk jelasnya kamu bisa lihat
gambar di bawah ini :
Kemudian selanjutnya pada display yang terahkir, merupakan kelanjutan
dari cerita pada display ke dua, , pesawat tersebut melintasi lagi di sekitar
menara lagi. Namun karena kondisi cuaca yang gelap karena awan mendung, maka
tidak sengaja pesawat tersebut sayapnya menabrak sebagian bangunan dari menara.
Akibatnya, singkat cerita pesawat tersebut jatuh ke lautan beserta puing-puing
bangunan sebagian dari menara yang ditabraknya. Untuk jelasnya kamu bisa lihat
gambar di bawah ini :
Nahhh , , , selanjutnya apabila kalian semua penasaran dari cerita di
atas, kalian bisa coba sendiri di laptop atau komputer kalian kok , , , asalakan laptop atau komputer kalian sudah
terinstal oleh aplikasi code blocknya , , kalau belum ya , , segera di instal
saja hehe download juga bisa , , hehe. Kalau gitu coba saja sourcode dibawah
ini guest , , copy saja ke dalam aplikasi code block kalian , , oke. Untuk penjelasanya akan saya jelaskan
secara singkat , , kalau bingung hubungi saja di FB q Okta Purnawirawan
atau SMS di 085735497171
#include
<stdio.h> // Ini library dari code blocknya
#include
<stdlib.h>
#include <string.h>
#include
<stdarg.h>
#include
"SOIL.h"
#include
<GL/glut.h>
#include
<mmsystem.h> // library tambahan untuk memanggil musik
int a=0, b=0, c=0,
x=100;
void awan_s() //
Ini untuk membuat background suasana siang yang digambarkan awan putih
{
glBegin(GL_POLYGON);
glColor3f(1,1,1);
glVertex2f(700,450);
glVertex2f(0,400);
glEnd();
}
void awan_m() //
Ini untuk membuat background suasana medung yang digambarkan awan abu-abu gelap
{
glBegin(GL_POLYGON);
glColor3f(0.5,0.5,0.5);
glVertex2f(700,450);
glVertex2f(0,400);
glEnd();
}
void
awan_mendung() // Ini untuk membuat background suasana medung yang digambarkan
awan abu-abu mendung dan gelap
{
glBegin(GL_POLYGON);
glColor3f(0,0.3,0.5);
glVertex2f(0,450);
glVertex2f(700,450);
glColor3f(0.8,0.8,0.8);
glVertex2f(700,350);
glVertex2f(0,300);
glEnd();
}
void darat_s() //
Ini menggambarkan daratan warna coklat dan hijau
{
glBegin(GL_POLYGON);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex2f(0,25);
glVertex2f(700,25);
glColor3f(0.9,0.5,0.1);
glVertex2f(700,0);
glVertex2f(0,0);
glEnd();
}
void darat_m() //
ini menggambarkan lautan warna biru kegelapan
{
glColor3f(1.0,1.0,1.0);
glBegin(GL_POLYGON);
glColor3f(0,0,0);
glVertex2f(320,25);
glVertex2f(700,25);
glColor3f(0,0.3,0.5);
glVertex2f(700,0);
glVertex2f(320,0);
glEnd();
}
void puncak() //
bangunan puncak sampai kaki baris pada display ke 3 yang tertabrak oleh pesawat
{
/* leher 1*/
glColor3f(0.6,0.6,0.6);
glBegin(GL_POLYGON);
glVertex3f(100,310,0);
glVertex3f(120,300,0);
glVertex3f(200,300,0);
glVertex3f(220,310,0);
glEnd();
/* leher 2*/
glColor3f(0.4,0.4,0.4);
glBegin(GL_POLYGON);
glVertex3f(110,320,0);
glVertex3f(130,310,0);
glVertex3f(190,310,0);
glVertex3f(210,320,0);
glEnd();
/* leher 3 */
glColor3f(0.5,0.5,0.5);
glBegin(GL_POLYGON);
glVertex3f(120,330,0);
glVertex3f(140,320,0);
glVertex3f(180,320,0);
glVertex3f(200,330,0);
glEnd();
/* puncak */
glColor3f(1,0,0);
glBegin(GL_TRIANGLES);
glVertex3f(130,330,0);
glVertex3f(190,330,0);
glVertex3f(160,410,0);
glEnd();
/* kaki */
glColor3f(0.2,0.2,0.2);
glBegin(GL_POLYGON);
glVertex3f(130,180,0);
glVertex3f(130,300,0);
glVertex3f(190,300,0);
glVertex3f(190,180,0);
glEnd();
/* garis 1 */
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_LINE_LOOP);
glVertex2f(150,190);
glVertex2f(150,270);
glEnd();
/* garis 2 */
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(158,190);
glVertex2f(158,270);
glEnd();
/* garis 3 */
glColor3f(1,1,1);
glBegin(GL_LINE_LOOP);
glVertex2f(165,190);
glVertex2f(165,270);
glEnd();
/* bendera putih
*/
glColor3f(1,1,1);
glBegin(GL_POLYGON);
glVertex3f(145,285,0);
glVertex3f(145,280,0);
glVertex3f(175,280,0);
glVertex3f(175,285,0);
glEnd();
/* bendera merah*/
glColor3f(1,0,0);
glBegin(GL_POLYGON);
glVertex3f(145,290,0);
glVertex3f(145,285,0);
glVertex3f(175,285,0);
glVertex3f(175,290,0);
glEnd();
}
void batang() //
bangunan kaki sampai dasar bawah / dasar 3 yang masih bisa berdiri pada display
ke 3 ketika setelah ditabrak pesawat
{
/* dasar 1 */
glColor3f(0.2,0.2,0.2);
glBegin(GL_POLYGON);
glVertex3f(40,35,0);
glVertex3f(20,25,0);
glVertex3f(300,25,0);
glVertex3f(280,35,0);
glEnd();
/* dasar 2 */
glColor3f(0.4,0.4,0.4);
glBegin(GL_POLYGON);
glVertex3f(80,45,0);
glVertex3f(60,35,0);
glVertex3f(260,35,0);
glVertex3f(240,45,0);
glEnd();
/* dasar 3 */
glColor3f(0.6,0.6,0.6);
glBegin(GL_POLYGON);
glVertex3f(120,55,0);
glVertex3f(100,45,0);
glVertex3f(220,45,0);
glVertex3f(200,55,0);
glEnd();
/* kaki */
glColor3f(0.2,0.2,0.2);
glBegin(GL_POLYGON);
glVertex3f(130,55,0);
glVertex3f(130,180,0);
glVertex3f(190,180,0);
glVertex3f(190,55,0);
glEnd();
/* kotak 1 */
glColor3f(1,1,1);
glBegin(GL_POLYGON);
glVertex3f(150,65,0);
glVertex3f(150,75,0);
glVertex3f(170,75,0);
glVertex3f(170,65,0);
glEnd();
/* kotak 2 */
glColor3f(0,0,1);
glBegin(GL_POLYGON);
glVertex3f(150,85,0);
glVertex3f(150,95,0);
glVertex3f(170,95,0);
glVertex3f(170,85,0);
glEnd();
/* kotak 3 */
glColor3f(1,0,0);
glBegin(GL_POLYGON);
glVertex3f(150,105,0);
glVertex3f(150,115,0);
glVertex3f(170,115,0);
glVertex3f(170,105,0);
glEnd();
/* kotak 4 */
glColor3f(1,1,1);
glBegin(GL_POLYGON);
glVertex3f(150,125,0);
glVertex3f(150,135,0);
glVertex3f(170,135,0);
glVertex3f(170,125,0);
glEnd();
/* kotak 5 */
glColor3f(0,0,1);
glBegin(GL_POLYGON);
glVertex3f(150,145,0);
glVertex3f(150,155,0);
glVertex3f(170,155,0);
glVertex3f(170,145,0);
glEnd();
/* kotak 6 */
glColor3f(1,0,0);
glBegin(GL_POLYGON);
glVertex3f(150,165,0);
glVertex3f(150,175,0);
glVertex3f(170,175,0);
glVertex3f(170,165,0);
glEnd();
}
void menara() //
ini untuk membuat bangunan menara yang utuh berdiri pada slide ke satu dan
kedua
{
/* dasar 1 */
glColor3f(0.2,0.2,0.2);
glBegin(GL_POLYGON);
glVertex3f(40,35,0);
glVertex3f(20,25,0);
glVertex3f(300,25,0);
glVertex3f(280,35,0);
glEnd();
/* dasar 2 */
glColor3f(0.4,0.4,0.4);
glBegin(GL_POLYGON);
glVertex3f(80,45,0);
glVertex3f(60,35,0);
glVertex3f(260,35,0);
glVertex3f(240,45,0);
glEnd();
/* dasar 3 */
glColor3f(0.6,0.6,0.6);
glBegin(GL_POLYGON);
glVertex3f(120,55,0);
glVertex3f(100,45,0);
glVertex3f(220,45,0);
glVertex3f(200,55,0);
glEnd();
/* kaki */
glColor3f(0.2,0.2,0.2);
glBegin(GL_POLYGON);
glVertex3f(130,55,0);
glVertex3f(130,300,0);
glVertex3f(190,300,0);
glVertex3f(190,55,0);
glEnd();
/* kotak 1 */
glColor3f(1,1,1);
glBegin(GL_POLYGON);
glVertex3f(150,65,0);
glVertex3f(150,75,0);
glVertex3f(170,75,0);
glVertex3f(170,65,0);
glEnd();
/* kotak 2 */
glColor3f(0,0,1);
glBegin(GL_POLYGON);
glVertex3f(150,85,0);
glVertex3f(150,95,0);
glVertex3f(170,95,0);
glVertex3f(170,85,0);
glEnd();
/* kotak 3 */
glColor3f(1,0,0);
glBegin(GL_POLYGON);
glVertex3f(150,105,0);
glVertex3f(150,115,0);
glVertex3f(170,115,0);
glVertex3f(170,105,0);
glEnd();
/* kotak 4 */
glColor3f(1,1,1);
glBegin(GL_POLYGON);
glVertex3f(150,125,0);
glVertex3f(150,135,0);
glVertex3f(170,135,0);
glVertex3f(170,125,0);
glEnd();
/* kotak 5 */
glColor3f(0,0,1);
glBegin(GL_POLYGON);
glVertex3f(150,145,0);
glVertex3f(150,155,0);
glVertex3f(170,155,0);
glVertex3f(170,145,0);
glEnd();
/* kotak 6 */
glColor3f(1,0,0);
glBegin(GL_POLYGON);
glVertex3f(150,165,0);
glVertex3f(150,175,0);
glVertex3f(170,175,0);
glVertex3f(170,165,0);
glEnd();
/* garis 1 */
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_LINE_LOOP);
glVertex2f(150,190);
glVertex2f(150,270);
glEnd();
/* garis 2 */
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(158,190);
glVertex2f(158,270);
glEnd();
/* garis 3 */
glColor3f(1,1,1);
glBegin(GL_LINE_LOOP);
glVertex2f(165,190);
glVertex2f(165,270);
glEnd();
/* bendera putih
*/
glColor3f(1,1,1);
glBegin(GL_POLYGON);
glVertex3f(145,285,0);
glVertex3f(145,280,0);
glVertex3f(175,280,0);
glVertex3f(175,285,0);
glEnd();
/* bendera merah*/
glColor3f(1,0,0);
glBegin(GL_POLYGON);
glVertex3f(145,290,0);
glVertex3f(145,285,0);
glVertex3f(175,285,0);
glVertex3f(175,290,0);
glEnd();
/* leher 1*/
glColor3f(0.6,0.6,0.6);
glBegin(GL_POLYGON);
glVertex3f(100,310,0);
glVertex3f(120,300,0);
glVertex3f(200,300,0);
glVertex3f(220,310,0);
glEnd();
/* leher 2*/
glColor3f(0.4,0.4,0.4);
glBegin(GL_POLYGON);
glVertex3f(110,320,0);
glVertex3f(130,310,0);
glVertex3f(190,310,0);
glVertex3f(210,320,0);
glEnd();
/* leher 3 */
glColor3f(0.5,0.5,0.5);
glBegin(GL_POLYGON);
glVertex3f(120,330,0);
glVertex3f(140,320,0);
glVertex3f(180,320,0);
glVertex3f(200,330,0);
glEnd();
/* puncak */
glColor3f(1,0,0);
glBegin(GL_TRIANGLES);
glVertex3f(130,330,0);
glVertex3f(190,330,0);
glVertex3f(160,410,0);
glEnd();
}
void pesawat() //
ini untuk membuat bentuk body dari pesawat itu sendiri secara keseluruhan
{
/* sayap atas */
glColor3f(0.5,0.5,0.5);
glBegin(GL_POLYGON);
glVertex3f(100,410,0);
glVertex3f(100,360,0);
glVertex3f(170,360,0);
glVertex3f(130,410,0);
glEnd();
/* bendera merah
*/
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_POLYGON);
glVertex3f(110,400,0);
glVertex3f(110,395,0);
glVertex3f(130,395,0);
glVertex3f(130,400,0);
glEnd();
/* bendera putih
*/
glColor3f(1,1,1);
glBegin(GL_POLYGON);
glVertex3f(110,395,0);
glVertex3f(110,390,0);
glVertex3f(130,390,0);
glVertex3f(130,395,0);
glEnd();
/* garis 1 bwh
bendera*/
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_LINE_LOOP);
glVertex2f(105,365);
glVertex2f(155,365);
glEnd();
/* garis 2 bwh
bendera*/
glColor3f(1,1,1);
glBegin(GL_LINE_LOOP);
glVertex2f(105,370);
glVertex2f(145,370);
glEnd();
/* garis 3 bwh
bendera*/
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(105,375);
glVertex2f(135,375);
glEnd();
/* badan 1 */
glColor3f(0.9,0.9,0.9);
glBegin(GL_POLYGON);
glVertex3f(85,360,0);
glVertex3f(85,330,0);
glVertex3f(305,330,0);
glVertex3f(305,360,0);
glEnd();
/*badan 2*/
glColor3f(0, 0, 0);
glBegin(GL_POLYGON);
glVertex3f(85,330,0);
glVertex3f(130,310,0);
glVertex3f(305,310,0);
glVertex3f(305,330,0);
glEnd();
/*bawah badan 2*/
glColor3f(0.7,0.7,0.7);
glBegin(GL_POLYGON);
glVertex3f(150,310,0);
glVertex3f(85,295,0);
glVertex3f(250,295,0);
glVertex3f(300,310,0);
glEnd();
/* garis 1 bwh
badan 2*/
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_LINE_LOOP);
glVertex2f(145,305);
glVertex2f(270,305);
glEnd();
/* garis 2 bwh
badan 2*/
glColor3f(1,1,1);
glBegin(GL_LINE_LOOP);
glVertex2f(130,302);
glVertex2f(250,302);
glEnd();
/* garis 3 bwh
badan 2*/
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(110,299);
glVertex2f(230,299);
glEnd();
/* kepala */
glColor3f(0.5,0.5,0.5);
glBegin(GL_TRIANGLES);
glVertex3f(305,360,0);
glVertex3f(305,310,0);
glVertex3f(390,310,0);
glEnd();
/* pintu kepala*/
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_LINE_LOOP);
glVertex2f(310,340);
glVertex2f(310,315);
glVertex2f(325,315);
glVertex2f(325,340);
glEnd();
/* jendela
kepala*/
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(335,330);
glVertex2f(335,320);
glVertex2f(345,320);
glVertex2f(345,330);
glEnd();
/*bawah kepala*/
glColor3f(0, 0, 0);
glBegin(GL_POLYGON);
glVertex3f(310,310,0);
glVertex3f(330,303,0);
glVertex3f(360,303,0);
glVertex3f(380,310,0);
glEnd();
/*atas badan*/
glColor3f(0,0,0);
glBegin(GL_POLYGON);
glVertex3f(240,375,0);
glVertex3f(220,360,0);
glVertex3f(300,360,0);
glVertex3f(280,375,0);
glEnd();
/* bendera merah
*/
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_POLYGON);
glVertex3f(250,372,0);
glVertex3f(250,368,0);
glVertex3f(270,368,0);
glVertex3f(270,372,0);
glEnd();
/* bendera putih
*/
glColor3f(1,1,1);
glBegin(GL_POLYGON);
glVertex3f(250,368,0);
glVertex3f(250,364,0);
glVertex3f(270,364,0);
glVertex3f(270,368,0);
glEnd();
/* ekor */
glColor3f(0.5,0.5,0.5);
glBegin(GL_POLYGON);
glBegin(GL_POLYGON);
glVertex3f(75,350,0);
glVertex3f(75,340,0);
glVertex3f(85,330,0);
glVertex3f(85,360,0);
glEnd();
/* kotak belakang
ekor */
glColor3f(0,0,0);
glBegin(GL_POLYGON);
glBegin(GL_POLYGON);
glVertex3f(75,350,0);
glVertex3f(75,340,0);
glVertex3f(60,340,0);
glVertex3f(60,350,0);
glEnd();
/* kotak dalam
belakang ekor */
glColor3f(0,0,1);
glBegin(GL_POLYGON);
glBegin(GL_POLYGON);
glVertex3f(70,348,0);
glVertex3f(70,342,0);
glVertex3f(60,342,0);
glVertex3f(60,348,0);
glEnd();
/* pintu
belakang*/
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_LINE_LOOP);
glVertex2f(95,355);
glVertex2f(95,335);
glVertex2f(110,335);
glVertex2f(110,355);
glEnd();
/* jendela 1*/
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(120,350);
glVertex2f(120,340);
glVertex2f(130,340);
glVertex2f(130,350);
glEnd();
/* jendela 2*/
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(140,350);
glVertex2f(140,340);
glVertex2f(150,340);
glVertex2f(150,350);
glEnd();
/* jendela 3*/
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(160,350);
glVertex2f(160,340);
glVertex2f(170,340);
glVertex2f(170,350);
glEnd();
/* jendela 4*/
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(180,350);
glVertex2f(180,340);
glVertex2f(190,340);
glVertex2f(190,350);
glEnd();
/* jendela 5*/
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(200,350);
glVertex2f(200,340);
glVertex2f(210,340);
glVertex2f(210,350);
glEnd();
/* jendela 6*/
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(220,350);
glVertex2f(220,340);
glVertex2f(230,340);
glVertex2f(230,350);
glEnd();
/* jendela 7*/
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(240,350);
glVertex2f(240,340);
glVertex2f(250,340);
glVertex2f(250,350);
glEnd();
/* jendela 8*/
glColor3f(0,0,1);
glBegin(GL_LINE_LOOP);
glVertex2f(260,350);
glVertex2f(260,340);
glVertex2f(270,340);
glVertex2f(270,350);
glEnd();
/* pintu depan*/
glColor3f(1.0f, 0.0f, 0.0f);
glBegin(GL_LINE_LOOP);
glVertex2f(280,355);
glVertex2f(280,335);
glVertex2f(295,335);
glVertex2f(295,355);
glEnd();
/* jendela a*/
glColor3f(1,1,1);
glBegin(GL_LINE_LOOP);
glVertex2f(140,325);
glVertex2f(140,315);
glVertex2f(150,315);
glVertex2f(150,325);
glEnd();
/* jendela b*/
glColor3f(1,1,1);
glBegin(GL_LINE_LOOP);
glVertex2f(160,325);
glVertex2f(160,315);
glVertex2f(170,315);
glVertex2f(170,325);
glEnd();
/* jendela c*/
glColor3f(1,1,1);
glBegin(GL_LINE_LOOP);
glVertex2f(180,325);
glVertex2f(180,315);
glVertex2f(190,315);
glVertex2f(190,325);
glEnd();
/* jendela d*/
glColor3f(1,1,1);
glBegin(GL_LINE_LOOP);
glVertex2f(200,325);
glVertex2f(200,315);
glVertex2f(210,315);
glVertex2f(210,325);
glEnd();
/* jendela e*/
glColor3f(1,1,1);
glBegin(GL_LINE_LOOP);
glVertex2f(220,325);
glVertex2f(220,315);
glVertex2f(230,315);
glVertex2f(230,325);
glEnd();
/* jendela f*/
glColor3f(1,1,1);
glBegin(GL_LINE_LOOP);
glVertex2f(240,325);
glVertex2f(240,315);
glVertex2f(250,315);
glVertex2f(250,325);
glEnd();
/* jendela g*/
glColor3f(1,1,1);
glBegin(GL_LINE_LOOP);
glVertex2f(260,325);
glVertex2f(260,315);
glVertex2f(270,315);
glVertex2f(270,325);
glEnd();
/* jendela h*/
glColor3f(1,1,1);
glBegin(GL_LINE_LOOP);
glVertex2f(280,325);
glVertex2f(280,315);
glVertex2f(290,315);
glVertex2f(290,325);
glEnd();
}
void update(int
value) // fungsi agar pesawat dapat berjalan seperti animasi pesawat menjadi
terbang
{
a+=15.0; // arah pesawat jalan dan
kecepatan majunya ke arah garis x positiv
glutPostRedisplay();
glutTimerFunc(150,update,0); //
kehalusan gerakan pesat untuk bergerak
}
void display1() //
untuk menampilkan pada display pertama
{
glPushMatrix();
glTranslated(a,5,0.0); // sumbu x y
z kalau y z dikasih nilai pesawat tidk bisa muncul pengaruh garis sumbu
pesawat();
glPopMatrix();
menara();
darat_s();
awan_s();
//glFlush();
//glutSwapBuffers();
}
void display2() //
untuk menampilkan pada display kedua
{
menara();
glClearColor(0.8,0.8,0.8,0.8);
glPushMatrix();
glTranslated(b,-90,0.0); // tnda -
utk menurunkan posisi pswt dr atas pd slide 1 agk k bwh pd slide 2; semakin
besar angka pswt smkin trn posisiny
pesawat(); // tanda + posisi pswt di atas
lbh tinggi dr pda posisi pd slide 1
glPopMatrix();
darat_m();
awan_m();
//glPushMatrix(); TAMBAHAN ILMU DARI PAK ALFA
// glTranslated(-b,90-b,0.0); TAMBAHAN ILMU DARI PAK ALFA
// pesawat(); TAMBAHAN ILMU DARI PAK ALFA
//glPopMatrix(); TAMBAHAN ILMU DARI PAK ALFA
//glFlush();
//glutSwapBuffers();
}
void display3() //
untuk menampilkan pada display ketiga
{
glClear(GL_COLOR_BUFFER_BIT);
glClearColor(0.8,0.8,0.8,0.8);
x-=9; // tnda - spya pswat dn
menara jtuh k bwah ; + keduanya akan terbang ke atas/kebliknya karena rotasi
batang(); // nilai smkin bsar tinkat
kejatuhanya smakin tdk jls
darat_s();
glPushMatrix();
glTranslated(c,x,0.0);
glRotated(-45,0,0,1); // tnda - spya rotasi pada slide ke
3 dan grkn pas jtuh k bwah ang 45 mntukn posisi jatuh
pesawat();
puncak();
glPopMatrix();
awan_mendung();
darat_m();
//glFlush();
//glutSwapBuffers();
}
void display() //
fungsi display secara keseluruhan
{
glClear(GL_COLOR_BUFFER_BIT); // >
dibuat agar slide tampil secara bergantian ; < slide 3 kejadian terjadi
dalam satu waktu ; = hanya slide 2 yg main
display1();
if(a>700) // agar gerak pesawat di slide
1 selesai dlu kmudian slide 2/ tdk tumbukan
{
b+=10; // kecepatan gerak pesawat pada
display ke 2 ; tanda + supaya pesawat bergerak ke depan - bergerak ke belakang
display2();
}
if(b>700)
{
c+=10; // kecepatan gerak peswat pada
display ke 3 ; tanda + supaya pesawat bergerak ke depan - bergerak ke belakang
display3();
}
//gluLookAt(0.0, 0.1, 1.0, 0.0, 0.1, 0.0,
0.0, 1.0, 0.0);
glFlush();
glutSwapBuffers();
}
void stop() //
fungsi menu keyboard
{
a=b=0;
glutPostRedisplay();
}
void p_right()
{
a+=0.5;
glutPostRedisplay();
}
void p_left()
{
a-=1;
glutPostRedisplay();
}
void
keyboard(unsigned char key,int x,int y)
{
if(key=='s')
{
glutIdleFunc(stop);
glutPostRedisplay();
}
if(key=='r')
{
a=b=0;
glutPostRedisplay();
}
if(key==27) exit(0);
}
void
SpecialKeyboard(int key, int x, int y) {
//if(key==GLUT_KEY_UP) y_pos+=0.1f;
//if(key==GLUT_KEY_DOWN)
if(key==GLUT_KEY_LEFT)
{
glutIdleFunc(p_left);
}
if(key==GLUT_KEY_RIGHT)
{
glutIdleFunc(p_right);
}
}
void myinit()
{
glClearColor(1.0,1.0,1.0,1.0);
//glColor3f(1.0,1.0,1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0,700.0,0.0,450,0.0,350.0);
glMatrixMode(GL_MODELVIEW);
}
void music(void)
// fungsi untuk memasukkan efek suara pesawat dari file musik yang satu folder
sama projek ini
{
PlaySound("pesawat.wav",
NULL,SND_ASYNC|SND_FILENAME); // PlaySound("suara_pesawat.wav",
NULL,SND_ASYNC|SND_FILENAME|SND_LOOP);
//getch():
}
int main(int
argc,char** argv) //MAIN
FUNCTION
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE |
GLUT_RGB);
glutInitWindowSize(800,700);
glutInitWindowPosition(300,0);
glutCreateWindow("Projek Akhir
5302412019 Okta Purnawirawan");
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutSpecialFunc(SpecialKeyboard);
myinit();
music();
glutTimerFunc(100,update,0);
glutMainLoop();
}
Selanjutnya tambahkan file musik satu folder dengan projek anda, yang
sesuai dengan gambar di bawah ini :
Kemudian tambahkan
fungsi library pada projek build options yaitu : libfreeglut, libopengl32,
libglu32, libSOIL. Sesuai dengan gambar di bawah ini :
Kemudian kalau sudah jalankan dengan mengeklik icon Build and Run.
**** SELAMAT BERKODING ****
good,kalo mau buat tnpa berslide2 gimana ?
BalasHapus