Kamis, 17 Juli 2014

Final Project Pemodelan 3D dan Animasi

Permainan Segitiga Berwarna

Deskripsi

            Segitiga berwarna merupakan sebuah permainan sederhana yang mempunyai 6 inputan yaitu A,S,D,J,K,L di mana masing-masing inputan memiliki warna yang berbeda. untuk mendapatkan nilai cukup menekan tombol yang sesuai dan dengan posisi node yang sama yang akan melewati nya.


Story Board


  • A merupakan sebuah segitiga berwarna yang akan bergerak menuju kebawah ke titik node point tombol. Warna dan spawn point sesuai dengan node point segitiga
  • B merupakan sebuah text yang berisikan nilai ketika seorang pemain berhasil menekan tombol yang sesuai dengan benar
  • C merupakan batas waktu bagi pemain untuk mendapatkan nilai tertinggi
  • D merupakan sebuah statement dimana ketika pemain berhasil menekan dengan benar dan tepat maka statement kena akan tertampil
  • E merupakan node point segitiga. Di mulai dari sebelah kiri hingga kanan . 1-6 node 1=A=warna ungu , 2=S=warna birumuda , 3=D=warna kuning, 4=J=warna biru, 5=K=warna hijau, 6=L=warna merah.

FlowChart

Pembuatan node point segitiga dan warna



posisi segitiga bisa bergerak seakan turun


Posisi munculnya segitiga dan warna


Nilai/Score



Implementasi Program pada basic4gl

TextMode (TEXT_OVERLAID)
dim putar#,cx#,cy#,pelurux#,soal#,turun#,hitung#,stat,benarsalah$,nilai#,statkena,waktu#

turun#=15
hitung#=0
waktu#=60
stat=true 

while true                  
glclear(GL_DEPTH_BUFFER_BIT OR GL_COLOR_BUFFER_BIT)
glLoadIdentity ()
glTranslatef (0,0,-20)
                      
locate 7, 20: print "A"
locate 12, 20: print "S"
locate 17, 20: print "D"
locate 22, 20: print "J"
locate 27, 20: print "K"
locate 32, 20: print "L"

'locate 12,12: print turun#
'locate 15,15: print soal#
'status text
locate 1,1: print "Nilai " + nilai#
locate 25,1: print "Waktu " + waktu#
'status text

'status text
if statkena then
if waktu#>1 then
benarsalah$="kena"
:endif
else
benarsalah$="...."
:endif
locate 18,12: print benarsalah$ 
'status text

if stat=true then
hitung#=hitung#+0.1
'block translate node
if hitung#<200 data-blogger-escaped-:endif="" data-blogger-escaped-hitung="" data-blogger-escaped-if="" data-blogger-escaped-then="" data-blogger-escaped-turun="">200 then
hitung#=0
turun#=15
statkena=false
soal#=rnd()%7 
:endif
'block tanslate node
:endif

if waktu#<=1 then
stat=false
statkena=true       
benarsalah$=" Tekan Space \nuntuk main lagi.."
:endif
if waktu#>1 then
waktu#=waktu#-0.001
:endif


'block node
gltranslated (-10,-5,0)
glColor3f (1, 0, 1)
gosub plan
gltranslatef (4,0,0)
glColor3f (0, 1, 1)
gosub plan
gltranslatef (4,0,0)
glColor3f (1, 1, 0)
gosub plan
gltranslatef (4,0,0)
glColor3f (0, 0, 1)
gosub plan                                                    
gltranslatef (4,0,0)
glColor3f (0, 1, 0)
gosub plan
gltranslatef (4,0,0)
glColor3f (1, 0, 0)
gosub plan
'block node

'block node
if soal#=1 then 
gltranslatef (-20,turun#,0)
glColor3f (1, 0, 1)
:endif

if soal#=2 then 
gltranslatef (-16,turun#,0)
glColor3f (0, 1, 1)
:endif 

if soal#=3 then 
gltranslatef (-12,turun#,0)
glColor3f (1, 1, 0)
:endif

if soal#=4 then 
gltranslatef (-8,turun#,0)
glColor3f (0, 0, 1)
:endif

if soal#=5 then 
gltranslatef (-4,turun#,0)
glColor3f (0, 1, 0)
:endif  

if soal#=6 then 
gltranslatef (0,turun#,0)
glColor3f (1, 0, 0)
:endif

gosub plan
'block node

'block input
DrawText()
swapBuffers()
 while SyncTimer (100)
        if KeyDown ("A") then 
        if soal#=1 then
        if turun#<0 data-blogger-escaped-and="" data-blogger-escaped-turun="">-5 then     
        nilai#=nilai#+25
        statkena=true
        :endif
        :endif
        :endif 

        if KeyDown ("S") then 
        if soal#=2 then
        if turun#<0 data-blogger-escaped-and="" data-blogger-escaped-turun="">-5 then     
        nilai#=nilai#+25
        statkena=true
        :endif
        :endif
        :endif 

        if KeyDown ("D") then
        if soal#=3 then
        if turun#<0 data-blogger-escaped-and="" data-blogger-escaped-turun="">-5 then     
        nilai#=nilai#+25
        statkena=true
        :endif
        :endif
        :endif  

        if KeyDown ("J") then
        if soal#=4 then
        if turun#<0 data-blogger-escaped-and="" data-blogger-escaped-turun="">-5 then     
        nilai#=nilai#+25
        statkena=true
        :endif
        :endif
        :endif   

        if KeyDown ("K") then
        if soal#=5 then
        if turun#<0 data-blogger-escaped-and="" data-blogger-escaped-turun="">-5 then     
        nilai#=nilai#+25
        statkena=true
        :endif
        :endif
        :endif      

        if KeyDown ("L") then
        if soal#=6 then
        if turun#<0 data-blogger-escaped-and="" data-blogger-escaped-turun="">-5 then     
        nilai#=nilai#+25
        statkena=true
        :endif
        :endif
        :endif
                       
        if ScanKeyDown (VK_Space) then
        if stat=false then
        stat=true
        statkena=false
        nilai#=0
        waktu#=60
        :endif
        :endif

 wend 
 'block input
wend 

peluru:
glBegin(GL_QUADS)                                  
glVertex2f( -1, 1)                                                      
glVertex2f(-1,-1)
glVertex2f(1,-1)
glVertex2f(1,1)                       
glEnd() 
return 

plan:
glBegin(GL_TRIANGLES)                                  
glVertex2f( 0, 1)                                                      
glVertex2f(-1,-1)
glVertex2f(1,-1)                       
glEnd()
return


Hasil Implementasi Program :

Sumber: http://andresatriaa.blogspot.com/2014/07/final-project-3d-dan-animasi.html  

Tidak ada komentar:

Posting Komentar

 
;
notifikasi
close