Unity Engine 2D : Moving Objects Recipe

Menggerakkan Benda dalam unity, dengan asumsi sudah mengetahui fungsi basic unity, interface, membuat gameobject, script, axis, Start, Update.

  • Create gameobject quad, rename dengan nama “Player”
  • Create C# Script, beri nama “Player”

Drag and drop script Player ke gameobject Player, klik dua kali script agar muncul di script editor.
Untuk menggerakan object kita gunakan transform.Translate(Vector3 translation, Space relativeTo = Space.Self);
Kita butuh variable Vector3 untuk menggerakan object Player. Sedangkan Space secara default, relative terhadap world axis jadi bisa dikosongkan.

Vector3 nextPosition;

void Start() {
nextPosition = new Vector3(10,0,0);
}

void Update() {

transform.Translate(nextPosition * Time.deltaTime);
}

kode diatas akan memindahkan object ke posisi vector (x,y,z) = vector (10,0,0);
coba ubah nilai/value posisi x, y, z. agar lebih dipahami 🙂
dengan mengutak-atik kita lebih cepat paham loh.

kode diatas hanya akan memindahkan keposisi tertentu.
sekarang kita coba untuk menggunakan input untuk menggerakkan benda.

Kita gunakan Input.GetAxisRaw() untuk mendapatkan input dari key.

Vector3 nextPosition;
void Start() {
}

void Update() {
float horizontal = Input.GetAxisRaw("Horizontal");
float vertical = Input.GetAxisRaw("Vertical");

nextPosition = new Vector3(horizontal,vertical,0);
transform.Translate(nextPosition * Time.deltaTime)
}

dengan kode diatas sekarang kita bisa menggerakan benda secara default dengan key WASD atau direction key.
sekian untuk bahasan moving object, next time kita bahas speed dan velocity atau yang lainnya.

terima kasih.

-Ikhsan-

Advertisements

Kisah tentang mereka

Post ini tidak ada hubungannya dengan game programming. (move on).

Saya senang sekali dengan kisah- kisah, dalam kisah atau cerita dapat ditemukan cerminan bagi diri saya. Bagi saya cerita adalah pengalaman yang dituangkan dalam suatu karya tertulis atau pun lisan yang mempunyai hikmah atau pengertian yang berbeda-beda bagi setiap orang. Beberapa tahun yang lalu saya tidak begitu suka dengan kisah-kisah jaman dahulu, saya lebih suka membaca novel seperti lord of the ring, chicken soup for the soul, dan tulisan terbaru lainnya. Lalu hadirlah sebuah tayangan televisi di channel ANTV yaitu Mahabarata, sebuah acara televisi dari India yang mengkisahkan tentang epic Mahabarata, suatu cerita epic Hindu yang disusun ribuan tahun lalu (cmiw). Sebelumnya saya sudah pernah nonton Mahabarata di youtube namun masih menggunakan bahasa India tanpa subtitel, maka saat itu saya mulai mencari tahu cerita original dari Mahabarata ini.

Mungkin karena saat saya masih anak kecil, saya sering menonton acara india di TPI, mungkin karena teman saya ada yang beragam. Saya terkadang menonton acara televisi tanpa peduli acara itu apa, film india yang actor nya selalu ada saja menari dan bernyanyi dengan inspektur vijay yang selalu saja datang terlambat setelah acara mau selesai :D, atau acara film vampire china yang menggunakan baju kerajaan jaman dulu bergerak melompat-lompat dan mencari mangsa yang bernapas walaupun ada suatu film vampire yang ketika actor nya kentut vampire nya langsung menyerang (vampire juga bisa kesel :D). Dengan acara tersebut membuat saya yang masih kecil menerima dengan baik berbagai macam budaya yang ada di desa kecil saya, Lembang. Terkadang ada teman yang bercerita tentang suatu film yang belum pernah saya tonton (mungkin film saya tidak tahu), nama lakon atau hero seperti yang terkenal arjuna, liu bei (yang ini dari game), gatotkaca, mak lampir dengan ajian rawa rontek nya, dan sebagainya. Ada juga kisah para nabi yang meskipun saya masih bocah ingusan, saya tidak terlalu percaya, tapi kisah mereka sangat menakjubkan.

Bayangkan saya saat itu adalah seorang anak kecil suka sekali dengan pahlawan dengan kekuatan super Power Ranger dengan robotnya, Jiban yang mirip Robocop (robocop ftw), Superman yang bisa membalikan rotasi bumi (versi india :D), X-Men, Herkules yang bisa mengalahkan Hydra, Xena yang bisa membunuh Dewa, sun go kong, son goku dan lainnya. Jadi saya cukup imajinatif saat itu, dengan kisah para nabi, yang bisa membelah lautan, menghidupkan orang mati, mengalahkan raksasa, berbicara dengan jin dan binatang, dan lainnya sangat membangunkan daya imajinasi saya.

Jadi sebagai referensi, saya akan mengumpulkan kisah-kisah jaman dahulu seperti Kisah Para Nabi, Untuk Mahabarata cakupannya sangat luas jadi mungkin hanya sekedarnya saja, kisah yang saya kumpulkan adalah yang saya baca. Untuk Romance of Three Kingdom ini saya liat ada bukunya digramedia 3 biji segede gaban 😀 (ups bahasanya mulai melenceng), lalu saya pernah baca bahasannya di thread dalam forum kaskus tapi sudah lama sekali, saya lupa yang mana thread nya.

Saya yakin banyak situs web lain yang lebih lengkap.

Kisah Para Nabi dalam Islam

25-nabi-dan-rasul

kisah25nabi.blogspot.com (full cerita, tanpa rujukan ayat).

www.islamawareness.net (Ibnu Katsir, dengan rujukan ayat, English).

ilmutama.wordpress.com (full cerita, dengan rujukan ayat, bahasa indonesia, PDF)

Kisah Mahabarata

Mahabarata_by_dezygn

versi India

kaskus : sakradeva (penjelasan versi, belum lengkap) karena ini forum bisa sambil tanya-tanya.

Kisah Romance of Three Kingdom, Sanguo Zhi (?)

3kingdoms

kongming.net/novel/ (Related games, downloadable novel di navigasi sebelah kanan bagian literature, English)

kisah inspiratif. Liu Bei, Cao Cao, sama satu lagi lupa. Intrik dan strategi, Zhuge Liang. sayang saya lupa threadnya.

Kisah Indonesia

kebanyakan dari lisan, jadi lupa-lupa ingat, ingat-ingat lupa. seperti lupa namanya siapa, kesaktiannya nembus bumi, sudah mati bisa idup lagi, sudah dicincang bisa utuh lagi, terbang tapi mainstream, ngomong sesuatu jadi kenyataan, berubah jadi macan tapi bukan iklan dan seterusnya. saya ga masukin ya kisah seperti maling kondang, tangkuban parahu dan lainnya, karena ini cerita rakyat, dan banyak cerita yang masuk ke bahasan supranatural (sumbernya bukan ceritanya) jadi tidak saya masukan ke kumpulan kisah ini.

Saya pernah baca thread menarik yang menyangkut tentang pembangunan candi borobudur sebagai “kitab suci” dalam bentuk 3D alias bangunan. TS nya bermaksud meluruskan “sejarah” kontroversial bangunan candi borobudur. Juga kisah epic dari bugis sayang kisah ini naskah asli nya ada dibelanda namanya la galigo, i would like to think it is for better reason.  Mau saya masukan tapi saya belum pernah membaca nya dan saya tidak tahu yang mana yang awal yang mana yang akhir yang mana yang lengkap, coba googling, banyak juga tapi saya tidak tahu mulai darimana.

post ini mungkin di update tapi kemungkinan besar juga tidak 😀

[cocos2dx3.0] The Diary – Part 02 – Using cocostudio

Tools : (as usual )

  • VS EXPRESS 2013
  • COCOS2DX 3.0

If you looking at cpp-test you probably knew already how “easy” to use cocostudio to create scene, skeletal animation, UI, etc etc.

but at first you probably wondering … and as beginner in cocos2dx you will get this error :

#include "cocostudio.h"

as no such class or something, thats right, the “template” we created and open in visual studio 2013 doesn’t include cocostudio.h folder.

this is what you have to do

  1. On solution explorer -> right click the project -> properties
  2. Open or select C/C++ tab -> select General
  3. On Additional Include Directories -> click the down arrow -> select <Edit…>
  4. insert this line : $(EngineRoot)cocos\editor-support
  5. Done

There it is, now you can #include “cocostudio.h”

Dont get frustrated sometime cpp-test had secret… seriously -_-

 

 

 

 

[Cocos2d-x 3.0]The Diary part 01 Sprite and Animation and Animate

Let See Here, The tag will be : #Tutorial #Cocos2d-x #C++ #Sprite #BahasaIndonesia[unofficial]

Asumsi Android NDK, SDK, Eclipse sudah di setting. Cocos2d-x 3.0 sudah di donlott. Visual Studio udah ready. Etc etc

sudah ngerti sususan folder Cocos2dx 3.0.

Tools :

  • Visual Studio 2013 (only works in Win7 Sp1, or Win8)
  • Cocos2d-x 3.0 final

[Pertama] Create Project

  • nama project [newgame]

masuk ke cmd

C:\programfile\> D:
D:\ cd {folderproject}
D:\{folderproject}\cocos new newgame -p com.jan.newgame -l cpp

Selesai itu buka folder proj.win32 , buka newgame.sln menggunakan vs2013.

jalankan debug, compile semua biarkan ampe selesai jika berhasil bakalan keluar helloworld.

 

berikut ini source untuk Sprite

// 1.create and read image
// 2. setPosition, 
// 3. addChild,add into corresponding layer
 auto sprite = Sprite::create("HelloWorld.png");
 sprite->setPosition(Point(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y));
 this->addChild(sprite, 0);

Yang ini source untuk animasi sprite,

 //----------------------------
 // Player Sprite and spritesheet
 //----------------------------
auto s = Director::getInstance()->getWinSize();
// read image, oh and this is a texture atlas.
auto texture = Director::getInstance()->getTextureCache()->addImage("linni_spritesheet.png");
// manually add frames to the frame cache.
 auto frame0 = SpriteFrame::createWithTexture(texture, Rect(32 * 0, 32 * 0, 32, 32));
 auto frame1 = SpriteFrame::createWithTexture(texture, Rect(32 * 1, 32 * 0, 32, 32));
 auto frame2 = SpriteFrame::createWithTexture(texture, Rect(32 * 2, 32 * 0, 32, 32));
// animation using sprite bacthnode
 auto sprite = Sprite::createWithSpriteFrame(frame0);
 sprite->setPosition(Point(s.width / 2 - 80, s.height / 2));
 addChild(sprite,5);
// stacking
 Vector<SpriteFrame*> animFrames(3);
 animFrames.pushBack(frame0);
 animFrames.pushBack(frame1);
 animFrames.pushBack(frame2);
// animation is like a recording
 auto animation = Animation::createWithSpriteFrames(animFrames, 0.2f);
 // animate is like play the record into the screen
 auto animate = Animate::create(animation);
 auto seq = Sequence::create(animate, FlipX::create(true), animate->clone(), FlipX::create(false), NULL);
sprite->runAction(RepeatForever::create(seq));

okeh penjelasan :

1. linni_spritesheet.png, merupakan texture atlas alias kumpulan sprite dalam satu file. Code digunakan untuk cache texture dan read image.

// read image, oh and this is a texture atlas.
auto texture = Director::getInstance()->getTextureCache()->addImage("linni_spritesheet.png");

2. Buat sprite frame semacem potongan kecil dari texture atlas tadi. Rect(), digunakan sebagai divider atau pemotong atau selector atau besarnya frame. frame diitung dengan coordinate Rect(x,y,width,height). Coordinate X=0 berada di top left, Y top berada di top left suatu image.

kode di bawah berarti createWithTexture, from texture, by frame Rectangular (kotak) x=0,y=0 width=32px,height=32px.

// manually add frames to the frame cache.
 auto frame0 = SpriteFrame::createWithTexture(texture, Rect(32 * 0, 32 * 0, 32, 32));

3. buat sprite dari frame yang sudah dibuat.

// animation using sprite bacthnode
 auto sprite = Sprite::createWithSpriteFrame(frame0);

4. setPosition

sprite->setPosition(Point(s.width / 2 - 80, s.height / 2));

5. addChilde, masukkan sprite ke layer tertentu

addChild(sprite,5);

6.  sebenarnya bukan stacking, tapi “sesuatu” namanya . Buat array vector, yes vector mirip array. dynamic array that can changes it size and something here take a look.  Tapi ini yang digunakan dalam kode dibawah adalah cocos2d::Vector, here is the explanation and how to use. saya juga kurang ngerti mas gan.

jadi, buat dynamic array yang meng handle SpriteFrame* dengan nama animFrames sesuai dengan jumlah frame yang akan dimasukkan, dalam hal ini yaitu 3 biji frame. thats it.

// stacking
 Vector<SpriteFrame*> animFrames(3);
 animFrames.pushBack(frame0);
 animFrames.pushBack(frame1);
 animFrames.pushBack(frame2);

7. Animation dan Animate, here is a great explanation Illustrated!

// animation is like a recording
 auto animation = Animation::createWithSpriteFrames(animFrames, 0.2f);
// animate is like play the record into the screen
 auto animate = Animate::create(animation);

8. Finally, terakhir. Action digunakan untuk “play” dan repeatforever itu seperti love u forever until the day i die or exit.

simplenya seperti ini : sprite->runAction (animate);
sprite->runAction(RepeatForever::create(seq));

Selesai, sekian diary cocos2dx, jika anda bingung wajar saja. Karena ini adalah catatan seseorang yang sedang mempelajari cocos2dx dan baru berjalan sekitar dua minggu dan sedang migrasi dari java ke c++. wkwkwkwk.

i really really recommend that you read this a sprite sheet and animation explanation Illustrated! from bunnyhero.

 

 

Cocos2dx version 3.x Tutorial

if you have done installing all prerequisite stuff. And have basic knowledge of Android and Eclipse IDE. then its good.

and wondering is there a sample… there is

now how to build the sample? heres the link

 

Okeh then,

1. import the proj.android in Eclipse

2.

Create A New Project

$ cd cocos2d-x
$ ./setup.py
$ source ~/.bash_profile # may be ~/.bash_login or ~/.profile, depends on your environemnt
$ cocos new MyGame -p com.MyCompany.MyGame -l cpp -d ~/MyCompany
  • MyGame: name of your project

  • -p com.MyCompany.MyGame: package name for android

  • -l cpp: programming language used for the project, valid value is cppand lua

  • -d ~/MyCompany: directory to hold your project

example : cd to directory you want to for wahtever the reason, then create new project like this.

example : cocos new MyGame -p com.your_company.mygame -l cpp -d /home (its a rip from somewhere tutorial in internet)

it will create a folder called MyGame

3. import that folder, choose deselect all, and just click the tick (choose) the libcocos2dx its on the top of the list. maybe

4. right click CPPTest project > Properties > Android TAB > add > add the libcocos2dx as library.

5. doesnt understand what i write? want more pictures instead? *sob* kay den … heres the link

6. Build it. im sorry the explanation is in the link above.

 

oh i should noticed you, that i works learn cocos2dx in Windows 7 32bit (patani) and using Eclipse Indigo as C++ IDE.

tried to download cocostudio, but i just cant download it somehow ._. )

it stuck in 1% with zero 0 bytes/sec on IDM ._.)”

how cute   -3- )

 

every tutorial mostly was made in Mac, kinda rare to see the tutorial write in Windows . . . maybe i had not found it yet.

 

and if you wondering whats with the console cocos new MyGame -p com.your_company.mygame -l cpp -d /home

it called cocos console, its new feature in cocos2dx version 3.x  maybe  so you dont have to install 1GB cygwin or even MinGW

moar explanation >> here the link

 

i love link :D, but i prefer Zelda maybe i should refer it as Zelda instead in the future . . .hmm.  . .

thanks whoever had heart to read my journal ._.)?

Use android-build.py to build cocos2d-x samples

the title is rip from the cocos docs

i just post this to remind myself

here the docs

At first, you should change your directory to the where the android-build.py scripts lays.

cd build

and then

python android-build.py -p 10 cpp-tests

Bang! Hit enter and the scripts will handle all the remaining things for you.

Let’s over all the parameters to android-build.py.

hmm, ive done it but i dont know why i did it   -_- )’

so i just move on to the next.

Back! with blog , , , yeah~ btw i got AKB48 virus and is that how gangnam people dance? xD

wow, dah lama saya ga ngepost :p,

oh AKB48 pertama liat sih biasa aja gitu, tapi lama kelamaan kok jadi pengen minum isotonik yah . . ., propaganda yang hebat dari sponsor. ane ga peduli selama liat video AKB48 mau minum susu kek, mau bandrek kek, minum air putih kek, rasa haus saya hilang seketika xD

ane juga kena korea fever, jujur ane ga tau apa itu gangnam, dance gangnam style, atau emang ada orang yang bernama gangnam didunia ini yang suka nyemprotin busa sabun ke cewe pake kipas angin turbo tornado terus joget super solid snake kalo naek lift, tapi ane baru tahu gangnam style pas berenang sama temen-temen. buset, bukanlah suatu pemandangan yang pantas dilihat setidaknya oleh nenek-nenek wokwokwok xD. sial nya ane ketularan gangbam style, pret. Terus, pas ane liat videonya sih oke, oke aja, cewe korea nya juga cantik banget. ya, cuman itu memory yang tak bisa hilang membekas dalam ingatan ku sebagai mimpi buruk nan kocak tapi meng-geuleuh-kan, adegan di lift, something that can not be unseen. sebuah joget yang menjadi troll, maybe troll dance? xD

 lanjut ke dunia internet , , , diantara blog dan facebook, jarang buka blog nothing interesting to write about more monkey business to think i guess, tentunya paling sering buka facebook. itu juga kalo niat hehe. Yap banyak yang terjadi selama saya bersemedi mencari wangsit untuk TA, kebanyakan sih cuman dapet bullsh** haha alias kosong hal yang udah dipelajari ga ke pake, sigh~.

tapi ya namanya perjuangan. kalo ga berkorban, ga ada gagal, atau ga ada salah, namanya bukan mahasiswa. So… setelah beberapa waktu tidak ngeblog, hape bb saya terpaksa diPHK (pemutusan hubungan keuangan) karena bokek/ ga da duit buat beli paket bb ho,, ho,, ho,,.

sejak itu saya beralih ke android, ya,,, kebutuhan untuk tugas akhir juga. mudah-mudah rancangan games saya diterima sebagai skripsi. Bicara tentang Android dan Games Dev. itu emang ga semudah membalikan telur dadar gosong, yang saya bikin, harus dibarengi dengan tekad kuat, paham bahasa inggris, paling penting lagi bisa duduk semedi selama 6 jam dibarengi kesabaran tingkat dowe!

whew, ga juga denk, yang penting kita harus terus berlatih programming, dan belajar sabar dalam membaca dan memahami code yang diberikan. 

yap, pemrograman game di android itu ada bermacam-macam, dari native code, Unity3d, flash, dan andengine. untuk Andengine saya baru tahu ketika dosen mobile aplication development, sharing pengetahuannya tentang android kepada mahasiswanya dan juga saya yang kebetulan wajib hadir ingin mencicipi android. :p . 

pertama kali mendengar andengine “Bah, apa lagi ini, paling project yang komunitasnya professor – doktor mana pula aku bisa ngerti”, saya coba akses situsnya di http://www.andengine.org saya lihat, baca, join, garuk-garuk kepala “Onde maaa~k, kenapa baru tahu sekarang,,,” komunitas android gamedev ini banyak diminati oleh para game developer luar yang sudah expert dalam bidangnya, juga para programmer senior yang baru saja menjalani hobinya, percaya atau ga ada juga yang masih SMA (di luar negeri apa namanya ya?) dan udah bikin level editornya sendiri malahan lebih jago dari seniornya! LoL

Andengine tergolong masih young and developing community, tapi sudah termasuk framework dan library atau tools (?) yang digandrungi oleh banyak android developer. Andengine dapat di download dari Github, cara pemakaiannya cukup rumit untuk game developer beginner  karena minim tutorial dan documentation. Tapi forumnya cukup aktif kok, kadang ada adminnya online, itu loh yang bikin andengine ini Nicolas Gramlich. 

Jadi untuk beginner well , , , um , , , kalau punya kesabaran dan kemauan tinggi, setinggi harga pendidikan kuliah saat ini, dan paling penting itu waktu, selamat mencoba sambil pukul-pukul gentong. Untuk yang sudah asik programming android or java , ane recommend deh. Untuk yang sudah keliling dunia dari hasil game developing, wah, tolong dicoba sapa tau saya maenin game anda :D.

Anda tidak perlu duduk dibangku kuliah untuk mencoba game developing, karena sekarang anak kecil saja sudah bisa bikin games. intinya ada kemauan, kesabaran, tekun, dukungan dari sekitar, terutama dari diri kita sendiri 🙂

catatan, jika teman-teman blogger/surfer sudah mencoba atau tertarik mencoba Andengine dan mengalami kesulitan dalam memulai saya recommend cari stable release Realmayo di forum untuk sekedar mencoba. 

untuk beginner tutorial Andengine, saya akan buat dalam waktu dekat. sekarang, cobalah untuk latihan bersabar, kenali Github, kenali Andengine, kenali Komunitas Opensource 🙂