Membuat ayunan 2D dengan fungsi Timer opengl

Pada postingan ini saya akan membagikan tugas yang saya buat di kampus saya pada mata kuliah komputer grafik. timer merupakan salah satu materi yang terdapat pada mata kuliah komputer grafik dimana Anda harus membuat gambar dan pada gambar yang telah dibuat diharuskan untuk melakukan pergerakan dengan menggunakan timer. seperti contoh : sebuah perahu yang berlayar dari arah kanan ke kiri atau sebaliknya, sebuah efek hujan, atau bahkan sebuah ayunan seperti yang akan saya bagikan pada Anda. 

karena ayunan yang digambarkan hanya berbentuk 2D jadi mohon dimaklumi yah jiga timer untuk ayunan bergerak dibuat bergerak dari kanan ke kiri. (untuk Anda yang ingin mengetahui gambar 3D bisa melihat postingan tentang Membuat Kamera 3D dengan opengl )

untuk membuat gambar seperti diatas, pertama saya menggambarkan 3 buah persegi yang akan digunakan sebagai tiang ayunan, kemudian 2 buah garis lurus yang akan digunakan untuk tali ayunan dan yang terakhir yaitu 1 persegi sebagai tempat duduk ayunan.

berikut cheat untuk Anda yang ingin membuat ayunan dengan menggunakan opengl. Untuk Anda yang sudah mengetahui tentang skrip dibawah maka ini cukup membantu Anda yang kebingungan dalam menentukan gambar apa yang harus dibuat untuk sebuah efek timer di opengl, sementara untuk Anda yang belum mengerti efek dibawah ini maka Anda harus banyak belajar lagi sama seperti saya hehehe.


#include 
#include 
#include 
int x =0;
int zputer=0;
int zbalik=45;
int ujung,r=0;

//membuat fungsi timer yang akan digunakan untuk menggerakan ayunan
void timer(int value)
{

    if(r <= 45 && ujung==0 )
    {
        x++;
        if  (x==45)
            {
                ujung=1;
            }
    }
    else if(ujung == 1 && r>-45)
    {
        x--;
        if(x==-45)
        {
            ujung=0;
        }
    }

    glutPostRedisplay();
    glutTimerFunc(25,timer,0);
}
//fungsi yang digunanak untuk menggambar tiang ayunan
void draw()
{
    glBegin(GL_QUADS);
    glClear(GL_COLOR_BUFFER_BIT);
    glVertex2d(-250,0);
    glVertex2d(-250,-400);
    glVertex2d(-200,-400);
    glVertex2d(-200,0);

    glVertex2d(200,0);
    glVertex2d(200,-400);
    glVertex2d(250,-400);
    glVertex2d(250,0);

    glVertex2d(-250,-70);
    glVertex2d(-250,0);
    glVertex2d(250,0);
    glVertex2d(250,-70);

    glEnd();
}
//fungsi yang digunanak untuk menggambar tempat duduk ayunan
void draw123() { glBegin(GL_QUADS); glClear(GL_COLOR_BUFFER_BIT); glVertex2d(-50,-300); glVertex2d(-50,-270); glVertex2d(50,-270); glVertex2d(50,-300); glEnd();
//GL_LINES digunakan untuk menggambar garis yang akan digunakan sebagai tali ayunan
    glBegin(GL_LINES);
    glClear(GL_COLOR_BUFFER_BIT);
    glVertex2f(-20,-300);
    glVertex2f(-20,-30);

    glVertex2f(20,-300);
    glVertex2f(20,-30);

    glEnd();
}

    void display2()
    {
        glClear(GL_COLOR_BUFFER_BIT);
        glPushMatrix();
        glRotated(x,0,0,1);
        draw123();
        glPopMatrix();
        draw();

        glFlush();
    }


int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
    glutInitWindowPosition(100,100);
    glutInitWindowSize(480,480);
    glutCreateWindow("animasi by timer");
    gluOrtho2D(-500.0,500.0,-500.0,500.0);
    glutDisplayFunc(display2);

    glutTimerFunc(100,timer,0); //memanggil fungsi timer yang dibuat
    glutMainLoop();
    return 0;
}

Sekian postingan yang saya buat jika ada kurang dan lebihnya mimin mohon maaf, semoga postingan diatas dapat bermanfaat untuk Anda yang sedang mencari contoh membuat bentuk 2 dimensi dengan menggunakan timer di opengl. Jika postingan ini bermanfaat jangan lupa di share ya..
SHARE

Unknown

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

1 komentar: