Salah satu hal
menyenangkan dalam memprogram Java adalah menciptakan grafika dengan efek
animasi. Di buku ini, Anda akan
mempelajari banyak teknik animasi
dan grafika secara bertahap, langkah
demi langkah.
Pada Bab 1, Anda akan belajar tentang salah satu efek animasi paling sederhana
adalah dengan melakukan penggantian antar dua citra. Anda memiliki
sebuah citra dengan warna latar merah. Dengan mengganti warna citra tersebut
menjadi hijau, Anda bisa memberikan efek
animasi. Kontrol label yang dipakai untuk melakukan efek animasi semacam ini
memanfaatkan apa yang dinamakan dengan objek ImageIcon.
Pada Bab 2, Anda akan
mengembangkan animasi sederhana sehingga melibatkan lebih dari dua file
grafika. Di sini, Anda akan
mempelajari
pewaktu (Timer). Pada
Bab 3, Anda akan membangun
projek animasi dengan melibatkan pewaktu dengan melibatkan
n buah file citra, sehingga
menghasilkan efek animasi yang lebih halus. Pada Bab 4, Anda akan mempelajari tentang bilangan acak. Bilangan
acak dipakai pada banyak game. Java memiliki pembangkit bilangan acak yang
diciptakan menggunakan kelas Random.
Kelas ini berada pada paket java.util.Random.
Pada Bab 5,
Anda akan belajar tentang dua kelas Java: Graphics
dan Graphics2D (versi terperbaiki).
Kedua kelas ini menawarkan sejumlah metode grafika yang dapat dipakai untuk
menggambar garis, bangun rektangular, bangun elips, bangun pie, dan poligon.
Pada Bab 6,
Anda akan mempelajari bagaimana teknik penggambaran persisten, sehingga jika
Anda mengecilkan atau membesarkan ukuran frame, maka objek grafika tetap mampu
mengingat apa yang ditampilkan sebelumnya.
Pada
Bab 7, Anda
akan mempelajari rektangular, yang direpresentasikan oleh bangun Rectangle2D. Pada Bab 8, Anda akan mempelajari bangun Elips. Bangun ini dapat
didefinisikan, digambar, dan diisi menggunakan metode-metode yang hampir
identik dengan metode-metode rektangular.
Pada
Bab 9, Anda akan mempelajari
tentang bangun busur. Segmen busur dapat didefinisikan
menggunakan bangun Arc2D.
Pada Bab 10,
Anda akan mengembangkan projek untuk menciptakan grafik garis, grafik batang,
dan grafik pie menggunakan Java.
Pada Bab 11,
Anda akan mempelajari bagaimana menyediakan interaksi user pada sebuah
aplikasi. Di sini, Anda akan memahami event-event mouse. Anda juga akan
menuliskan projek untuk menciptakan sebuah papan lukis. Pada papan tersebut,
Anda bisa membuat goresan-goresan dengan sejumlah warna menggunakan mouse.
Pada Bab 12,
Anda akan merevisi projek papan lukis, sehingga penggambaran menjadi persisten.
Anda akan belajar menggunakan objek Vector
untuk menyimpan setiap garis berwarna yang digambarkan pada papan lukis.
Pada Bab 13,
Anda akan mempelajari objek-objek bangun yang menjelaskan garis dan segmen
kurva dengan menghubungkan titik-titik menggunakan kelas Point2D dan GeneralPath.
Pada Bab 14,
Anda akan belajar menggunakan objek GeneralPath
untuk menggambar segmen-segmen kurva. Ada dua metode yang bisa dipakai untuk
menggambar segmen kurva: quadTo dan curveTo.
Pada Bab 15,
Anda akan mempelajari bagaimana menganimasi kurva, dengan melibatkan objek Timer.
Pada Bab 16,
Anda akan mempelajari kelas GradientPaint.
Kelas ini dapat dipakai untuk mengisi sebuah bangun dengan campuran atas dua
warna, yang pada awalnya dimulai dengan satu warna dan secara bertahap menjadi
warna lain pada arah yang ditentukan.
Pada Bab 17,
Objek penggambaran lain yang disediakan pada Java 2D adalah objek TexturePaint akan didiskusikan. Objek
ini melukis sebuah luasan dengan region rektangular berulang.
Pada Bab 18,
Anda menggunakan metode grafika drawImage
untuk efek animasi. Pada bentuknya yang paling sederhana, metode ini menggambar
sebuah objek citra pada posisi tertentu di dalam sebuah objek grafika. Anda
juga akan membangun sebuah projek dimana sebuah bola akan memantul dari atas ke
bawah panel.
Pada Bab 19,
Anda akan mempelajari tentang animasi yang melibatkan penggulungan latar. Anda
akan mengetahui bahwa apa yang tampak hebat sekali sebenarnya hanyalah aplikasi
sederhana dari metode drawImage.
Pada Bab 20,
Anda mempelajari cara untuk melihat apakah dua item bertubrukan atau tumpang
tindih atau beririsan. Pengujian tubrukan dilakukan menggunakan metode createIntersection dari kelas Rectangle2D. Anda juga akan membangun
sebuah projek, dimana Anda akan menggunakan kunci-kunci kontrol kursor untuk
memindahkan satu rektangular dan memeriksa apakah ia bertubrukan dengan
rektangular kedua.
Pada Bab 21,
Anda akan belajar bagaimana mengimplementasikan aplikasi Stopwatch. Pada projek tersebut, akan digunakan sembilan kontrol
pada frame: tiga tombol (kelas JButton),
tiga label (kelas JLabel), dan tiga
bidang teks (kelas JTextField).
Tombol-tombol akan memulai dan menghentikan pewaktuan. Label-label dan
bidang-bidang teks akan dipakai untuk menampilkan hasil pewaktuan. Anda akan
menempatkan kontrol-kontrol ini pada sebuah array 3 x 3.
Pada Bab 22,
Anda akan belajar membangun aplikasi Stopwatch
Mode-Ganda. Stopwatch ini dapat dimulai dan dihentikan kapanpun diinginkan.
Dua waktu akan dijejak: waktu berlalu ketika stopwatch aktif (waktu berjalan)
dan total waktu yang berlalu, mulai dari saat stopwatch pertama kali dimulai
sampai akhirnya stopwatch dihentikan.
Pada Bab 23, Anda akan belajar membangun aplikasi Kalkulasi Pinjaman. Kontrol-kontrol label dipakai untuk informasi judul.
Empat bidang teks dipakai untuk masukan user. Area teks (areaTeksAnalisis) dipakai untuk menampilkan analisis pinjaman. Pada bab 4, Anda akan belajar membangun
game Kuis Pilihan Berganda yang
memberikan kuis kepada user tentang propinsi dan ibukotanya. Projek ini
mengilustrasikan penggunaan menu dan pembacaan informasi dari file (menggunakan
kontrol dialog open file) dalam projek Java.
Pada Bab 24, Anda akan belajar membangun game Kuis Pilihan Berganda yang memberikan
kuis kepada user tentang propinsi dan ibukotanya. Projek ini mengilustrasikan
penggunaan menu dan pembacaan informasi dari file (menggunakan kontrol dialog
open file) dalam projek Java.
Pada Bab 25, Anda akan belajar membangun program Game Matematika Dasar.
Soal-soal matematika dasar acak (penjumlahan, pengurangan, perkalian, dan/atau
pembagian) menggunakan nilai-nilai dari 0 sampai 9 akan disajikan. Opsi-opsi
pewaktuan disediakan untuk membangun keakuratan dan kecepatan.
Pada Bab 26, Anda akan belajar membangun sebuah
program game Kartu BlackJack. Pada game ini, Anda akan
belajar bagaimana mengimplementasikan game untuk bermain melawan komputer.
Pada Bab 27,
Anda akan belajar membangun sebuah aplikasi yang menjejak berat badan setiap
harinya dan membantu user memonitor turun naik dari berat badannya. Pada projek
ini, user dapat memilih tanggal dari sebuah kalender dan memasukkan berat
badannya untuk tanggal tersebut. Grafik dari berat badan harian akan
ditampilkan.
Pada Bab 28,
Anda akan belajar membangun aplikasi Inventori
Barang ini yang dimaksudkan untuk
menjejak semua barang berharga yang Anda miliki. Untuk setiap item inventori,
program akan menyimpan penjelasan, lokasi, nomor seri, informasi penjualan, dan
bahkan foto.
Pada Bab 29,
Anda akan belajar membangun game Lempar
Salju, dimana dua pemain saling
melempar salju ke arah satu sama lain. Di sini, Anda akan belajar mengenal
konsep-konsep pemrograman game: animasi, deteksi tubrukan, kendali keyboard,
dan suara. Anda juga akan belajar menerapkan konsep pemrograman berorientasi-objek,
khususnya pewarisan, dalam pemrograman game.
Pada Bab 30, Anda akan membangun game Kode
Rahasia. Kotak deposit bank dikunci dan hanya dapat dibuka jika user memasukkan
kombinasi yang tepat. Kombinasi ini dapat berupa 2 sampai 4 dijit tak-berulang
(rentang dijit 1 sampai 9). Setelah user mamasukkan tebakan, ia akan diberitahu
berapa banyak dijit yang tepat dan berapa banyak dijit yang berada pada posisi
yang tepat. Dengan menggunakan informasi ini, user bisa memberikan tebakan
selanjutnya. User dapat terus memberikan tebakan sampai kombinasi dijit.
Pada Bab 31, Anda akan membangun game Tic Tac Toe.
Konon, ini merupakan game pertama yang diprogram di komputer dan salah satu
program yang ditulis oleh Bill Gates ketika ia masih remaja di Seattle. Tujuan
dari game ini adalah sebuah garis lurus dengan tiga simbol X atau 3 simbol O
pada sebuah grid 3 x 3. Garis lurus itu bisa berupagaris lurus horisontal,
vertikal, atau diagonal. Giliran bermain akan diberikan secara bergantian.
Versi game yang dibangun di sini membolehkan permainan oleh dua pemain atau
satu pemain melawan komputer.
Pada Bab 32, Anda akan membangun sebuah game
Mencocokkan Citra. Sepuluh pasang citra disembunyikan pada papan permainan.
Tujuan game adalah mencari pasangan-pasangan citra. Pada mode Dua Pemain, para
pemain akan mendapat giliran secara bergantian. Pada mode Satu Pemain, ada dua
opsi yang bisa dipilih: Bermain Sendiri atau Lawan Komputer. Bila opsi Bermain
Sendiri dipilih, pemain akan bermain sendiri tanpa lawan. Jika opsi Lawan
Komputer dipilih, maka tingkat kecerdasan komputer disediakan pada beberapa
tingkat sesuai dengan level kesulitan game yang disediakan.
Pada Bab 33, Anda akan membangun game Bahtera Nuh.
Ini merupakan game sederhana. Sampai dengan 10 kurakura akan berlomba masuk ke
bahtera Nuh. Anda menebak dua kura-kura yang Anda anggap bisa memenangkan
perlombaan. Dengan mengklik tombol Mulai, perlombaan akan dimulai. Semua
kura-kura akan berlomba kecepatan untuk sampai ke garis akhir.
Pada Bab 34, Anda akan membangun game Elias dan
Burung Gagak. Burung gagak terbang dan menjatuhkan roti dari langit. User
ditantang untuk memosisikan Elias di bawah roti yang jatuh untuk menangkapnya
sebagai makanan.
Pada Bab 35, Anda akan membangun game Daniel dan
Singa. Daniel ditempatkan pada sebuah grid dengan sejumlah singa (dan empat
batu). Idenya adalah agar Daniel bisa mengeliminasi atau menaklukkan setiap
singa dengan cara menembakkan doa. Game akan berakhir ketika Daniel menaklukkan
semua singa atau apabila singa menempati posisi Daniel.