Anda di halaman 1dari 33

PEMROGRAMAN GAME

DASAR
YENI NURHASANAH, S.PD.,
M.T

11/15/2021
CAPAIAN PEMBELAJARAN

• Mahasiswa
memahami, memiliki wawasan dan
mampu mengimplementasikan transformasi objek
• Review variable, fungsi, conditional statements,
loops dan array

11/15/2021
VARIABEL
• Contoh:

11/15/2021
OPERASI MATEMATIKA PADA VARIABEL

• Penjumlahan
• Pengurangan
• Perkalian
• penjumlahan

11/15/2021
TOPIK

1. Pengenalan C#
2. Mahasiswa memahami transformasi pada objek
3. Mahasiswa mampu membuat control terhadap sebuah transformasi pada
objek
4. Mahasiswa memahami fungsi input dalam unity

11/15/2021
TRANSFORMASI

• Transformasi adalah perubahan posisi suatu objek ke posisi lain atau perubahan
bentuk suatu objek ke objek lain menurut suatu aturan tertentu

• Transformasi banyak digunakan untuk menggambar suatu objek dengan bentuk


bentuk lain objek simetris dan untuk keperluan animasi

11/15/2021
TRANSFORMASI

• Transformasi pada sebuah game objek dapat dikontrol dengan membuat


fungsi yang sesuai dengan transformasi yang diberikan kepada game objek
tersebut.
• Transformasi pada unity dapat mengubah posisi sebuah objek baik dalam
sumbux, y ataupun sumbu z
• Selain itu juga, objek dapat dikontrol perubahannya dalam rotasi dan
skalanya.
11/15/2021
JENIS TRANSFORMASI
• Jenis transformasi :

- Transformasi objek
Semua titik pada suatu objek akan diubah dengan aturan tertentu, sistem koordinat tetap

- Transformasi sistem koordinat


Objek tetap, tapi sistem koordinatnya berubah sehingga posisi objek mengalami
penyesuaian
11/15/2021
TRANSFORMASI DASAR

• Beberapa transformasi dasar :


 Translation (Penggeseran )
 Scaling (penskalaan)
 Rotation (Pemutaran)

11/15/2021
TRANSLASI

Penggeseran dilakukan dengan penambahan posisi awal dengan translasion vektor atau shift vektor (trx,try)
trx = pergeseran arah sumbu x (absis)
try = pergeseran arah sumbu y (ordinat)

Koordinat baru hasil translasi secara sederhana dapat ditulis sbg:


x’ = x+ trx
y’ = y+ try dimana x’,y’ merupakan koordinat hasil translasi
x dan y adalah koordinat awal
trx,try adalah vektor tranlasi

11/15/2021
OBJEK TRANSLASI

11/15/2021
CONTOH TRANSLASI
Untuk menggambarkan translasi s
uatu objek yang berupa segitiga de Titik B
ngan koordinat A(10,10), B(30,10)
x’B = xB + trx = 30+10 = 40
, dan C(10,30) dengan translation 
vector (10,20), pertama tama dihit y’B = yB + try = 10+20 = 30
ung koordinat hasil translasi Hasil translasi titik B’(40,30)
Titik A Titik C
x’A = xA + trx = 10+10 = 20 x’C = xC + trx = 10+10 = 20
y’A = yA + try = 10+20 = 30 y’C = yC + try = 30+20 = 50
Hasil translasi titik A’(20,30) Hasil translasi titik C’(20,50) 11/15/2021
TRANSLASI OBJEK PADA UNITY
Transform.translat
e
Bentuk 1:
public void Translate(Vector3 translation);
public void Translate(Vector3 translation, Space relativeTo = Space.Self);

fungsi ini adalah fungsi pergerakan transformasi pada arah dan jarak dari translasi.
Jika relativeTo diatur ke Space.Self, maka gerakan ini diterapkan relatif terhadap
sumbu transform lokal . (sumbu x, y dan z yang ditampilkan saat memilih objek di
dalam Tampilan Scene). Jika relativeTo diatur ke Space.World, gerakan
11/15/2021 tersebut
diterapkan relatif terhadap sistem koordinat dunia. Contoh:
CONTOH PROGRAM

11/15/2021
Transform.translate

Bentuk 2:
public void Translate(float x, float y, float z);
public void Translate(float x, float y, float z, Space relativeTo = Space.Self);

Memindahkan transformasi dengan x sepanjang sumbu x, y sepanjang sumbu y,


dan z sepanjang sumbu z.
Jika relativeTo diatur ke Space.Self, maka gerakan ini diterapkan relatif terhadap
sumbu transform lokal . (sumbu x, y dan z yang ditampilkan saat memilih objek
di dalam Tampilan Scene). Jika relativeTo diatur ke Space.World, gerakan
tersebut diterapkan relatif terhadap sistem koordinat dunia.

11/15/2021
CONTOH PROGRAM

11/15/2021
Bentuk 3:
public void Translate(Vector3 translation, Transform relativeTo);

• Memindahkan transformasi ke
arah dan jarak translasi.
• Pergerakan ini diterapkan relatif
terhadap sistem koordinat lokal
relatifTo. Jika relatifTo adalah
nol, gerakan diterapkan relatif
terhadap sistem koordinat
dunia.

11/15/2021
bentuk 4:
public void Translate(float x, float y, float z, Transform
relativeTo);
• Memindahkan transformasi dengan
x sepanjang sumbu x, y sepanjang
sumbu y, dan z sepanjang sumbu z.
• Pergerakan ini diterapkan relatif
terhadap sistem koordinat lokal
relatifTo. Jika relatifTo adalah nol,
gerakan diterapkan relatif terhadap
sistem koordinat dunia.
11/15/2021
ROTASI
• Memindahkan sebuah objek menurut garis melingkar
• Untuk melakukan rotasi diperlukan sudut rotasi a dan pivot
point(xp,yp)
• Nilai sudut rotasi positif menentukan arah rotasi berlawanan dengan
arah jarum jam sedangkan sudut rotasi negatif memutar objek searah
jarum jam
• Untuk melakukan rotasi dengan koordinat titik asal (x,y) dengan sudut
rotasi a adl:
x’= x cos a – y sin a
y’= y sin a + y cos a
• Untuk rotasi dengan sembarang pivot point (xp,yp):
x’= xp + (x-xp) cos a - (y-yp) sin a 11/15/2021

y’= yp + (x-xp) sin a + (y-yp)cos a


OBJEK ROTASI

Rotasi sebuah objek dengan sudut θ Rotasi sebuah titik dari posisi (x,y) ke
terhadap pivot point posisi (x’,y’) dengan sudut θ relatif
terhadap koordinat asal
11/15/2021
ROTASI PADA OBJEK
• Fungsi Rotasi merupakan sebuah
fungsi untuk membuat objek
berputar.
• Rotasi dapat dikatakan
sempurna, apabila objek dapat
berputar sampai dengan 3600.

Contoh:
11/15/2021
SCALING
• Melakukan perubahan terhadap ukuran suatu objek, apakah diperbesar atau
diperkecil
• Penskalaan dilakukan dengan perkalian antara posisi awal dengan scaling
factor(Sx,Sy)
• Titik hasil scaling dapat ditentukan dengan :
x’ = x.Sx
y’ = y.Sy
dimana x dan y adalah koordinat awal
x’ dan y’ koordinat hasil scaling
Sx dan Sy adalah scaling faktor
11/15/2021
MENGUBAH SKALA OBJEK
• Fungsi transform.localScale
berfungsi untuk mengubah
skala(ukuran) dari sebuah game
objek.
• Fungsi ini memiliki property get
and set.

Contoh:

11/15/2021
BASIC KEYBOARD UNITY

Salah satu user input yang menggunakan keyboard sebagai inputan adalah
GetKey. Fungsi GetKey terbatas hanya pada tombol tombol yang ada di
keyboard. Getkey memiliki tiga kondisi:
1. GetKey, eksekusi dilakukan selama tombol ditekan
2. GetKeyDown,eksekusi dilakukan untuk 1x tekan
3. GetKeyUp, eksekusi dilakukan pada kondisi ketika jari diangkat dari
tombol

11/15/2021
CONTOH:

• Keyboard A ditekan, maka


objek bergerak ke kiri
• Keyboard D ditekan, maka
objek akan bergerak ke kanan
• Keyboard S ditekan maka
objek akan bergerak k bawah
• Keyboard W ditekan, maka
objek akan bergerak ke atas.

11/15/2021
Latihan:

1. Kerjakan semua contoh fungsi yang ada dalam materi ini


2. Buat sebuah projek, apply game object sphere
• Tambahkan komponen script bernama move_translation
• Gunakan transform.Translate bentuk 1, 2, 4 untuk memindahkan objek
tersebut ke sumbu x positif, x negative, y positif, y negatif

11/15/2021
TUGAS 1:

Tambahkan script bernama Image2Controller pada Image yang kedua, buat


controller sebagai berikut:
1. leftArrow untuk pergerakan ke kiri
2. Right Arrow untuk pergerakan ke kanan
3. UpArrow untuk pergerakan ke atas
4. Downarrow untuk pergerakan ke bawah
5. B untuk rotasi 30 derajat di sumbu Z
6. V untuk memperkecil ukuran objek
11/15/2021
TUGAS 2:
Buat projectbaru bernama sampleTransformation
1. Tambahkan 2 image
2. Tambahkan script bernama ImageController pada Image tersebut, buat
controller sebagai berikut:
3. leftArrow untuk pergerakan ke kiri
4. Right Arrow untuk pergerakan ke kanan
5. UpArrow untuk pergerakan ke atas
6. Downarrow untuk pergerakan ke bawah
7. B untuk rotasi 25 derajat di sumbu Y
8. V untuk memperkecil ukuran objek
9. Z untuk memperbesar objek 11/15/2021

10.Buat tumbukan antar objek


TUGAS 1:

Tambahkan script bernama cylinderController pada Cylinder, buat controller


sebagai berikut:
1. leftArrow untuk pergerakan ke kiri
2. Right Arrow untuk pergerakan ke kanan
3. UpArrow untuk pergerakan ke atas
4. Downarrow untuk pergerakan ke bawah
5. B untuk rotasi 30 derajat di sumbu Z
6. V untuk memperkecil ukuran objek
11/15/2021
TUGAS 2:

1. Pada projek TugasTransformasi buat scene baru bernama Translasirotasi


2. Apply game objek capsule
3. Buat control untuk objek capsule sebagai berikut;
Apabila :
Keyboard W dipress maka capsule bergerak ke sumbu y+
Keyboard S dipress maka capsule bergerak ke sumbu y-
Keyboard A dipress maka capsule bergerak ke sumbu x+
Keyboard D dipress maka capsule bergerak ke sumbu x-
Keyboard R dipress maka capsule akan berotasi pada sumbu Y.
11/15/2021
TUGAS 3:

1. Pada projek TugasTransformasi buat scene baru bernama Transformasiskala


2. Apply game objek cube
3. Buat control untuk objek cube sebagai berikut;
Apabila :
Keyboard W dipress maka cube bergerak ke sumbu y+
Keyboard S dipress maka cube bergerak ke sumbu y-
Keyboard A dipress maka cube bergerak ke sumbu x+
Keyboard D dipress maka cube Bergerak ke sumbu x-
Keyboard Z dipress maka ukuran cube akan bertambah pada sumbu Y.
11/15/2021
TUGAS 5:

1. Tulis semua skrip yang ada pada Tugas1, 2 dan 3.


2. Berikan keterangan pada setiap baris script atau statement(statement
tersebut fungsinya untuk apa).
3. Cantumkan nama dan NIM

11/15/2021
REFERENCES

• Halpern, J. Developing 2D Games with Unity.Independent Game


Programming with C#, 2019.
• Naser, Ahmad. Unity Professional 2D Game from A to Z. 2016
• https://elisabethtappy.files.wordpress.com/2013/10/lec6-transformasi-2d.ppt

11/15/2021

Anda mungkin juga menyukai