Jumping Balls

  • Uploaded by: ra7d_si2gar
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Jumping Balls as PDF for free.

More details

  • Words: 936
  • Pages: 14
balls Nurul Azizah Ihsan Satya Rama Resti sintya Ervina Sigit Wibowo Rahim Rasyid h ttp :// w w w . tu lisa n ku . co m

Pendahuluan  Balls adalah sebuah animasi yang dibuat

menggunakan C++ dan OpenGL  Beberapa bola yang selalu bergerak terus

menerus dan tidak akan keluar dari windows yang disediakan

h ttp :// w w w . tu lisa n ku . co m

Source Code http://openglc2.sourceforge.net/programs/balls

.zip Program Balls ini terdiri dari 3 buah file yaitu balls.cpp tgaload.cpp tgaload.h 

Yang akan dibahas pada presentasi ini hanya

file balls.cpp



h ttp :// w w w . tu lisa n ku . co m

balls.cpp File balls.cpp mempunyai 1 buah class dan

beberapa fungsi yaitu : class BallClass void init ( void ) void display(void) void reshape(int w, int h) void idle_func (void) int main(int argc, char** argv) 

h ttp :// w w w . tu lisa n ku . co m

balls.cpp -- class BallClass  class BallClass {  public:  float inc;  float yposo,vyo,ypos,times,ay;  float xposo,vxo,xpos,ax;  float rotate;  BallClass () {  rotate=5;  inc=.02;  yposo=2,vyo=0,ypos=2,times=0,ay=-9.8;  xposo=-2,xpos=2,ax=0;  int temp =random(20);  vxo=temp+1;  } 

h ttp :// w w w . tu lisa n ku . co m

balls.cpp -- init function  void init ( void ) {

        

tgaGetColorEXT(); //mengatur warna pada bagian yang ada di material dan jenis pencahayaannya. //pada sintaks ini yang diberikan pencahayaan adalah permukaan depan dengan cahaya ambient dan diffuse glColorMaterial ( GL_FRONT, GL_AMBIENT_AND_DIFFUSE ); //mengaktifkan fungsi GL_TEXTURE_2D //jika aktif, two-dimensional texturing is performed glEnable ( GL_TEXTURE_2D ); h ttp :// w w w . tu lisa n ku . co m

balls.cpp -- init function  //set pixel storage modes  //Specifies the alignment requirements for the start of

each pixel row in memory. The allowable values are 1 (byte-alignment), 2 (rows aligned to even-numbered bytes), 4 (word-alignment), and 8 (rows start on double-word boundaries).  glPixelStorei ( GL_UNPACK_ALIGNMENT, 1 );

 //glGenTextures: generate texture names. //1 menunjukkan banyaknya nama texture yang dibuat  //0 menunjukkan tempat penyimpanan texture  glGenTextures ( 1, 0 );  

 }

h ttp :// w w w . tu lisa n ku . co m

balls.cpp -- init function  //mengikat gambar dari texture ke objek yang texture enable  glBindTexture ( GL_TEXTURE_2D, 0 );  tgaLoadImage ( "fire.tga", &fire_image, TGA_FREE );

          }

//mengaktifkan fungsi GL_CULL_FACE //jika diaktifkan, maka menghilangkan polygon berdasarkan koordinat yang berkelok pada window glEnable ( GL_CULL_FACE ); //membersihkan nilai buffer dan memberikan nilai baru pada buffer glClearColor ( 0, 0.0, 1.0, 0.0 ); //memindahkan objek sesuai koordinat x,y, zoom glTranslatef ( 0.0, 0.0, zoom ); h ttp :// w w w . tu lisa n ku . co m

balls.cpp -- display function  void display(void) {

          

for (ballnum=0;ballnum < totalball; ballnum++) { d+=0.4; glPushMatrix ( ); //mengikat gambar dari texture ke objek yang texture enable glBindTexture ( GL_TEXTURE_2D, 0 ); //membuat objek quadric yang baru GLUquadricObj* q = gluNewQuadric ( );

h ttp :// w w w . tu lisa n ku . co m

balls.cpp -- display function  //menentukan cara penggambaran objek quadric.  //Quadrics yang diberikan dengan poligon primitif. Poligon            

digambar counterclokwish dengan normalnya gluQuadricDrawStyle( q, GLU_FILL );

//menentukan bentuk normal dari quadric //1 normal yang dihasilkan dari tiap verteks yang ada pada quadric gluQuadricNormals ( q, GLU_SMOOTH ); //menentukan apakah texture diberikan kepada quadric //GL_TRUE menandakan texture diberikan kepada quadric gluQuadricTexture ( q, GL_TRUE );

);

//memindahkan objek sesuai koordinat glTranslated ( ball[ballnum].xpos, ball[ballnum].ypos, -11.0 h ttp :// w w w . tu lisa n ku . co m

balls.cpp -- display function  //melakukan rotasi pada objek  glRotated(ball[ballnum].rotate,1,1,1); 

              }

//menggambar sebuah sphere (bola) gluSphere ( q, .3, 20, 20 ); //menghapus quadric gluDeleteQuadric ( q ); glPopMatrix ( ); } //mengaktifkan fungsi BLEND yang ada pada openGL //jika aktif, makan nilai warna RGBA yang masuk akan dicampur (blend) dengan nilai yang ada di buffer glEnable ( GL_BLEND ); glPopMatrix ( ); glutSwapBuffers ( ); glClear ( GL_COLOR_BUFFER_BIT );

h ttp :// w w w . tu lisa n ku . co m

balls.cpp -- idle function  void idle_func (void)  {  for (ballnum=0;ballnum < totalball; ballnum++) {  ball[ballnum].rotate+=((rand()%10));  ball[ballnum].times+=ball[ballnum].inc;  ball[ballnum].ypos=ball[ballnum].yposo +         

(ball[ballnum].vyo*ball[ballnum].times) + (.5*ball[ballnum].ay* (ball[ballnum].times*ball[ballnum].times)); ball[ballnum].xpos=ball[ballnum].xposo + (ball[ballnum].vxo*ball[ballnum].times) + (.5*ball[ballnum].ax*(ball[ballnum].times*ball[ballnum].times)); if ((ball[ballnum].ypos < -4.2)) { ball[ballnum].vyo=random(15); ball[ballnum].times=0; ball[ballnum].yposo=ball[ballnum].ypos; ball[ballnum].xposo=ball[ballnum].xpos; }

h ttp :// w w w . tu lisa n ku . co m

balls.cpp -- idle function  else if ((ball[ballnum].ypos> 4.2)) {  ball[ballnum].ay=1*ball[ballnum].ay;ball[ballnum].vyo=-1  *random(10);ball[ballnum].times=0;  ball[ballnum].yposo=ball[ballnum].ypos;  ball[ballnum].xposo=ball[ballnum].xpos;  }  else if ((ball[ballnum].xpos> 5.5)) {  ball[ballnum].vxo=-1-random(20);ball[ballnum].times=0;  ball[ballnum].xposo=ball[ballnum].xpos;ball[ballnum].yposo=ball[ballnum].ypos;  }  else if ((ball[ballnum].xpos< -5.5)) {  ball[ballnum].vxo=random(20);ball[ballnum].times=0;  ball[ballnum].xposo=ball[ballnum].xpos;ball[ballnum].yposo=ball[ballnum].ypos;  }

  }  glutPostRedisplay();  }

h ttp :// w w w . tu lisa n ku . co m

Rangkuman BallClass digunakan sebagai template untuk

membuat bola yang diinginkan. Menggunakan objek quadric untuk membuat bola dan menerapkan fungsi texture. Perintah glutPostRedisplay() yang menyebabkan bola terlihat bergerak terus secara acak. Akhirnya selesai juga presentasi ini. Terima kasih  

h ttp :// w w w . tu lisa n ku . co m

Related Documents

Jumping Balls
June 2020 17
Balls
April 2020 28
Balls
April 2020 33
Balls
September 2019 40
Balls
April 2020 27
Jumping Wals
November 2019 6