<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://gamemaking.domcloud.dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Timothy</id>
	<title>CPC Game Making - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://gamemaking.domcloud.dev/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Timothy"/>
	<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Special:Contributions/Timothy"/>
	<updated>2026-08-21T19:36:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Periodic_shooting&amp;diff=98</id>
		<title>Periodic shooting</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Periodic_shooting&amp;diff=98"/>
		<updated>2025-09-27T15:00:10Z</updated>

		<summary type="html">&lt;p&gt;Timothy: Created page with &amp;quot;&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt; var waiting_to_shoot = false   func _input(event: InputEvent) -&amp;gt; void:	 	if event.is_action(&amp;quot;ui_right&amp;quot;) and waiting_to_shoot == false: 		waiting_to_shoot = true 		await get_tree().create_timer(0.4).timeout 		print(&amp;#039;A shot was fired!&amp;#039;) 		waiting_to_shoot = false &amp;lt;/syntaxhighlight&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
var waiting_to_shoot = false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
func _input(event: InputEvent) -&amp;gt; void:	&lt;br /&gt;
	if event.is_action(&amp;quot;ui_right&amp;quot;) and waiting_to_shoot == false:&lt;br /&gt;
		waiting_to_shoot = true&lt;br /&gt;
		await get_tree().create_timer(0.4).timeout&lt;br /&gt;
		print(&#039;A shot was fired!&#039;)&lt;br /&gt;
		waiting_to_shoot = false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=97</id>
		<title>Programming your first game/Input dengan mouse</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=97"/>
		<updated>2025-07-21T23:45:54Z</updated>

		<summary type="html">&lt;p&gt;Timothy: /* Dokumentasi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bila diperhatikan, pemain masih belum mampu berinteraksi sama sekali dengan game kita. Maka, kita perlu menambah sedikit logika pemrograman agar Cookie di layar memberikan respons tertentu ketika diklik pemain.&lt;br /&gt;
&lt;br /&gt;
== Node scripting ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attach_script_to_Sprite2D.png|thumb]] [[File:Empty_script.png|thumb|Layar script editor yang masih kosong akan muncul setelah script file script dibuat untuk pertama kalinya]] Klik kanan pada entri Sprite2D di kiri atas, lalu tekan &amp;quot;Attach Script&amp;quot;. Secara default, file script ini akan disimpan di &amp;lt;code&amp;gt;res://cookie.gd&amp;lt;/code&amp;gt;, sesuai dengan nama scene. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
Tambahkan beberapa baris kode berikut. Simpan hasil modifikasi script dengan Ctrl+S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
func _input(event):&lt;br /&gt;
	if event is InputEventMouseButton:&lt;br /&gt;
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&lt;br /&gt;
			if is_pixel_opaque(get_local_mouse_position()):&lt;br /&gt;
				print(&amp;quot;Clicked!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run project dan amati hasilnya.&lt;br /&gt;
&lt;br /&gt;
[[File:Clicked.png]]&lt;br /&gt;
&lt;br /&gt;
Sebuah pesan singkat &amp;quot;Clicked!&amp;quot; akan dikeluarkan pada output terminal setiap kali pemain melakukan klik kiri dengan mouse pada area cookie.&lt;br /&gt;
&lt;br /&gt;
Coba pahami kode yang diberikan tersebut.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event is InputEventMouseButton:&amp;lt;/syntaxhighlight&amp;gt; Di Godot, ada banyak InputEvent yang dapat diterima pada fungsi &amp;lt;code&amp;gt;_input()&amp;lt;/code&amp;gt;, dari InputEventMouseButton untuk merepresentasikan mouse button yang ditekan, hingga InputEventScreenDrag untuk merepresentasikan gestur menggeser pada layar touchscreen.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Property &amp;lt;code&amp;gt;button_index&amp;lt;/code&amp;gt; menunjukkan tipe mouse button yang terlibat dalam InputEvent (selain &amp;lt;code&amp;gt;MOUSE_BUTTON_LEFT&amp;lt;/code&amp;gt;, ada pula &amp;lt;code&amp;gt;MOUSE_BUTTON_RIGHT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MOUSE_BUTTON_WHEEL_UP&amp;lt;/code&amp;gt;, dll.). &amp;lt;br&amp;gt;Dengan menggunakan property &amp;lt;code&amp;gt;pressed&amp;lt;/code&amp;gt;, game hanya akan menghitung momen ketika pemain mulai &amp;lt;i&amp;gt;menahan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
** &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and not event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Seandainya kode dimodifikasi seperti ini, game hanya akan menghitung momen ketika pemain &amp;lt;i&amp;gt;melepaskan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if is_pixel_opaque(get_local_mouse_position()):&amp;lt;/syntaxhighlight&amp;gt; Fungsi &amp;lt;code&amp;gt;get_local_mouse_position()&amp;lt;/code&amp;gt; memberikan posisi (x, y) kursor mouse. Fungsi &amp;lt;code&amp;gt;is_pixel_opaque()&amp;lt;/code&amp;gt; memberikan nilai &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; bilamana diberikan input posisi yang tercakup dalam area tekstur gambar cookie. Dengan demikian, klik di luar batasan gambar takkan menghasilkan apa-apa.&lt;br /&gt;
&lt;br /&gt;
=== Dokumentasi ===&lt;br /&gt;
&lt;br /&gt;
Kalau ada fungsi yang kalian ingin pelajari lebih lanjut, tahan tombol Ctrl dan klik keyword yang dikehendaki. Editor akan segera membuka dokumentasi Godot, yang tersedia pula secara daring ([https://docs.godotengine.org/en/stable/ https://docs.godotengine.org/en/stable/]). &lt;br /&gt;
&lt;br /&gt;
{{Info try it|Sekarang, game hanya akan bereaksi terhadap aksi klik kiri. Coba buat supaya cookie dapat menerima input klik kiri maupun kanan.}}&lt;br /&gt;
&lt;br /&gt;
=== Berganti view di editor ===&lt;br /&gt;
&lt;br /&gt;
[[File:Top.png|thumb]] Jangan lupa bahwa kalian bisa mengganti view dari 2D ke Script (atau sebaliknya) dari menu di bagian atas. {{Clear}}&lt;br /&gt;
 &lt;br /&gt;
== Bermain dengan sound effect ==&lt;br /&gt;
&lt;br /&gt;
Kemudian, kita akan tambahkan sebuah sound effect ketika cookie diklik.&lt;br /&gt;
&lt;br /&gt;
[[File:Add_child_node_to_cookie.jpg|thumb]] Klik kanan pada entri Sprite2D di scene tree, di kiri layar. Tambahkan sebuah child node, beri tipe AudioStreamPlayer2D.&lt;br /&gt;
&lt;br /&gt;
[[File:Crumble.gif]] Drag file &amp;lt;code&amp;gt;crumble.mp3&amp;lt;/code&amp;gt; ke field Stream di menu Inspector. Pastikan bahwa node AudioStreamPlayer2D-lah yang terseleksi pada scene tree.&lt;br /&gt;
&lt;br /&gt;
Tambahkanlah satu line berikut pada script &amp;lt;code&amp;gt;cookie.gd&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
func _input(event):&lt;br /&gt;
	if event is InputEventMouseButton:&lt;br /&gt;
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&lt;br /&gt;
			if is_pixel_opaque(get_local_mouse_position()):&lt;br /&gt;
				$AudioStreamPlayer2D.play()  # play sound&lt;br /&gt;
				print(&amp;quot;Clicked!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run project; cookie kini akan mengeluarkan suara bila diklik.&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=96</id>
		<title>Programming your first game/Input dengan mouse</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=96"/>
		<updated>2025-07-21T23:45:23Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bila diperhatikan, pemain masih belum mampu berinteraksi sama sekali dengan game kita. Maka, kita perlu menambah sedikit logika pemrograman agar Cookie di layar memberikan respons tertentu ketika diklik pemain.&lt;br /&gt;
&lt;br /&gt;
== Node scripting ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attach_script_to_Sprite2D.png|thumb]] [[File:Empty_script.png|thumb|Layar script editor yang masih kosong akan muncul setelah script file script dibuat untuk pertama kalinya]] Klik kanan pada entri Sprite2D di kiri atas, lalu tekan &amp;quot;Attach Script&amp;quot;. Secara default, file script ini akan disimpan di &amp;lt;code&amp;gt;res://cookie.gd&amp;lt;/code&amp;gt;, sesuai dengan nama scene. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
Tambahkan beberapa baris kode berikut. Simpan hasil modifikasi script dengan Ctrl+S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
func _input(event):&lt;br /&gt;
	if event is InputEventMouseButton:&lt;br /&gt;
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&lt;br /&gt;
			if is_pixel_opaque(get_local_mouse_position()):&lt;br /&gt;
				print(&amp;quot;Clicked!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run project dan amati hasilnya.&lt;br /&gt;
&lt;br /&gt;
[[File:Clicked.png]]&lt;br /&gt;
&lt;br /&gt;
Sebuah pesan singkat &amp;quot;Clicked!&amp;quot; akan dikeluarkan pada output terminal setiap kali pemain melakukan klik kiri dengan mouse pada area cookie.&lt;br /&gt;
&lt;br /&gt;
Coba pahami kode yang diberikan tersebut.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event is InputEventMouseButton:&amp;lt;/syntaxhighlight&amp;gt; Di Godot, ada banyak InputEvent yang dapat diterima pada fungsi &amp;lt;code&amp;gt;_input()&amp;lt;/code&amp;gt;, dari InputEventMouseButton untuk merepresentasikan mouse button yang ditekan, hingga InputEventScreenDrag untuk merepresentasikan gestur menggeser pada layar touchscreen.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Property &amp;lt;code&amp;gt;button_index&amp;lt;/code&amp;gt; menunjukkan tipe mouse button yang terlibat dalam InputEvent (selain &amp;lt;code&amp;gt;MOUSE_BUTTON_LEFT&amp;lt;/code&amp;gt;, ada pula &amp;lt;code&amp;gt;MOUSE_BUTTON_RIGHT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MOUSE_BUTTON_WHEEL_UP&amp;lt;/code&amp;gt;, dll.). &amp;lt;br&amp;gt;Dengan menggunakan property &amp;lt;code&amp;gt;pressed&amp;lt;/code&amp;gt;, game hanya akan menghitung momen ketika pemain mulai &amp;lt;i&amp;gt;menahan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
** &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and not event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Seandainya kode dimodifikasi seperti ini, game hanya akan menghitung momen ketika pemain &amp;lt;i&amp;gt;melepaskan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if is_pixel_opaque(get_local_mouse_position()):&amp;lt;/syntaxhighlight&amp;gt; Fungsi &amp;lt;code&amp;gt;get_local_mouse_position()&amp;lt;/code&amp;gt; memberikan posisi (x, y) kursor mouse. Fungsi &amp;lt;code&amp;gt;is_pixel_opaque()&amp;lt;/code&amp;gt; memberikan nilai &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; bilamana diberikan input posisi yang tercakup dalam area tekstur gambar cookie. Dengan demikian, klik di luar batasan gambar takkan menghasilkan apa-apa.&lt;br /&gt;
&lt;br /&gt;
=== Dokumentasi ===&lt;br /&gt;
&lt;br /&gt;
Kalau ada fungsi yang kalian ingin pelajari lebih lanjut, tahan tombol Ctrl dan klik segmen kode yang dikehendaki. Editor akan segera membuka dokumentasi Godot, yang tersedia pula secara daring ([https://docs.godotengine.org/en/stable/ https://docs.godotengine.org/en/stable/]). &lt;br /&gt;
&lt;br /&gt;
{{Info try it|Sekarang, game hanya akan bereaksi terhadap aksi klik kiri. Coba buat supaya cookie dapat menerima input klik kiri maupun kanan.}}&lt;br /&gt;
&lt;br /&gt;
=== Berganti view di editor ===&lt;br /&gt;
&lt;br /&gt;
[[File:Top.png|thumb]] Jangan lupa bahwa kalian bisa mengganti view dari 2D ke Script (atau sebaliknya) dari menu di bagian atas. {{Clear}}&lt;br /&gt;
 &lt;br /&gt;
== Bermain dengan sound effect ==&lt;br /&gt;
&lt;br /&gt;
Kemudian, kita akan tambahkan sebuah sound effect ketika cookie diklik.&lt;br /&gt;
&lt;br /&gt;
[[File:Add_child_node_to_cookie.jpg|thumb]] Klik kanan pada entri Sprite2D di scene tree, di kiri layar. Tambahkan sebuah child node, beri tipe AudioStreamPlayer2D.&lt;br /&gt;
&lt;br /&gt;
[[File:Crumble.gif]] Drag file &amp;lt;code&amp;gt;crumble.mp3&amp;lt;/code&amp;gt; ke field Stream di menu Inspector. Pastikan bahwa node AudioStreamPlayer2D-lah yang terseleksi pada scene tree.&lt;br /&gt;
&lt;br /&gt;
Tambahkanlah satu line berikut pada script &amp;lt;code&amp;gt;cookie.gd&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
func _input(event):&lt;br /&gt;
	if event is InputEventMouseButton:&lt;br /&gt;
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&lt;br /&gt;
			if is_pixel_opaque(get_local_mouse_position()):&lt;br /&gt;
				$AudioStreamPlayer2D.play()  # play sound&lt;br /&gt;
				print(&amp;quot;Clicked!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run project; cookie kini akan mengeluarkan suara bila diklik.&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Membangun_scene&amp;diff=95</id>
		<title>Programming your first game/Membangun scene</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Membangun_scene&amp;diff=95"/>
		<updated>2025-07-17T10:12:21Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sebelum melangkah lebih lanjut, ada baiknya kita mengerti dulu suatu hal: setiap game yang kita buat di Godot akan terdiri dari kumpulan scene. Sebuah scene bisa merepresentasikan konsep tertentu dalam game, misalnya senjata, level, karakter NPC, ataupun hal lainnya.&lt;br /&gt;
&lt;br /&gt;
Pada tahapan sebelumnya, kita telah membuat sebuah scene yang disimpan dalam file &amp;lt;code&amp;gt;cookie.tscn&amp;lt;/code&amp;gt;. Adapun scene ini terdiri dari node Sprite2D yang memiliki anak AudioStreamPlayer2D.&lt;br /&gt;
&lt;br /&gt;
Kini, kita akan membuat scene lain yang akan menjadi scene utama dari game kita. Anggap saja scene ini sebagai dunia virtual yang menyimpan berbagai macam objek, termasuk scene Cookie yang sudah kita buat.&lt;br /&gt;
&lt;br /&gt;
== Membuat scene Gameplay ==&lt;br /&gt;
&lt;br /&gt;
[[File:New_scene.jpg|200px|thumb|left|Lakukan klik kanan pada menu di pojok kiri bawah guna membuat scene baru.]] Sekarang, buat scene baru yang diberi nama &amp;lt;code&amp;gt;gameplay.tscn&amp;lt;/code&amp;gt;. Scene Gameplay inilah yang akan menjadi scene utama. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Top.png|180px|thumb|left]] Lalu, pastikan kalian berada di view 2D, bukan Script.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie_drag.gif]]&lt;br /&gt;
&lt;br /&gt;
Kita akan menaruh scene Cookie sebagai anak dari scene Gameplay. Drag file &amp;lt;code&amp;gt;cookie.tscn&amp;lt;/code&amp;gt; (&#039;&#039;&#039;bukan&#039;&#039;&#039; &amp;lt;code&amp;gt;cookie.png&amp;lt;/code&amp;gt;) ke tengah layar.&lt;br /&gt;
&lt;br /&gt;
[[File:Set_as_main_scene.jpg|thumb]] Klik kanan pada entri &amp;lt;code&amp;gt;gameplay.tscn&amp;lt;/code&amp;gt; di menu kiri bawah, lantas pilih opsi &amp;quot;Set as Main Scene&amp;quot;. Run proyek game; kalian akan mendapati bahwa Cookie kini tampil pas di tengah layar.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie at center.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Mengganti warna background game ==&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas_layer.jpg|thumb]] Dengan cara seperti yang telah diajarkan sebelumnya, buat sebuah node CanvasLayer sebagai anak dari node Gameplay. Lalu, jadikan sebuah node ColorRect sebagai anak dari CanvasLayer tersebut. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Full_rect.gif]] Berikutnya, select node ColorRect pada menu kiri; pada toolbar atas, ubah anchor preset node ini menjadi &amp;lt;code&amp;gt;Full Rect&amp;lt;/code&amp;gt;. Node otomatis memenuhi layar.&lt;br /&gt;
&lt;br /&gt;
[[File:Negative_CanvasLayer.jpg|150px|thumb|left]] Cookie sekarang tertutup sepenuhnya oleh background! Untuk mengatasi isu ini, kita perlu mengubah nilai &amp;lt;code&amp;gt;Layer&amp;lt;/code&amp;gt; node CanvasLayer menjadi -1. Dengan demikian, Cookie selalu tampil di depan background. (Secara default, sebuah scene 2D ditampilkan pada layer 0. Scene yang indeks layer-nya lebih kecil terletak di belakang scene dengan nomor indeks layer lebih besar.)&lt;br /&gt;
&lt;br /&gt;
[[File:Hex.jpg|thumb]] Ganti warna background sesuka kalian (pastikan node ColorRect terseleksi di menu kiri). {{Clear}}&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Membangun_scene&amp;diff=94</id>
		<title>Programming your first game/Membangun scene</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Membangun_scene&amp;diff=94"/>
		<updated>2025-07-17T10:01:49Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sebelum melangkah lebih lanjut, ada baiknya kita mengerti dulu suatu hal: setiap game yang kita buat di Godot akan terdiri dari kumpulan scene. Sebuah scene bisa merepresentasikan konsep tertentu dalam game, misalnya senjata, level, karakter NPC, ataupun hal lainnya.&lt;br /&gt;
&lt;br /&gt;
Pada tahapan sebelumnya, kita telah membuat sebuah scene yang disimpan dalam file &amp;lt;code&amp;gt;cookie.tscn&amp;lt;/code&amp;gt;. Adapun scene ini terdiri dari node Sprite2D yang memiliki anak AudioStreamPlayer2D.&lt;br /&gt;
&lt;br /&gt;
Kini, kita akan membuat scene lain yang akan menjadi scene utama dari game kita. Anggap saja scene ini sebagai dunia virtual yang menyimpan berbagai macam objek, termasuk scene Cookie yang sudah kita buat.&lt;br /&gt;
&lt;br /&gt;
== Membuat scene Gameplay ==&lt;br /&gt;
&lt;br /&gt;
[[File:New_scene.jpg|200px|thumb|left|Lakukan klik kanan pada menu di pojok kiri bawah guna membuat scene baru.]] Sekarang, buat scene baru yang diberi nama gameplay.tscn. Scene Gameplay inilah yang akan menjadi scene utama. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Top.png|180px|thumb|left]] Lalu, pastikan kalian berada di view 2D, bukan Script.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie_drag.gif]]&lt;br /&gt;
&lt;br /&gt;
Kita akan menaruh scene Cookie sebagai anak dari scene Gameplay. Drag file &amp;lt;code&amp;gt;cookie.tscn&amp;lt;/code&amp;gt; (&#039;&#039;&#039;bukan&#039;&#039;&#039; &amp;lt;code&amp;gt;cookie.png&amp;lt;/code&amp;gt;) ke tengah layar.&lt;br /&gt;
&lt;br /&gt;
[[File:Set_as_main_scene.jpg|thumb]] Klik kanan pada entri &amp;lt;code&amp;gt;gameplay.tscn&amp;lt;/code&amp;gt; di menu kiri bawah, lantas pilih opsi &amp;quot;Set as Main Scene&amp;quot;. Run proyek game; kalian akan mendapati bahwa Cookie kini tampil pas di tengah layar.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie at center.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Mengganti warna background game ==&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas_layer.jpg|thumb]] Dengan cara seperti yang telah diajarkan sebelumnya, buat sebuah node CanvasLayer sebagai anak dari node Gameplay. Lalu, jadikan sebuah node ColorRect sebagai anak dari CanvasLayer tersebut. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Full_rect.gif]] Berikutnya, select node ColorRect pada menu kiri; pada toolbar atas, ubah anchor preset node ini menjadi &amp;lt;code&amp;gt;Full Rect&amp;lt;/code&amp;gt;. Node otomatis memenuhi layar.&lt;br /&gt;
&lt;br /&gt;
[[File:Negative_CanvasLayer.jpg|150px|thumb|left]] Cookie sekarang tertutup sepenuhnya oleh background! Untuk mengatasi isu ini, kita perlu mengubah nilai &amp;lt;code&amp;gt;Layer&amp;lt;/code&amp;gt; node CanvasLayer menjadi -1. Dengan demikian, Cookie selalu tampil di depan background. (Secara default, sebuah scene 2D ditampilkan pada layer 0. Scene yang indeks layer-nya lebih kecil terletak di belakang scene dengan nomor indeks layer lebih besar.)&lt;br /&gt;
&lt;br /&gt;
[[File:Hex.jpg|thumb]] Ganti warna background sesuka kalian (pastikan node ColorRect terseleksi di menu kiri). {{Clear}}&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Membangun_scene&amp;diff=93</id>
		<title>Programming your first game/Membangun scene</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Membangun_scene&amp;diff=93"/>
		<updated>2025-07-17T10:00:57Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sebelum melangkah lebih lanjut, ada baiknya kita memahami dulu gagasan bahwa setiap game yang kita buat di Godot pasti terdiri dari kumpulan scene. Sebuah scene bisa merepresentasikan konsep tertentu dalam game, misalnya senjata, level, karakter NPC, dan sebagainya.&lt;br /&gt;
&lt;br /&gt;
Pada tahapan sebelumnya, kita telah membuat sebuah scene yang disimpan dalam file &amp;lt;code&amp;gt;cookie.tscn&amp;lt;/code&amp;gt;. Adapun scene ini terdiri dari node Sprite2D yang memiliki anak AudioStreamPlayer2D.&lt;br /&gt;
&lt;br /&gt;
Kini, kita akan membuat scene lain yang akan menjadi scene utama dari game kita. Anggap saja scene ini sebagai dunia virtual yang menyimpan berbagai macam objek, termasuk scene Cookie yang sudah kita buat.&lt;br /&gt;
&lt;br /&gt;
== Membuat scene Gameplay ==&lt;br /&gt;
&lt;br /&gt;
[[File:New_scene.jpg|200px|thumb|left|Lakukan klik kanan pada menu di pojok kiri bawah guna membuat scene baru.]] Sekarang, buat scene baru yang diberi nama gameplay.tscn. Scene Gameplay inilah yang akan menjadi scene utama. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Top.png|180px|thumb|left]] Lalu, pastikan kalian berada di view 2D, bukan Script.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie_drag.gif]]&lt;br /&gt;
&lt;br /&gt;
Kita akan menaruh scene Cookie sebagai anak dari scene Gameplay. Drag file &amp;lt;code&amp;gt;cookie.tscn&amp;lt;/code&amp;gt; (&#039;&#039;&#039;bukan&#039;&#039;&#039; &amp;lt;code&amp;gt;cookie.png&amp;lt;/code&amp;gt;) ke tengah layar.&lt;br /&gt;
&lt;br /&gt;
[[File:Set_as_main_scene.jpg|thumb]] Klik kanan pada entri &amp;lt;code&amp;gt;gameplay.tscn&amp;lt;/code&amp;gt; di menu kiri bawah, lantas pilih opsi &amp;quot;Set as Main Scene&amp;quot;. Run proyek game; kalian akan mendapati bahwa Cookie kini tampil pas di tengah layar.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie at center.jpg]]&lt;br /&gt;
&lt;br /&gt;
== Mengganti warna background game ==&lt;br /&gt;
&lt;br /&gt;
[[File:Canvas_layer.jpg|thumb]] Dengan cara seperti yang telah diajarkan sebelumnya, buat sebuah node CanvasLayer sebagai anak dari node Gameplay. Lalu, jadikan sebuah node ColorRect sebagai anak dari CanvasLayer tersebut. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Full_rect.gif]] Berikutnya, select node ColorRect pada menu kiri; pada toolbar atas, ubah anchor preset node ini menjadi &amp;lt;code&amp;gt;Full Rect&amp;lt;/code&amp;gt;. Node otomatis memenuhi layar.&lt;br /&gt;
&lt;br /&gt;
[[File:Negative_CanvasLayer.jpg|150px|thumb|left]] Cookie sekarang tertutup sepenuhnya oleh background! Untuk mengatasi isu ini, kita perlu mengubah nilai &amp;lt;code&amp;gt;Layer&amp;lt;/code&amp;gt; node CanvasLayer menjadi -1. Dengan demikian, Cookie selalu tampil di depan background. (Secara default, sebuah scene 2D ditampilkan pada layer 0. Scene yang indeks layer-nya lebih kecil terletak di belakang scene dengan nomor indeks layer lebih besar.)&lt;br /&gt;
&lt;br /&gt;
[[File:Hex.jpg|thumb]] Ganti warna background sesuka kalian (pastikan node ColorRect terseleksi di menu kiri). {{Clear}}&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Hex.jpg&amp;diff=92</id>
		<title>File:Hex.jpg</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Hex.jpg&amp;diff=92"/>
		<updated>2025-07-17T09:59:45Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Full_rect.gif&amp;diff=91</id>
		<title>File:Full rect.gif</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Full_rect.gif&amp;diff=91"/>
		<updated>2025-07-17T09:56:30Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Negative_CanvasLayer.jpg&amp;diff=90</id>
		<title>File:Negative CanvasLayer.jpg</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Negative_CanvasLayer.jpg&amp;diff=90"/>
		<updated>2025-07-17T09:48:11Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Canvas_layer.jpg&amp;diff=89</id>
		<title>File:Canvas layer.jpg</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Canvas_layer.jpg&amp;diff=89"/>
		<updated>2025-07-17T09:47:59Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Membangun_scene&amp;diff=88</id>
		<title>Programming your first game/Membangun scene</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Membangun_scene&amp;diff=88"/>
		<updated>2025-07-17T09:43:27Z</updated>

		<summary type="html">&lt;p&gt;Timothy: Created page with &amp;quot;Sebelum melangkah lebih lanjut, ada baiknya kita memahami dulu gagasan bahwa setiap game yang kita buat di Godot pasti terdiri dari kumpulan scene. Sebuah scene bisa merepresentasikan konsep tertentu dalam game, misalnya senjata, level, karakter NPC, dan sebagainya.  Pada tahapan sebelumnya, kita telah membuat sebuah scene yang disimpan dalam file &amp;lt;code&amp;gt;cookie.tscn&amp;lt;/code&amp;gt;. Adapun scene ini terdiri dari node Sprite2D yang memiliki anak AudioStreamPlayer2D.  Kini, kita aka...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sebelum melangkah lebih lanjut, ada baiknya kita memahami dulu gagasan bahwa setiap game yang kita buat di Godot pasti terdiri dari kumpulan scene. Sebuah scene bisa merepresentasikan konsep tertentu dalam game, misalnya senjata, level, karakter NPC, dan sebagainya.&lt;br /&gt;
&lt;br /&gt;
Pada tahapan sebelumnya, kita telah membuat sebuah scene yang disimpan dalam file &amp;lt;code&amp;gt;cookie.tscn&amp;lt;/code&amp;gt;. Adapun scene ini terdiri dari node Sprite2D yang memiliki anak AudioStreamPlayer2D.&lt;br /&gt;
&lt;br /&gt;
Kini, kita akan membuat scene lain yang akan menjadi scene utama dari game kita. Anggap saja scene ini sebagai dunia virtual yang menyimpan berbagai macam objek, termasuk scene Cookie yang sudah kita buat.&lt;br /&gt;
&lt;br /&gt;
== Membuat scene Gameplay ==&lt;br /&gt;
&lt;br /&gt;
[[File:New_scene.jpg|200px|thumb|left|Lakukan klik kanan pada menu di pojok kiri bawah guna membuat scene baru.]] Sekarang, buat scene baru yang diberi nama gameplay.tscn. Scene Gameplay inilah yang akan menjadi scene utama. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Top.png|180px|thumb|left]] Lalu, pastikan kalian berada di view 2D, bukan Script.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie_drag.gif]]&lt;br /&gt;
&lt;br /&gt;
Kita akan menaruh scene Cookie sebagai anak dari scene Gameplay. Drag file &amp;lt;code&amp;gt;cookie.tscn&amp;lt;/code&amp;gt; (&#039;&#039;&#039;bukan&#039;&#039;&#039; &amp;lt;code&amp;gt;cookie.png&amp;lt;/code&amp;gt;) ke tengah layar.&lt;br /&gt;
&lt;br /&gt;
[[File:Set_as_main_scene.jpg|thumb]] Klik kanan pada entri &amp;lt;code&amp;gt;gameplay.tscn&amp;lt;/code&amp;gt; di menu kiri bawah, lantas pilih opsi &amp;quot;Set as Main Scene&amp;quot;. Run proyek game; kalian akan mendapati bahwa Cookie kini tampil pas di tengah layar.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie at center.jpg]]&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Cookie_at_center.jpg&amp;diff=87</id>
		<title>File:Cookie at center.jpg</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Cookie_at_center.jpg&amp;diff=87"/>
		<updated>2025-07-17T09:43:13Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Set_as_main_scene.jpg&amp;diff=86</id>
		<title>File:Set as main scene.jpg</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Set_as_main_scene.jpg&amp;diff=86"/>
		<updated>2025-07-17T09:40:36Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Cookie_drag.gif&amp;diff=85</id>
		<title>File:Cookie drag.gif</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Cookie_drag.gif&amp;diff=85"/>
		<updated>2025-07-17T09:37:45Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:New_scene.jpg&amp;diff=84</id>
		<title>File:New scene.jpg</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:New_scene.jpg&amp;diff=84"/>
		<updated>2025-07-17T09:32:22Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=83</id>
		<title>Programming your first game/Input dengan mouse</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=83"/>
		<updated>2025-07-15T05:18:29Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bila diperhatikan, pemain masih belum mampu berinteraksi sama sekali dengan game kita. Maka, kita perlu menambah sedikit logika pemrograman agar Cookie di layar memberikan respons tertentu ketika diklik pemain.&lt;br /&gt;
&lt;br /&gt;
== Node scripting ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attach_script_to_Sprite2D.png|thumb]] [[File:Empty_script.png|thumb|Layar script editor yang masih kosong akan muncul setelah script file script dibuat untuk pertama kalinya]] Klik kanan pada entri Sprite2D di kiri atas, lalu tekan &amp;quot;Attach Script&amp;quot;. Secara default, file script ini akan disimpan di &amp;lt;code&amp;gt;res://cookie.gd&amp;lt;/code&amp;gt;, sesuai dengan nama scene. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
Tambahkan beberapa baris kode berikut. Simpan hasil modifikasi script dengan Ctrl+S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
func _input(event):&lt;br /&gt;
	if event is InputEventMouseButton:&lt;br /&gt;
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&lt;br /&gt;
			if is_pixel_opaque(get_local_mouse_position()):&lt;br /&gt;
				print(&amp;quot;Clicked!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run project dan amati hasilnya.&lt;br /&gt;
&lt;br /&gt;
[[File:Clicked.png]]&lt;br /&gt;
&lt;br /&gt;
Sebuah pesan singkat &amp;quot;Clicked!&amp;quot; akan dikeluarkan pada output terminal setiap kali pemain melakukan klik kiri dengan mouse pada area cookie.&lt;br /&gt;
&lt;br /&gt;
Coba pahami kode yang diberikan tersebut.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event is InputEventMouseButton:&amp;lt;/syntaxhighlight&amp;gt; Di Godot, ada banyak InputEvent yang dapat diterima pada fungsi &amp;lt;code&amp;gt;_input()&amp;lt;/code&amp;gt;, dari InputEventMouseButton untuk merepresentasikan mouse button yang ditekan, hingga InputEventScreenDrag untuk merepresentasikan gestur menggeser pada layar touchscreen.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Property &amp;lt;code&amp;gt;button_index&amp;lt;/code&amp;gt; menunjukkan tipe mouse button yang terlibat dalam InputEvent (selain &amp;lt;code&amp;gt;MOUSE_BUTTON_LEFT&amp;lt;/code&amp;gt;, ada pula &amp;lt;code&amp;gt;MOUSE_BUTTON_RIGHT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MOUSE_BUTTON_WHEEL_UP&amp;lt;/code&amp;gt;, dll.). &amp;lt;br&amp;gt;Dengan menggunakan property &amp;lt;code&amp;gt;pressed&amp;lt;/code&amp;gt;, game hanya akan menghitung momen ketika pemain mulai &amp;lt;i&amp;gt;menahan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
** &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and not event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Seandainya kode dimodifikasi seperti ini, game hanya akan menghitung momen ketika pemain &amp;lt;i&amp;gt;melepaskan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if is_pixel_opaque(get_local_mouse_position()):&amp;lt;/syntaxhighlight&amp;gt; Fungsi &amp;lt;code&amp;gt;get_local_mouse_position()&amp;lt;/code&amp;gt; memberikan posisi (x, y) kursor mouse. Fungsi &amp;lt;code&amp;gt;is_pixel_opaque()&amp;lt;/code&amp;gt; memberikan nilai &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; hanya untuk nilai posisi yang tercakup dalam area tekstur gambar cookie. Dengan demikian, klik di luar batas gambar takkan menghasilkan apa-apa.&lt;br /&gt;
&lt;br /&gt;
=== Dokumentasi ===&lt;br /&gt;
&lt;br /&gt;
Bilamana ada fungsi yang kalian ingin pelajari lebih lanjut, tahan tombol Ctrl dan klik segmen kode yang dikehendaki. Editor akan segera membuka dokumentasi Godot, yang tersedia pula secara daring ([https://docs.godotengine.org/en/stable/ https://docs.godotengine.org/en/stable/]). &lt;br /&gt;
&lt;br /&gt;
{{Info try it|Sekarang, game hanya akan bereaksi terhadap aksi klik kiri. Coba buat supaya cookie dapat menerima input klik kiri maupun kanan.}}&lt;br /&gt;
&lt;br /&gt;
=== Berganti view di editor ===&lt;br /&gt;
&lt;br /&gt;
[[File:Top.png|thumb]] Jangan lupa bahwa kalian bisa mengganti view dari 2D ke Script (atau sebaliknya) dari menu di bagian atas. {{Clear}}&lt;br /&gt;
 &lt;br /&gt;
== Bermain dengan sound effect ==&lt;br /&gt;
&lt;br /&gt;
Kemudian, kita akan tambahkan sebuah sound effect ketika cookie diklik.&lt;br /&gt;
&lt;br /&gt;
[[File:Add_child_node_to_cookie.jpg|thumb]] Klik kanan pada entri Sprite2D di scene tree, di kiri layar. Tambahkan sebuah child node, beri tipe AudioStreamPlayer2D.&lt;br /&gt;
&lt;br /&gt;
[[File:Crumble.gif]] Drag file &amp;lt;code&amp;gt;crumble.mp3&amp;lt;/code&amp;gt; ke field Stream di menu Inspector. Pastikan bahwa node AudioStreamPlayer2D-lah yang terseleksi pada scene tree.&lt;br /&gt;
&lt;br /&gt;
Tambahkanlah satu line berikut pada script &amp;lt;code&amp;gt;cookie.gd&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
func _input(event):&lt;br /&gt;
	if event is InputEventMouseButton:&lt;br /&gt;
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&lt;br /&gt;
			if is_pixel_opaque(get_local_mouse_position()):&lt;br /&gt;
				$AudioStreamPlayer2D.play()  # play sound&lt;br /&gt;
				print(&amp;quot;Clicked!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run project; cookie kini akan mengeluarkan suara bila diklik.&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=82</id>
		<title>Programming your first game/Mengenal sprite</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=82"/>
		<updated>2025-07-15T05:17:07Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sekarang, mari kita coba tambahkan sprite atau gambar pertama kita ke dalam game ini.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu sprite?|a=Dalam konteks pengembangan game, sebuah sprite adalah gambar 2D (semisal karakter ataupun benda) yang diintegrasikan ke dalam tampilan game.}}&lt;br /&gt;
&lt;br /&gt;
[[File:Wonderham.png|thumb|Dalam game semacam &#039;&#039;Angry Birds&#039;&#039;, objek-objek seperti burung, babi, ketapel, dan balok-balok direpresentasikan secara visual menggunakan sprite 2D. {{Cite game|game=Angry Birds Seasons|year=2010|link=https://en.wikipedia.org/wiki/Angry_Birds_Seasons}}]] Untuk kegiatan kali ini, kalian hanya perlu menggunakan desain aset sprite yang sudah tersedia. Seluruh aset yang dibutuhkan untuk kegiatan ini bisa diunduh lewat link berikut.&lt;br /&gt;
&lt;br /&gt;
{{Link GDrive}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Persiapan file ==&lt;br /&gt;
&lt;br /&gt;
Sebuah sprite umumnya di-load dari sebuah file gambar (PNG, GIF, dst.). File ini sebaiknya ditempatkan di lokasi (path) proyek kita.&lt;br /&gt;
&lt;br /&gt;
[[File:Assets in root.png|thumb|Susunan folder proyek semestinya]] Pastikan untuk meng-unzip berkas yang telah kalian unduh dari Google Drive. Letakkan folder &amp;lt;code&amp;gt;cookie_clicker_assets&amp;lt;/code&amp;gt; di bagian puncak (root) direktori proyek.&lt;br /&gt;
&lt;br /&gt;
== Membuat node Sprite2D ==&lt;br /&gt;
&lt;br /&gt;
Selanjutnya, kita ingin agar ketika pemain membuka game, CPU tahu untuk me-load file gambar yang sesuai ke dalam memorinya, lantas menampilkan pixel-pixel yang menyusun gambar tersebut di layar. Untuk itu, kita memerlukan node bertipe Sprite2D.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu node?|a=Node bisa dikatakan sebagai objek dasar yang menyusun sebuah game Godot. Node dapat ditetapkan sebagai anak (child) dari node lainnya, dan node anak bisa memiliki anaknya sendiri. Maka, susunan node dalam sebuah game akan menyerupai suatu pohon (tree) yang terbalik. Sebagai syarat, semua &amp;quot;saudara kandung&amp;quot; (anak langsung dari parent node yang sama) mesti diberikan nama yang unik agar mampu diidentifikasi program. }}&lt;br /&gt;
&lt;br /&gt;
[[File:Add child node.png|frame]] Setiap jenis node memiliki keunikannya tersendiri! Node Sprite2D, seperti namanya, dipakai untuk menampilkan gambar/tekstur 2D pada layar. Untuk membuat node Sprite2D baru, tekan tombol bertajuk &#039;+&#039; di sebelah kiri atas layar. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Create new node.png|thumb|Pilih opsi Sprite2D untuk dialog &amp;quot;Create New Node&amp;quot;.]] Kalian akan melihat kotak dialog untuk menyeleksi tipe node baru yang hendak dibuat. Ketik Sprite2D ke dalam kotak pencarian. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Sprite2D.png|thumb|Node Sprite2D yang tercipta]] Perhatikanlah bagian kiri layar. Seharusnya ada node Sprite2D yang terlihat pada tampilan scene tree.&lt;br /&gt;
&lt;br /&gt;
== Missing texture? ==&lt;br /&gt;
&lt;br /&gt;
Sprite kita namun masih belum bisa menampilkan apa-apa. Hal ini diakibatkan belum adanya tekstur yang dihubungkan dengan sprite ini. Dengan kata lain, ketika game dijalankan, belum ada file yang di-register untuk ditampilkan hardware grafis.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie.gif]] Drag nama file gambar yang kita inginkan (&amp;lt;code&amp;gt;cookie.png&amp;lt;/code&amp;gt;) ke field Texture pada menu Inspector. Jadilah sprite pertama kita!&lt;br /&gt;
&lt;br /&gt;
Sebelum melanjutkan perjalanan, simpan terlebih dahulu hasil kerja kita saat ini sebagai sebuah berkas scene (.tscn). Berikan nama cookie.tscn.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2025-07-15_130311.jpg|thumb|Saat ini, hanya sebagian cookie yang terlihat, yakni di pojok kiri atas. Jangan kuatir, ada alasannya!]] Run project dan amati hasilnya.&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=81</id>
		<title>Programming your first game/Input dengan mouse</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=81"/>
		<updated>2025-07-15T05:16:41Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bila diperhatikan, pemain masih belum mampu berinteraksi sama sekali dengan game kita. Maka, kita perlu menambah sedikit logika pemrograman agar Cookie di layar memberikan respons tertentu ketika diklik pemain.&lt;br /&gt;
&lt;br /&gt;
== Node scripting ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attach_script_to_Sprite2D.png|thumb]] [[File:Empty_script.png|thumb|Layar script editor yang masih kosong akan muncul setelah script file script dibuat untuk pertama kalinya]] Klik kanan pada entri Sprite2D di kiri atas, lalu tekan &amp;quot;Attach Script&amp;quot;. Secara default, file script ini akan disimpan di &amp;lt;code&amp;gt;res://cookie.gd&amp;lt;/code&amp;gt;, sesuai dengan nama scene. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
Tambahkan beberapa baris kode berikut. Simpan hasil modifikasi script dengan Ctrl+S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
func _input(event):&lt;br /&gt;
	if event is InputEventMouseButton:&lt;br /&gt;
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&lt;br /&gt;
			if is_pixel_opaque(get_local_mouse_position()):&lt;br /&gt;
				print(&amp;quot;Clicked!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run project dan amati hasilnya.&lt;br /&gt;
&lt;br /&gt;
[[File:Clicked.png]]&lt;br /&gt;
&lt;br /&gt;
Sebuah pesan singkat &amp;quot;Clicked!&amp;quot; akan dikeluarkan pada output terminal setiap kali pemain melakukan klik kiri dengan mouse pada area cookie.&lt;br /&gt;
&lt;br /&gt;
Coba pahami kode yang diberikan tersebut.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event is InputEventMouseButton:&amp;lt;/syntaxhighlight&amp;gt; Di Godot, ada banyak InputEvent yang dapat diterima pada fungsi &amp;lt;code&amp;gt;_input()&amp;lt;/code&amp;gt;, dari InputEventMouseButton untuk merepresentasikan mouse button yang ditekan, hingga InputEventScreenDrag untuk merepresentasikan gestur menggeser pada layar touchscreen.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Property &amp;lt;code&amp;gt;button_index&amp;lt;/code&amp;gt; menunjukkan tipe mouse button yang terlibat dalam InputEvent (selain &amp;lt;code&amp;gt;MOUSE_BUTTON_LEFT&amp;lt;/code&amp;gt;, ada pula &amp;lt;code&amp;gt;MOUSE_BUTTON_RIGHT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MOUSE_BUTTON_WHEEL_UP&amp;lt;/code&amp;gt;, dll.). &amp;lt;br&amp;gt;Dengan menggunakan property &amp;lt;code&amp;gt;pressed&amp;lt;/code&amp;gt;, game hanya akan menghitung momen ketika pemain mulai &amp;lt;i&amp;gt;menahan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
** &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and not event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Seandainya kode dimodifikasi seperti ini, game hanya akan menghitung momen ketika pemain &amp;lt;i&amp;gt;melepaskan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if is_pixel_opaque(get_local_mouse_position()):&amp;lt;/syntaxhighlight&amp;gt; Fungsi &amp;lt;code&amp;gt;get_local_mouse_position()&amp;lt;/code&amp;gt; memberikan posisi (x, y) kursor mouse. Fungsi &amp;lt;code&amp;gt;is_pixel_opaque()&amp;lt;/code&amp;gt; memberikan nilai &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; hanya untuk nilai posisi yang tercakup dalam area tekstur gambar cookie. Dengan demikian, klik di luar batas gambar takkan menghasilkan apa-apa.&lt;br /&gt;
&lt;br /&gt;
=== Dokumentasi ===&lt;br /&gt;
&lt;br /&gt;
Bilamana ada fungsi yang kalian ingin pelajari lebih lanjut, tahan tombol Ctrl dan klik segmen kode yang dikehendaki. Editor akan segera membuka dokumentasi Godot, yang tersedia pula secara daring ([https://docs.godotengine.org/en/stable/ https://docs.godotengine.org/en/stable/]). &lt;br /&gt;
&lt;br /&gt;
{{Info try it|Sekarang, game hanya akan bereaksi terhadap aksi klik kiri. Coba buat supaya cookie dapat menerima input klik kiri maupun kanan.}}&lt;br /&gt;
&lt;br /&gt;
=== Berganti view di editor ===&lt;br /&gt;
&lt;br /&gt;
[[File:Top.png|thumb]] Jangan lupa bahwa kalian bisa mengganti view dari 2D ke Script (atau sebaliknya) dari menu di bagian atas. {{Clear}}&lt;br /&gt;
 &lt;br /&gt;
== Bermain dengan sound effect ==&lt;br /&gt;
&lt;br /&gt;
[[File:Add_child_node_to_cookie.jpg|thumb]] Klik kanan pada entri Sprite2D di scene tree, di kiri layar. Tambahkan sebuah child node, beri tipe AudioStreamPlayer2D.&lt;br /&gt;
&lt;br /&gt;
[[File:Crumble.gif]] Drag file &amp;lt;code&amp;gt;crumble.mp3&amp;lt;/code&amp;gt; ke field Stream di menu Inspector. Pastikan bahwa node AudioStreamPlayer2D-lah yang terseleksi pada scene tree.&lt;br /&gt;
&lt;br /&gt;
Tambahkanlah satu line berikut pada script &amp;lt;code&amp;gt;cookie.gd&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
func _input(event):&lt;br /&gt;
	if event is InputEventMouseButton:&lt;br /&gt;
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&lt;br /&gt;
			if is_pixel_opaque(get_local_mouse_position()):&lt;br /&gt;
				$AudioStreamPlayer2D.play()  # play sound&lt;br /&gt;
				print(&amp;quot;Clicked!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=80</id>
		<title>Programming your first game/Input dengan mouse</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=80"/>
		<updated>2025-07-15T05:14:11Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bila diperhatikan, pemain masih belum mampu berinteraksi sama sekali dengan game kita. Maka, kita perlu menambah sedikit logika pemrograman agar Cookie di layar memberikan respons tertentu ketika diklik pemain.&lt;br /&gt;
&lt;br /&gt;
== Node scripting ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attach_script_to_Sprite2D.png|thumb]] [[File:Empty_script.png|thumb|Layar script editor yang masih kosong akan muncul setelah script file script dibuat untuk pertama kalinya]] Klik kanan pada entri Sprite2D di kiri atas, lalu tekan &amp;quot;Attach Script&amp;quot;. Secara default, file script ini akan disimpan di &amp;lt;code&amp;gt;res://cookie.gd&amp;lt;/code&amp;gt;, sesuai dengan nama scene. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
Tambahkan beberapa baris kode berikut. Simpan hasil modifikasi script dengan Ctrl+S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
func _input(event):&lt;br /&gt;
	if event is InputEventMouseButton:&lt;br /&gt;
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&lt;br /&gt;
			if is_pixel_opaque(get_local_mouse_position()):&lt;br /&gt;
				print(&amp;quot;Clicked!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run project dan amati hasilnya.&lt;br /&gt;
&lt;br /&gt;
[[File:Clicked.png]]&lt;br /&gt;
&lt;br /&gt;
Sebuah pesan singkat &amp;quot;Clicked!&amp;quot; akan dikeluarkan pada output terminal setiap kali pemain melakukan klik kiri dengan mouse pada area cookie.&lt;br /&gt;
&lt;br /&gt;
Coba pahami kode yang diberikan tersebut.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event is InputEventMouseButton:&amp;lt;/syntaxhighlight&amp;gt; Di Godot, ada banyak InputEvent yang dapat diterima pada fungsi &amp;lt;code&amp;gt;_input()&amp;lt;/code&amp;gt;, dari InputEventMouseButton untuk merepresentasikan mouse button yang ditekan, hingga InputEventScreenDrag untuk merepresentasikan gestur menggeser pada layar touchscreen.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Property &amp;lt;code&amp;gt;button_index&amp;lt;/code&amp;gt; menunjukkan tipe mouse button yang terlibat dalam InputEvent (selain &amp;lt;code&amp;gt;MOUSE_BUTTON_LEFT&amp;lt;/code&amp;gt;, ada pula &amp;lt;code&amp;gt;MOUSE_BUTTON_RIGHT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MOUSE_BUTTON_WHEEL_UP&amp;lt;/code&amp;gt;, dll.). &amp;lt;br&amp;gt;Dengan menggunakan property &amp;lt;code&amp;gt;pressed&amp;lt;/code&amp;gt;, game hanya akan menghitung momen ketika pemain mulai &amp;lt;i&amp;gt;menahan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
** &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and not event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Seandainya kode dimodifikasi seperti ini, game hanya akan menghitung momen ketika pemain &amp;lt;i&amp;gt;melepaskan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if is_pixel_opaque(get_local_mouse_position()):&amp;lt;/syntaxhighlight&amp;gt; Fungsi &amp;lt;code&amp;gt;get_local_mouse_position()&amp;lt;/code&amp;gt; memberikan posisi (x, y) kursor mouse. Fungsi &amp;lt;code&amp;gt;is_pixel_opaque()&amp;lt;/code&amp;gt; memberikan nilai &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; hanya untuk nilai posisi yang tercakup dalam area tekstur gambar cookie. Dengan demikian, klik di luar batas gambar takkan menghasilkan apa-apa.&lt;br /&gt;
&lt;br /&gt;
=== Dokumentasi ===&lt;br /&gt;
&lt;br /&gt;
Bilamana ada fungsi yang kalian ingin pelajari lebih lanjut, tahan tombol Ctrl dan klik segmen kode yang dikehendaki. Editor akan segera membuka dokumentasi Godot, yang tersedia pula secara daring ([https://docs.godotengine.org/en/stable/ https://docs.godotengine.org/en/stable/]). &lt;br /&gt;
&lt;br /&gt;
{{Info try it|Sekarang, game hanya akan bereaksi terhadap aksi klik kiri. Coba buat supaya cookie dapat menerima input klik kiri maupun kanan.}}&lt;br /&gt;
&lt;br /&gt;
=== Berganti view di editor ===&lt;br /&gt;
&lt;br /&gt;
[[File:Top.png|thumb]] Jangan lupa bahwa kalian bisa mengganti view dari 2D ke Script (atau sebaliknya) dari menu di bagian atas. {{Clear}}&lt;br /&gt;
 &lt;br /&gt;
== Bermain dengan sound effect ==&lt;br /&gt;
&lt;br /&gt;
[[File:Add_child_node_to_cookie.jpg|thumb]] Klik kanan pada entri Sprite2D di scene tree, di kiri layar. Tambahkan sebuah child node, beri tipe AudioStreamPlayer2D.&lt;br /&gt;
&lt;br /&gt;
[[File:Crumble.gif]] Drag file &amp;quot;crumble.mp3&amp;quot; ke field Stream di menu Inspector. Pastikan bahwa node AudioStreamPlayer2D-lah yang terseleksi pada scene tree.&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Crumble.gif&amp;diff=79</id>
		<title>File:Crumble.gif</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Crumble.gif&amp;diff=79"/>
		<updated>2025-07-15T05:12:21Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Add_child_node_to_cookie.jpg&amp;diff=78</id>
		<title>File:Add child node to cookie.jpg</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Add_child_node_to_cookie.jpg&amp;diff=78"/>
		<updated>2025-07-15T05:07:55Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=77</id>
		<title>Programming your first game/Mengenal sprite</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=77"/>
		<updated>2025-07-15T05:05:21Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sekarang, mari kita coba tambahkan sprite atau gambar pertama kita ke dalam game ini.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu sprite?|a=Dalam konteks pengembangan game, sebuah sprite adalah gambar 2D (semisal karakter ataupun benda) yang diintegrasikan ke dalam tampilan game.}}&lt;br /&gt;
&lt;br /&gt;
[[File:Wonderham.png|thumb|Dalam game semacam &#039;&#039;Angry Birds&#039;&#039;, objek-objek seperti burung, babi, ketapel, dan balok-balok direpresentasikan secara visual menggunakan sprite 2D. {{Cite game|game=Angry Birds Seasons|year=2010|link=https://en.wikipedia.org/wiki/Angry_Birds_Seasons}}]] Untuk kegiatan kali ini, kalian hanya perlu menggunakan desain aset sprite yang sudah tersedia. Seluruh aset yang dibutuhkan untuk kegiatan ini bisa diunduh lewat link berikut.&lt;br /&gt;
&lt;br /&gt;
{{Link GDrive}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Persiapan file ==&lt;br /&gt;
&lt;br /&gt;
Sebuah sprite umumnya di-load dari sebuah file gambar (PNG, GIF, dst.). File ini sebaiknya ditempatkan di lokasi (path) proyek kita.&lt;br /&gt;
&lt;br /&gt;
[[File:Assets in root.png|thumb|Susunan folder proyek semestinya]] Pastikan untuk meng-unzip berkas yang telah kalian unduh dari Google Drive. Letakkan folder &amp;lt;code&amp;gt;cookie_clicker_assets&amp;lt;/code&amp;gt; di bagian puncak (root) direktori proyek.&lt;br /&gt;
&lt;br /&gt;
== Membuat node Sprite2D ==&lt;br /&gt;
&lt;br /&gt;
Selanjutnya, kita ingin agar ketika pemain membuka game, CPU tahu untuk me-load file gambar yang sesuai ke dalam memorinya, lantas menampilkan pixel-pixel yang menyusun gambar tersebut di layar. Untuk itu, kita memerlukan node bertipe Sprite2D.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu node?|a=Node bisa dikatakan sebagai objek dasar yang menyusun sebuah game Godot. Node dapat ditetapkan sebagai anak (child) dari node lainnya, dan node anak bisa memiliki anaknya sendiri. Maka, susunan node dalam sebuah game akan menyerupai suatu pohon (tree) yang terbalik. Sebagai syarat, semua &amp;quot;saudara kandung&amp;quot; (anak langsung dari parent node yang sama) mesti diberikan nama yang unik agar mampu diidentifikasi program. }}&lt;br /&gt;
&lt;br /&gt;
[[File:Add child node.png|frame]] Setiap jenis node memiliki keunikannya tersendiri! Node Sprite2D, seperti namanya, dipakai untuk menampilkan gambar/tekstur 2D pada layar. Untuk membuat node Sprite2D baru, tekan tombol bertajuk &#039;+&#039; di sebelah kiri atas layar. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Create new node.png|thumb|Pilih opsi Sprite2D untuk dialog &amp;quot;Create New Node&amp;quot;.]] Kalian akan melihat kotak dialog untuk menyeleksi tipe node baru yang hendak dibuat. Ketik Sprite2D ke dalam kotak pencarian. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Sprite2D.png|thumb|Node Sprite2D yang tercipta]] Perhatikanlah bagian kiri layar. Seharusnya ada node Sprite2D yang terlihat pada tampilan scene tree.&lt;br /&gt;
&lt;br /&gt;
== Missing texture? ==&lt;br /&gt;
&lt;br /&gt;
Sprite kita namun masih belum bisa menampilkan apa-apa. Hal ini diakibatkan belum adanya tekstur yang dihubungkan dengan sprite ini. Dengan kata lain, ketika game dijalankan, belum ada file yang di-register untuk ditampilkan hardware grafis.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie.gif]] Drag nama file gambar yang kita inginkan (&amp;quot;cookie.png&amp;quot;) ke field Texture pada menu Inspector. Jadilah sprite pertama kita!&lt;br /&gt;
&lt;br /&gt;
Sebelum melanjutkan perjalanan, simpan terlebih dahulu hasil kerja kita saat ini sebagai sebuah berkas scene (.tscn). Berikan nama cookie.tscn.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2025-07-15_130311.jpg|thumb|Saat ini, hanya sebagian cookie yang terlihat, yakni di pojok kiri atas. Jangan kuatir, ada alasannya!]] Run project dan amati hasilnya.&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=76</id>
		<title>Programming your first game/Mengenal sprite</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=76"/>
		<updated>2025-07-15T05:05:02Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sekarang, mari kita coba tambahkan sprite atau gambar pertama kita ke dalam game ini.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu sprite?|a=Dalam konteks pengembangan game, sebuah sprite adalah gambar 2D (semisal karakter ataupun benda) yang diintegrasikan ke dalam tampilan game.}}&lt;br /&gt;
&lt;br /&gt;
[[File:Wonderham.png|thumb|Dalam game semacam &#039;&#039;Angry Birds&#039;&#039;, objek-objek seperti burung, babi, ketapel, dan balok-balok direpresentasikan secara visual menggunakan sprite 2D. {{Cite game|game=Angry Birds Seasons|year=2010|link=https://en.wikipedia.org/wiki/Angry_Birds_Seasons}}]] Untuk kegiatan kali ini, kalian hanya perlu menggunakan desain aset sprite yang sudah tersedia. Seluruh aset yang dibutuhkan untuk kegiatan ini bisa diunduh lewat link berikut.&lt;br /&gt;
&lt;br /&gt;
{{Link GDrive}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Persiapan file ==&lt;br /&gt;
&lt;br /&gt;
Sebuah sprite umumnya di-load dari sebuah file gambar (PNG, GIF, dst.). File ini sebaiknya ditempatkan di lokasi (path) proyek kita.&lt;br /&gt;
&lt;br /&gt;
[[File:Assets in root.png|thumb|Susunan folder proyek semestinya]] Pastikan untuk meng-unzip berkas yang telah kalian unduh dari Google Drive. Letakkan folder &amp;lt;code&amp;gt;cookie_clicker_assets&amp;lt;/code&amp;gt; di bagian puncak (root) direktori proyek.&lt;br /&gt;
&lt;br /&gt;
== Membuat node Sprite2D ==&lt;br /&gt;
&lt;br /&gt;
Selanjutnya, kita ingin agar ketika pemain membuka game, CPU tahu untuk me-load file gambar yang sesuai ke dalam memorinya, lantas menampilkan pixel-pixel yang menyusun gambar tersebut di layar. Untuk itu, kita memerlukan node bertipe Sprite2D.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu node?|a=Node bisa dikatakan sebagai objek dasar yang menyusun sebuah game Godot. Node dapat ditetapkan sebagai anak (child) dari node lainnya, dan node anak bisa memiliki anaknya sendiri. Maka, susunan node dalam sebuah game akan menyerupai suatu pohon (tree) yang terbalik. Sebagai syarat, semua &amp;quot;saudara kandung&amp;quot; (anak langsung dari parent node yang sama) mesti diberikan nama yang unik agar mampu diidentifikasi program. }}&lt;br /&gt;
&lt;br /&gt;
[[File:Add child node.png|frame]] Setiap jenis node memiliki keunikannya tersendiri! Node Sprite2D, seperti namanya, dipakai untuk menampilkan gambar/tekstur 2D pada layar. Untuk membuat node Sprite2D baru, tekan tombol bertajuk &#039;+&#039; di sebelah kiri atas layar. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Create new node.png|thumb|Pilih opsi Sprite2D untuk dialog &amp;quot;Create New Node&amp;quot;.]] Kalian akan melihat kotak dialog untuk menyeleksi tipe node baru yang hendak dibuat. Ketik Sprite2D ke dalam kotak pencarian. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Sprite2D.png|thumb|Node Sprite2D yang tercipta]] Perhatikanlah bagian kiri layar. Seharusnya ada node Sprite2D yang terlihat pada tampilan scene tree.&lt;br /&gt;
&lt;br /&gt;
== Missing texture? ==&lt;br /&gt;
&lt;br /&gt;
Sprite kita namun masih belum bisa menampilkan apa-apa. Hal ini diakibatkan belum adanya tekstur yang dihubungkan dengan sprite ini. Dengan kata lain, ketika game dijalankan, belum ada file yang di-register untuk ditampilkan hardware grafis.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie.gif]] Drag nama file gambar yang kita inginkan (&amp;quot;cookie.png&amp;quot;) ke field Texture pada menu Inspector. Jadilah sprite pertama kita!&lt;br /&gt;
&lt;br /&gt;
Sebelum melanjutkan perjalanan, simpan terlebih dahulu hasil kerja kita saat ini sebagai sebuah berkas scene (.tscn). Berikan nama cookie.tscn.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2025-07-15_130311.jpg|thumb|Saat ini, hanya sebagian cookie yang terlihat, yakni di pojok kiri atas. Jangan kuatir, ada alasannya]] Run project dan amati hasilnya.&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Screenshot_2025-07-15_130311.jpg&amp;diff=75</id>
		<title>File:Screenshot 2025-07-15 130311.jpg</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Screenshot_2025-07-15_130311.jpg&amp;diff=75"/>
		<updated>2025-07-15T05:03:30Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=74</id>
		<title>Programming your first game/Input dengan mouse</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=74"/>
		<updated>2025-07-15T04:59:28Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bila diperhatikan, pemain masih belum mampu berinteraksi sama sekali dengan game kita. Maka, kita perlu menambah sedikit logika pemrograman agar Cookie di layar memberikan respons tertentu ketika diklik pemain.&lt;br /&gt;
&lt;br /&gt;
== Node scripting ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attach_script_to_Sprite2D.png|thumb]] [[File:Empty_script.png|thumb|Layar script editor yang masih kosong akan muncul setelah script file script dibuat untuk pertama kalinya]] Klik kanan pada entri Sprite2D di kiri atas, lalu tekan &amp;quot;Attach Script&amp;quot;. Secara default, file script ini akan disimpan di &amp;lt;code&amp;gt;res://cookie.gd&amp;lt;/code&amp;gt;, sesuai dengan nama scene. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
Tambahkan beberapa baris kode berikut. Simpan hasil modifikasi script dengan Ctrl+S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
func _input(event):&lt;br /&gt;
	if event is InputEventMouseButton:&lt;br /&gt;
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&lt;br /&gt;
			if is_pixel_opaque(get_local_mouse_position()):&lt;br /&gt;
				print(&amp;quot;Clicked!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run project dan amati hasilnya.&lt;br /&gt;
&lt;br /&gt;
[[File:Clicked.png]]&lt;br /&gt;
&lt;br /&gt;
Sebuah pesan singkat &amp;quot;Clicked!&amp;quot; akan dikeluarkan pada output terminal setiap kali pemain melakukan klik kiri dengan mouse pada area cookie.&lt;br /&gt;
&lt;br /&gt;
Coba pahami kode yang diberikan tersebut.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event is InputEventMouseButton:&amp;lt;/syntaxhighlight&amp;gt; Di Godot, ada banyak InputEvent yang dapat diterima pada fungsi &amp;lt;code&amp;gt;_input()&amp;lt;/code&amp;gt;, dari InputEventMouseButton untuk merepresentasikan mouse button yang ditekan, hingga InputEventScreenDrag untuk merepresentasikan gestur menggeser pada layar touchscreen.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Property &amp;lt;code&amp;gt;button_index&amp;lt;/code&amp;gt; menunjukkan tipe mouse button yang terlibat dalam InputEvent (selain &amp;lt;code&amp;gt;MOUSE_BUTTON_LEFT&amp;lt;/code&amp;gt;, ada pula &amp;lt;code&amp;gt;MOUSE_BUTTON_RIGHT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MOUSE_BUTTON_WHEEL_UP&amp;lt;/code&amp;gt;, dll.). &amp;lt;br&amp;gt;Dengan menggunakan property &amp;lt;code&amp;gt;pressed&amp;lt;/code&amp;gt;, game hanya akan menghitung momen ketika pemain mulai &amp;lt;i&amp;gt;menahan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
** &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and not event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Seandainya kode dimodifikasi seperti ini, game hanya akan menghitung momen ketika pemain &amp;lt;i&amp;gt;melepaskan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if is_pixel_opaque(get_local_mouse_position()):&amp;lt;/syntaxhighlight&amp;gt; Fungsi &amp;lt;code&amp;gt;get_local_mouse_position()&amp;lt;/code&amp;gt; memberikan posisi (x, y) kursor mouse. Fungsi &amp;lt;code&amp;gt;is_pixel_opaque()&amp;lt;/code&amp;gt; memberikan nilai &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; hanya untuk nilai posisi yang tercakup dalam area tekstur gambar cookie. Dengan demikian, klik di luar batas gambar takkan menghasilkan apa-apa.&lt;br /&gt;
&lt;br /&gt;
=== Dokumentasi ===&lt;br /&gt;
&lt;br /&gt;
Bilamana ada fungsi yang kalian ingin pelajari lebih lanjut, tahan tombol Ctrl dan klik segmen kode yang dikehendaki. Editor akan segera membuka dokumentasi Godot, yang tersedia pula secara daring ([https://docs.godotengine.org/en/stable/ https://docs.godotengine.org/en/stable/]). &lt;br /&gt;
&lt;br /&gt;
{{Info try it|Sekarang, game hanya akan bereaksi terhadap aksi klik kiri. Coba buat supaya cookie dapat menerima input klik kiri maupun kanan.}}&lt;br /&gt;
&lt;br /&gt;
=== Berganti view di editor ===&lt;br /&gt;
&lt;br /&gt;
[[File:Top.png|thumb]] Jangan lupa bahwa kalian bisa mengganti view dari 2D ke Script (atau sebaliknya) dari menu di bagian atas. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
== Bermain dengan sound effect ==&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Top.png&amp;diff=73</id>
		<title>File:Top.png</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Top.png&amp;diff=73"/>
		<updated>2025-07-15T04:58:05Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=MediaWiki:Common.css&amp;diff=72</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=MediaWiki:Common.css&amp;diff=72"/>
		<updated>2025-07-15T04:57:35Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* CSS placed here will be applied to all skins */&lt;br /&gt;
&lt;br /&gt;
.break-text {&lt;br /&gt;
  word-break: break-all;  /* https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_text/Wrapping_breaking_text */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.box {&lt;br /&gt;
  border: 2px dashed #baa047;&lt;br /&gt;
  border-radius: 20px;&lt;br /&gt;
  color: #979797;&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  margin-top: 15px;&lt;br /&gt;
  margin-bottom: 15px;&lt;br /&gt;
  max-width: 60%;&lt;br /&gt;
  padding: 0 20px;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=71</id>
		<title>Programming your first game/Input dengan mouse</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=71"/>
		<updated>2025-07-15T04:54:09Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bila diperhatikan, pemain masih belum mampu berinteraksi sama sekali dengan game kita. Maka, kita perlu menambah sedikit logika pemrograman agar Cookie di layar memberikan respons tertentu ketika diklik pemain.&lt;br /&gt;
&lt;br /&gt;
== Node scripting ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attach_script_to_Sprite2D.png|thumb]] [[File:Empty_script.png|thumb|Layar script editor yang masih kosong akan muncul setelah script file script dibuat untuk pertama kalinya]] Klik kanan pada entri Sprite2D di kiri atas, lalu tekan &amp;quot;Attach Script&amp;quot;. Secara default, file script ini akan disimpan di &amp;lt;code&amp;gt;res://cookie.gd&amp;lt;/code&amp;gt;, sesuai dengan nama scene. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
Tambahkan beberapa baris kode berikut. Simpan hasil modifikasi script dengan Ctrl+S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
func _input(event):&lt;br /&gt;
	if event is InputEventMouseButton:&lt;br /&gt;
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&lt;br /&gt;
			if is_pixel_opaque(get_local_mouse_position()):&lt;br /&gt;
				print(&amp;quot;Clicked!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run project dan amati hasilnya.&lt;br /&gt;
&lt;br /&gt;
[[File:Clicked.png]]&lt;br /&gt;
&lt;br /&gt;
Sebuah pesan singkat &amp;quot;Clicked!&amp;quot; akan dikeluarkan pada output terminal setiap kali pemain melakukan klik kiri dengan mouse pada area cookie.&lt;br /&gt;
&lt;br /&gt;
Coba pahami kode yang diberikan tersebut.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event is InputEventMouseButton:&amp;lt;/syntaxhighlight&amp;gt; Di Godot, ada banyak InputEvent yang dapat diterima pada fungsi &amp;lt;code&amp;gt;_input()&amp;lt;/code&amp;gt;, dari InputEventMouseButton untuk merepresentasikan mouse button yang ditekan, hingga InputEventScreenDrag untuk merepresentasikan gestur menggeser pada layar touchscreen.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Property &amp;lt;code&amp;gt;button_index&amp;lt;/code&amp;gt; menunjukkan tipe mouse button yang terlibat dalam InputEvent (selain &amp;lt;code&amp;gt;MOUSE_BUTTON_LEFT&amp;lt;/code&amp;gt;, ada pula &amp;lt;code&amp;gt;MOUSE_BUTTON_RIGHT&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MOUSE_BUTTON_WHEEL_UP&amp;lt;/code&amp;gt;, dll.). &amp;lt;br&amp;gt;Dengan menggunakan property &amp;lt;code&amp;gt;pressed&amp;lt;/code&amp;gt;, game hanya akan menghitung momen ketika pemain mulai &amp;lt;i&amp;gt;menahan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
** &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if event.button_index == MOUSE_BUTTON_LEFT and not event.pressed:&amp;lt;/syntaxhighlight&amp;gt; Seandainya kode dimodifikasi seperti ini, game hanya akan menghitung momen ketika pemain &amp;lt;i&amp;gt;melepaskan&amp;lt;/i&amp;gt; tombol kiri mouse sebagai sebuah klik.&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot;&amp;gt;if is_pixel_opaque(get_local_mouse_position()):&amp;lt;/syntaxhighlight&amp;gt; Fungsi &amp;lt;code&amp;gt;get_local_mouse_position() memberikan posisi (x, y) kursor mouse. &amp;lt;/code&amp;gt;Fungsi &amp;lt;code&amp;gt;is_pixel_opaque()&amp;lt;/code&amp;gt; memberikan nilai &amp;lt;code&amp;gt;True&amp;lt;/code&amp;gt; hanya untuk nilai posisi yang tercakup dalam area tekstur gambar cookie. Dengan demikian, klik di luar batas gambar takkan menghasilkan apa-apa.&lt;br /&gt;
&lt;br /&gt;
Bilamana ada fungsi yang kalian ingin pelajari lebih lanjut, tahan tombol Ctrl dan klik segmen kode yang dikehendaki. Editor akan segera membuka dokumentasi Godot, yang tersedia pula secara daring ([https://docs.godotengine.org/en/stable/ https://docs.godotengine.org/en/stable/]). &lt;br /&gt;
&lt;br /&gt;
{{Info try it|Sekarang, game hanya akan bereaksi terhadap aksi klik kiri. Coba buat supaya cookie dapat menerima input klik kiri maupun kanan.}}&lt;br /&gt;
&lt;br /&gt;
== Bermain dengan sound effect ==&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=70</id>
		<title>Programming your first game/Input dengan mouse</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=70"/>
		<updated>2025-07-15T04:26:12Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bila diperhatikan, pemain masih belum mampu berinteraksi sama sekali dengan game kita. Maka, kita perlu menambah sedikit logika pemrograman agar Cookie di layar memberikan respons tertentu ketika diklik pemain.&lt;br /&gt;
&lt;br /&gt;
== Node scripting ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attach_script_to_Sprite2D.png|thumb]] [[File:Empty_script.png|thumb|Layar script editor yang masih kosong akan muncul setelah script file script dibuat untuk pertama kalinya]] Klik kanan pada entri Sprite2D di kiri atas, lalu tekan &amp;quot;Attach Script&amp;quot;. Secara default, file script ini akan disimpan di &amp;lt;code&amp;gt;res://cookie.gd&amp;lt;/code&amp;gt;, sesuai dengan nama scene. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
Tambahkan beberapa baris kode berikut. Simpan hasil modifikasi script dengan Ctrl+S.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;gdscript&amp;quot; line&amp;gt;&lt;br /&gt;
func _input(event):&lt;br /&gt;
    var fuck = 3&lt;br /&gt;
	if event is InputEventMouseButton:&lt;br /&gt;
		if event.button_index == MOUSE_BUTTON_LEFT and event.pressed:&lt;br /&gt;
			if is_pixel_opaque(get_local_mouse_position()):&lt;br /&gt;
				print(&amp;quot;Clicked!&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run project dan amati hasilnya.&lt;br /&gt;
&lt;br /&gt;
[[File:Clicked.png]]&lt;br /&gt;
&lt;br /&gt;
Sebuah pesan singkat &amp;quot;Clicked!&amp;quot; akan dikeluarkan pada output terminal setiap kali pemain melakukan klik kiri dengan mouse pada area cookie.&lt;br /&gt;
&lt;br /&gt;
Coba pahami kode yang diberikan tersebut.&lt;br /&gt;
&lt;br /&gt;
Seandainya ada fungsi yang kalian ingin pelajari lebih lanjut, tahan tombol Ctrl dan klik segmen kode yang dikehendaki. Editor akan segera membuka dokumentasi Godot, yang tersedia pula secara daring ([https://docs.godotengine.org/en/stable/ https://docs.godotengine.org/en/stable/]). &lt;br /&gt;
&lt;br /&gt;
{{Info try it|Sekarang, game hanya akan bereaksi terhadap aksi klik kiri. Coba buat supaya cookie dapat menerima input klik kiri maupun kanan.}}&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Template:Info_try_it&amp;diff=69</id>
		<title>Template:Info try it</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Template:Info_try_it&amp;diff=69"/>
		<updated>2025-07-15T04:14:58Z</updated>

		<summary type="html">&lt;p&gt;Timothy: Created page with &amp;quot;&amp;lt;div class=&amp;quot;box&amp;quot; style=&amp;quot;border-color: {{Blue}}; color: {{Dark blue}}&amp;quot;&amp;gt; &amp;lt;h3&amp;gt;&amp;lt;i&amp;gt;Try it yourself!&amp;lt;/i&amp;gt;&amp;lt;/h3&amp;gt; &amp;lt;ol&amp;gt; {{#if:{{{1|}}}|&amp;lt;li&amp;gt;{{{1}}}&amp;lt;/li&amp;gt;|}} {{#if:{{{2|}}}|&amp;lt;li&amp;gt;{{{2}}}&amp;lt;/li&amp;gt;|}} {{#if:{{{3|}}}|&amp;lt;li&amp;gt;{{{3}}}&amp;lt;/li&amp;gt;|}} {{#if:{{{4|}}}|&amp;lt;li&amp;gt;{{{4}}}&amp;lt;/li&amp;gt;|}} &amp;lt;/ol&amp;gt; &amp;lt;/div&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;box&amp;quot; style=&amp;quot;border-color: {{Blue}}; color: {{Dark blue}}&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;h3&amp;gt;&amp;lt;i&amp;gt;Try it yourself!&amp;lt;/i&amp;gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
{{#if:{{{1|}}}|&amp;lt;li&amp;gt;{{{1}}}&amp;lt;/li&amp;gt;|}}&lt;br /&gt;
{{#if:{{{2|}}}|&amp;lt;li&amp;gt;{{{2}}}&amp;lt;/li&amp;gt;|}}&lt;br /&gt;
{{#if:{{{3|}}}|&amp;lt;li&amp;gt;{{{3}}}&amp;lt;/li&amp;gt;|}}&lt;br /&gt;
{{#if:{{{4|}}}|&amp;lt;li&amp;gt;{{{4}}}&amp;lt;/li&amp;gt;|}}&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Clicked.png&amp;diff=68</id>
		<title>File:Clicked.png</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Clicked.png&amp;diff=68"/>
		<updated>2025-07-15T04:03:14Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Empty_script.png&amp;diff=67</id>
		<title>File:Empty script.png</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Empty_script.png&amp;diff=67"/>
		<updated>2025-07-15T03:49:20Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game&amp;diff=66</id>
		<title>Programming your first game</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game&amp;diff=66"/>
		<updated>2025-07-15T03:28:35Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Special:PrefixIndex/{{PAGENAME}}}}&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=65</id>
		<title>Programming your first game/Input dengan mouse</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=65"/>
		<updated>2025-07-14T09:42:08Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bila diperhatikan, pemain masih belum mampu berinteraksi sama sekali dengan game kita. Maka, kita perlu menambah sedikit logika pemrograman agar Cookie di layar memberikan respons tertentu ketika diklik pemain.&lt;br /&gt;
&lt;br /&gt;
== Node scripting ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attach_script_to_Sprite2D.png|thumb]] Klik kanan pada entri Sprite2D di kiri atas, lalu tekan &amp;quot;Attach Script&amp;quot;. Secara default, file script ini akan disimpan di &amp;lt;code&amp;gt;res://cookie.gd&amp;lt;/code&amp;gt;, sesuai dengan nama scene. {{Clear}}&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=64</id>
		<title>Programming your first game/Input dengan mouse</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Input_dengan_mouse&amp;diff=64"/>
		<updated>2025-07-14T09:39:45Z</updated>

		<summary type="html">&lt;p&gt;Timothy: Created page with &amp;quot;Bila diperhatikan, pemain masih belum mampu berinteraksi sama sekali dengan game kita. Maka, kita perlu menambah sedikit logika pemrograman agar Cookie di layar memberikan respons tertentu ketika diklik pemain.  == Node scripting ==  thumb Klik kanan pada entri Sprite2D di kiri atas, lalu tekan &amp;quot;Attach Script&amp;quot;.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bila diperhatikan, pemain masih belum mampu berinteraksi sama sekali dengan game kita. Maka, kita perlu menambah sedikit logika pemrograman agar Cookie di layar memberikan respons tertentu ketika diklik pemain.&lt;br /&gt;
&lt;br /&gt;
== Node scripting ==&lt;br /&gt;
&lt;br /&gt;
[[File:Attach_script_to_Sprite2D.png|thumb]] Klik kanan pada entri Sprite2D di kiri atas, lalu tekan &amp;quot;Attach Script&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Attach_script_to_Sprite2D.png&amp;diff=63</id>
		<title>File:Attach script to Sprite2D.png</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Attach_script_to_Sprite2D.png&amp;diff=63"/>
		<updated>2025-07-14T09:37:22Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=62</id>
		<title>Programming your first game/Mengenal sprite</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=62"/>
		<updated>2025-07-14T09:33:03Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sekarang, mari kita coba tambahkan sprite atau gambar pertama kita ke dalam game ini.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu sprite?|a=Dalam konteks pengembangan game, sebuah sprite adalah gambar 2D (semisal karakter ataupun benda) yang diintegrasikan ke dalam tampilan game.}}&lt;br /&gt;
&lt;br /&gt;
[[File:Wonderham.png|thumb|Dalam game semacam &#039;&#039;Angry Birds&#039;&#039;, objek-objek seperti burung, babi, ketapel, dan balok-balok direpresentasikan secara visual menggunakan sprite 2D. {{Cite game|game=Angry Birds Seasons|year=2010|link=https://en.wikipedia.org/wiki/Angry_Birds_Seasons}}]] Untuk kegiatan kali ini, kalian hanya perlu menggunakan desain aset sprite yang sudah tersedia. Seluruh aset yang dibutuhkan untuk kegiatan ini bisa diunduh lewat link berikut.&lt;br /&gt;
&lt;br /&gt;
{{Link GDrive}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Persiapan file ==&lt;br /&gt;
&lt;br /&gt;
Sebuah sprite umumnya di-load dari sebuah file gambar (PNG, GIF, dst.). File ini sebaiknya ditempatkan di lokasi (path) proyek kita.&lt;br /&gt;
&lt;br /&gt;
[[File:Assets in root.png|thumb|Susunan folder proyek semestinya]] Pastikan untuk meng-unzip berkas yang telah kalian unduh dari Google Drive. Letakkan folder &amp;lt;code&amp;gt;cookie_clicker_assets&amp;lt;/code&amp;gt; di bagian puncak (root) direktori proyek.&lt;br /&gt;
&lt;br /&gt;
== Membuat node Sprite2D ==&lt;br /&gt;
&lt;br /&gt;
Selanjutnya, kita ingin agar ketika pemain membuka game, CPU tahu untuk me-load file gambar yang sesuai ke dalam memorinya, lantas menampilkan pixel-pixel yang menyusun gambar tersebut di layar. Untuk itu, kita memerlukan node bertipe Sprite2D.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu node?|a=Node bisa dikatakan sebagai objek dasar yang menyusun sebuah game Godot. Node dapat ditetapkan sebagai anak (child) dari node lainnya, dan node anak bisa memiliki anaknya sendiri. Maka, susunan node dalam sebuah game akan menyerupai suatu pohon (tree) yang terbalik. Sebagai syarat, semua &amp;quot;saudara kandung&amp;quot; (anak langsung dari parent node yang sama) mesti diberikan nama yang unik agar mampu diidentifikasi program. }}&lt;br /&gt;
&lt;br /&gt;
[[File:Add child node.png|frame]] Setiap jenis node memiliki keunikannya tersendiri! Node Sprite2D, seperti namanya, dipakai untuk menampilkan gambar/tekstur 2D pada layar. Untuk membuat node Sprite2D baru, tekan tombol bertajuk &#039;+&#039; di sebelah kiri atas layar. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Create new node.png|thumb|Pilih opsi Sprite2D untuk dialog &amp;quot;Create New Node&amp;quot;.]] Kalian akan melihat kotak dialog untuk menyeleksi tipe node baru yang hendak dibuat. Ketik Sprite2D ke dalam kotak pencarian. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Sprite2D.png|thumb|Node Sprite2D yang tercipta]] Perhatikanlah bagian kiri layar. Seharusnya ada node Sprite2D yang terlihat pada tampilan scene tree.&lt;br /&gt;
&lt;br /&gt;
== Missing texture? ==&lt;br /&gt;
&lt;br /&gt;
Sprite kita namun masih belum bisa menampilkan apa-apa. Hal ini diakibatkan belum adanya tekstur yang dihubungkan dengan sprite ini. Dengan kata lain, ketika game dijalankan, belum ada file yang di-register untuk ditampilkan hardware grafis.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie.gif]] Drag nama file gambar yang kita inginkan (&amp;quot;cookie.png&amp;quot;) ke field Texture pada menu Inspector. Jadilah sprite pertama kita!&lt;br /&gt;
&lt;br /&gt;
Sebelum melanjutkan perjalanan, simpan terlebih dahulu hasil kerja kita saat ini sebagai sebuah berkas scene (.tscn). Berikan nama cookie.tscn.&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Cookie.gif&amp;diff=61</id>
		<title>File:Cookie.gif</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Cookie.gif&amp;diff=61"/>
		<updated>2025-07-14T09:32:10Z</updated>

		<summary type="html">&lt;p&gt;Timothy: Timothy uploaded a new version of File:Cookie.gif&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=60</id>
		<title>Programming your first game/Mengenal sprite</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=60"/>
		<updated>2025-07-13T15:04:08Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sekarang, mari kita coba tambahkan sprite atau gambar pertama kita ke dalam game ini.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu sprite?|a=Dalam konteks pengembangan game, sebuah sprite adalah gambar 2D (semisal karakter ataupun benda) yang diintegrasikan ke dalam tampilan game.}}&lt;br /&gt;
&lt;br /&gt;
[[File:Wonderham.png|thumb|Dalam game semacam &#039;&#039;Angry Birds&#039;&#039;, objek-objek seperti burung, babi, ketapel, dan balok-balok direpresentasikan secara visual menggunakan sprite 2D. {{Cite game|game=Angry Birds Seasons|year=2010|link=https://en.wikipedia.org/wiki/Angry_Birds_Seasons}}]] Untuk kegiatan kali ini, kalian hanya perlu menggunakan desain aset sprite yang sudah tersedia. Seluruh aset yang dibutuhkan untuk kegiatan ini bisa diunduh lewat link berikut.&lt;br /&gt;
&lt;br /&gt;
{{Link GDrive}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Persiapan file ==&lt;br /&gt;
&lt;br /&gt;
Sebuah sprite umumnya di-load dari sebuah file gambar (PNG, GIF, dst.). File ini sebaiknya ditempatkan di lokasi (path) proyek kita.&lt;br /&gt;
&lt;br /&gt;
[[File:Assets in root.png|thumb|Susunan folder proyek semestinya]] Pastikan untuk meng-unzip berkas yang telah kalian unduh dari Google Drive. Letakkan folder &amp;lt;code&amp;gt;cookie_clicker_assets&amp;lt;/code&amp;gt; di bagian puncak (root) direktori proyek.&lt;br /&gt;
&lt;br /&gt;
== Membuat node Sprite2D ==&lt;br /&gt;
&lt;br /&gt;
Selanjutnya, kita ingin agar ketika pemain membuka game, CPU tahu untuk me-load file gambar yang sesuai ke dalam memorinya, lantas menampilkan pixel-pixel yang menyusun gambar tersebut di layar. Untuk itu, kita memerlukan node bertipe Sprite2D.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu node?|a=Node bisa dikatakan sebagai objek dasar yang menyusun sebuah game Godot. Node dapat ditetapkan sebagai anak (child) dari node lainnya, dan node anak bisa memiliki anaknya sendiri. Maka, susunan node dalam sebuah game akan menyerupai suatu pohon (tree) yang terbalik. Sebagai syarat, semua &amp;quot;saudara kandung&amp;quot; (anak langsung dari parent node yang sama) mesti diberikan nama yang unik agar mampu diidentifikasi program. }}&lt;br /&gt;
&lt;br /&gt;
[[File:Add child node.png|frame]] Setiap jenis node memiliki keunikannya tersendiri! Node Sprite2D, seperti namanya, dipakai untuk menampilkan gambar/tekstur 2D pada layar. Untuk membuat node Sprite2D baru, tekan tombol bertajuk &#039;+&#039; di sebelah kiri atas layar. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Create new node.png|thumb|Pilih opsi Sprite2D untuk dialog &amp;quot;Create New Node&amp;quot;.]] Kalian akan melihat kotak dialog untuk menyeleksi tipe node baru yang hendak dibuat. Ketik Sprite2D ke dalam kotak pencarian. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Sprite2D.png|thumb|Node Sprite2D yang tercipta]] Perhatikanlah bagian kiri layar. Seharusnya ada node Sprite2D yang terlihat pada tampilan scene tree.&lt;br /&gt;
&lt;br /&gt;
== Missing texture? ==&lt;br /&gt;
&lt;br /&gt;
Sprite kita namun masih belum bisa menampilkan apa-apa. Hal ini diakibatkan belum adanya tekstur yang dihubungkan dengan sprite ini. Dengan kata lain, ketika game dijalankan, belum ada file yang di-register untuk ditampilkan hardware grafis.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie.gif]] Drag nama file gambar yang kita inginkan (&amp;quot;cookie.png&amp;quot;) ke tengah-tengah layar. Jadilah sprite pertama kita!&lt;br /&gt;
&lt;br /&gt;
Sebelum melanjutkan perjalanan, simpan terlebih dahulu hasil kerja kita saat ini sebagai sebuah berkas scene (.tscn). Beri nama cookie.tscn.&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=59</id>
		<title>Programming your first game/Mengenal sprite</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=59"/>
		<updated>2025-07-13T15:01:59Z</updated>

		<summary type="html">&lt;p&gt;Timothy: /* Missing texture? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sekarang, mari kita coba tambahkan sprite atau gambar pertama kita ke dalam game ini.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu sprite?|a=Dalam konteks pengembangan game, sebuah sprite adalah gambar 2D (semisal karakter ataupun benda) yang diintegrasikan ke dalam tampilan game.}}&lt;br /&gt;
&lt;br /&gt;
[[File:Wonderham.png|thumb|Dalam game semacam &#039;&#039;Angry Birds&#039;&#039;, objek-objek seperti burung, babi, ketapel, dan balok-balok direpresentasikan secara visual menggunakan sprite 2D. {{Cite game|game=Angry Birds Seasons|year=2010|link=https://en.wikipedia.org/wiki/Angry_Birds_Seasons}}]] Untuk kegiatan kali ini, kalian hanya perlu menggunakan desain aset sprite yang sudah tersedia. Seluruh aset yang dibutuhkan untuk kegiatan ini bisa diunduh lewat link berikut.&lt;br /&gt;
&lt;br /&gt;
{{Link GDrive}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Persiapan file ==&lt;br /&gt;
&lt;br /&gt;
Sebuah sprite umumnya di-load dari sebuah file gambar (PNG, GIF, dst.). File ini sebaiknya ditempatkan di lokasi (path) proyek kita.&lt;br /&gt;
&lt;br /&gt;
[[File:Assets in root.png|thumb|Susunan folder proyek semestinya]] Pastikan untuk meng-unzip berkas yang telah kalian unduh dari Google Drive. Letakkan folder &amp;lt;code&amp;gt;cookie_clicker_assets&amp;lt;/code&amp;gt; di bagian puncak (root) direktori proyek.&lt;br /&gt;
&lt;br /&gt;
== Membuat node Sprite2D ==&lt;br /&gt;
&lt;br /&gt;
Selanjutnya, kita ingin agar ketika pemain membuka game, CPU tahu untuk me-load file gambar yang sesuai ke dalam memorinya, lantas menampilkan pixel-pixel yang menyusun gambar tersebut di layar. Untuk itu, kita memerlukan node bertipe Sprite2D.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu node?|a=Node bisa dikatakan sebagai objek dasar yang menyusun sebuah game Godot. Node dapat ditetapkan sebagai anak (child) dari node lainnya, dan node anak bisa memiliki anaknya sendiri. Maka, susunan node dalam sebuah game akan menyerupai suatu pohon (tree) yang terbalik. Sebagai syarat, semua &amp;quot;saudara kandung&amp;quot; (anak langsung dari parent node yang sama) mesti diberikan nama yang unik agar mampu diidentifikasi program. }}&lt;br /&gt;
&lt;br /&gt;
[[File:Add child node.png|frame]] Setiap jenis node memiliki keunikannya tersendiri! Node Sprite2D, seperti namanya, dipakai untuk menampilkan gambar/tekstur 2D pada layar. Untuk membuat node Sprite2D baru, tekan tombol bertajuk &#039;+&#039; di sebelah kiri atas layar. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Create new node.png|thumb|Pilih opsi Sprite2D untuk dialog &amp;quot;Create New Node&amp;quot;.]] Kalian akan melihat kotak dialog untuk menyeleksi tipe node baru yang hendak dibuat. Ketik Sprite2D ke dalam kotak pencarian. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Sprite2D.png|thumb|Node Sprite2D yang tercipta]] Perhatikanlah bagian kiri layar. Seharusnya ada node Sprite2D yang terlihat pada tampilan scene tree.&lt;br /&gt;
&lt;br /&gt;
== Missing texture? ==&lt;br /&gt;
&lt;br /&gt;
Sprite kita namun masih belum bisa menampilkan apa-apa. Hal ini diakibatkan belum adanya tekstur yang dihubungkan dengan sprite ini. Dengan kata lain, ketika game dijalankan, belum ada file yang di-register untuk ditampilkan hardware grafis.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie.gif]] Drag nama file gambar yang kita inginkan (&amp;quot;cookie.png&amp;quot;) ke tengah-tengah layar. Jadilah sprite pertama kita!&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=58</id>
		<title>Programming your first game/Mengenal sprite</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=58"/>
		<updated>2025-07-13T15:01:12Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sekarang, mari kita coba tambahkan sprite atau gambar pertama kita ke dalam game ini.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu sprite?|a=Dalam konteks pengembangan game, sebuah sprite adalah gambar 2D (semisal karakter ataupun benda) yang diintegrasikan ke dalam tampilan game.}}&lt;br /&gt;
&lt;br /&gt;
[[File:Wonderham.png|thumb|Dalam game semacam &#039;&#039;Angry Birds&#039;&#039;, objek-objek seperti burung, babi, ketapel, dan balok-balok direpresentasikan secara visual menggunakan sprite 2D. {{Cite game|game=Angry Birds Seasons|year=2010|link=https://en.wikipedia.org/wiki/Angry_Birds_Seasons}}]] Untuk kegiatan kali ini, kalian hanya perlu menggunakan desain aset sprite yang sudah tersedia. Seluruh aset yang dibutuhkan untuk kegiatan ini bisa diunduh lewat link berikut.&lt;br /&gt;
&lt;br /&gt;
{{Link GDrive}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Persiapan file ==&lt;br /&gt;
&lt;br /&gt;
Sebuah sprite umumnya di-load dari sebuah file gambar (PNG, GIF, dst.). File ini sebaiknya ditempatkan di lokasi (path) proyek kita.&lt;br /&gt;
&lt;br /&gt;
[[File:Assets in root.png|thumb|Susunan folder proyek semestinya]] Pastikan untuk meng-unzip berkas yang telah kalian unduh dari Google Drive. Letakkan folder &amp;lt;code&amp;gt;cookie_clicker_assets&amp;lt;/code&amp;gt; di bagian puncak (root) direktori proyek.&lt;br /&gt;
&lt;br /&gt;
== Membuat node Sprite2D ==&lt;br /&gt;
&lt;br /&gt;
Selanjutnya, kita ingin agar ketika pemain membuka game, CPU tahu untuk me-load file gambar yang sesuai ke dalam memorinya, lantas menampilkan pixel-pixel yang menyusun gambar tersebut di layar. Untuk itu, kita memerlukan node bertipe Sprite2D.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu node?|a=Node bisa dikatakan sebagai objek dasar yang menyusun sebuah game Godot. Node dapat ditetapkan sebagai anak (child) dari node lainnya, dan node anak bisa memiliki anaknya sendiri. Maka, susunan node dalam sebuah game akan menyerupai suatu pohon (tree) yang terbalik. Sebagai syarat, semua &amp;quot;saudara kandung&amp;quot; (anak langsung dari parent node yang sama) mesti diberikan nama yang unik agar mampu diidentifikasi program. }}&lt;br /&gt;
&lt;br /&gt;
[[File:Add child node.png|frame]] Setiap jenis node memiliki keunikannya tersendiri! Node Sprite2D, seperti namanya, dipakai untuk menampilkan gambar/tekstur 2D pada layar. Untuk membuat node Sprite2D baru, tekan tombol bertajuk &#039;+&#039; di sebelah kiri atas layar. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Create new node.png|thumb|Pilih opsi Sprite2D untuk dialog &amp;quot;Create New Node&amp;quot;.]] Kalian akan melihat kotak dialog untuk menyeleksi tipe node baru yang hendak dibuat. Ketik Sprite2D ke dalam kotak pencarian. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Sprite2D.png|thumb|Node Sprite2D yang tercipta]] Perhatikanlah bagian kiri layar. Seharusnya ada node Sprite2D yang terlihat pada tampilan scene tree.&lt;br /&gt;
&lt;br /&gt;
== Missing texture? ==&lt;br /&gt;
&lt;br /&gt;
Sprite kita namun masih belum bisa menampilkan apa-apa. Hal ini diakibatkan karena belum adanya tekstur yang dilekatkan kepada sprite ini. Dengan kata lain, ketika game dijalankan, belum ada file yang di-register untuk hardware grafis.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie.gif]] Drag nama file gambar yang kita inginkan (&amp;quot;cookie.png&amp;quot;) ke tengah-tengah layar.&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=57</id>
		<title>Programming your first game/Mengenal sprite</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=57"/>
		<updated>2025-07-13T14:59:04Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sekarang, mari kita coba tambahkan sprite atau gambar pertama kita ke dalam game ini.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu sprite?|a=Dalam konteks pengembangan game, sebuah sprite adalah gambar 2D (semisal karakter ataupun benda) yang diintegrasikan ke dalam tampilan game.}}&lt;br /&gt;
&lt;br /&gt;
[[File:Wonderham.png|thumb|Dalam game semacam &#039;&#039;Angry Birds&#039;&#039;, objek-objek seperti burung, babi, ketapel, dan balok-balok direpresentasikan secara visual menggunakan sprite 2D. {{Cite game|game=Angry Birds Seasons|year=2010|link=https://en.wikipedia.org/wiki/Angry_Birds_Seasons}}]] Untuk kegiatan kali ini, kalian hanya perlu menggunakan desain aset sprite yang sudah tersedia. Seluruh aset yang dibutuhkan untuk kegiatan ini bisa diunduh lewat link berikut.&lt;br /&gt;
&lt;br /&gt;
{{Link GDrive}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Persiapan file ==&lt;br /&gt;
&lt;br /&gt;
Sebuah sprite umumnya di-load dari sebuah file gambar (PNG, GIF, dst.). File ini sebaiknya ditempatkan di lokasi (path) proyek kita.&lt;br /&gt;
&lt;br /&gt;
[[File:Assets in root.png|thumb|Susunan folder proyek semestinya]] Pastikan untuk meng-unzip berkas yang telah kalian unduh dari Google Drive. Letakkan folder &amp;lt;code&amp;gt;cookie_clicker_assets&amp;lt;/code&amp;gt; di bagian puncak (root) direktori proyek.&lt;br /&gt;
&lt;br /&gt;
== Membuat node Sprite2D ==&lt;br /&gt;
&lt;br /&gt;
Selanjutnya, kita ingin agar ketika pemain membuka game, CPU tahu untuk me-load file gambar yang sesuai ke dalam memorinya, lantas menampilkan pixel-pixel yang menyusun gambar tersebut di layar. Untuk itu, kita memerlukan node bertipe Sprite2D.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu node?|a=Node bisa dikatakan sebagai objek dasar yang menyusun sebuah game Godot. Node dapat ditetapkan sebagai anak (child) dari node lainnya, dan node anak bisa memiliki anaknya sendiri. Maka, susunan node dalam sebuah game akan menyerupai suatu pohon (tree) yang terbalik. Sebagai syarat, semua &amp;quot;saudara kandung&amp;quot; (anak langsung dari parent node yang sama) mesti diberikan nama yang unik agar mampu diidentifikasi program. }}&lt;br /&gt;
&lt;br /&gt;
[[File:Add child node.png|frame]] Setiap jenis node memiliki keunikannya tersendiri! Node Sprite2D, seperti namanya, dipakai untuk menampilkan gambar/tekstur 2D pada layar. {{Clear}} Untuk membuat node Sprite2D baru, tekan tombol bertajuk &#039;+&#039; di sebelah kiri atas layar.&lt;br /&gt;
&lt;br /&gt;
[[File:Create new node.png|thumb|Pilih opsi Sprite2D untuk dialog &amp;quot;Create New Node&amp;quot;.]] Kalian akan melihat kotak dialog untuk menyeleksi tipe node baru yang hendak dibuat. Ketik Sprite2D ke dalam kotak pencarian. {{Clear}}&lt;br /&gt;
&lt;br /&gt;
[[File:Sprite2D.png|thumb|Node Sprite2D yang tercipta]] Perhatikanlah bagian kiri layar. Seharusnya ada node Sprite2D yang terlihat pada tampilan scene tree.&lt;br /&gt;
&lt;br /&gt;
== Missing texture? ==&lt;br /&gt;
&lt;br /&gt;
Sprite kita namun masih belum bisa menampilkan apa-apa. Hal ini diakibatkan karena belum adanya tekstur yang dilekatkan kepada sprite ini. Dengan kata lain, ketika game dijalankan, belum ada file yang di-register untuk hardware grafis.&lt;br /&gt;
&lt;br /&gt;
[[File:Cookie.gif]] Drag nama file gambar yang kita inginkan (&amp;quot;cookie.png&amp;quot;) ke tengah-tengah layar.&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Cookie.gif&amp;diff=56</id>
		<title>File:Cookie.gif</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Cookie.gif&amp;diff=56"/>
		<updated>2025-07-13T14:56:09Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Sprite2D.png&amp;diff=55</id>
		<title>File:Sprite2D.png</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Sprite2D.png&amp;diff=55"/>
		<updated>2025-07-13T14:43:29Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Template:Clear&amp;diff=54</id>
		<title>Template:Clear</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Template:Clear&amp;diff=54"/>
		<updated>2025-07-13T14:38:11Z</updated>

		<summary type="html">&lt;p&gt;Timothy: Created page with &amp;quot;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;clear: both;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Create_new_node.png&amp;diff=53</id>
		<title>File:Create new node.png</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Create_new_node.png&amp;diff=53"/>
		<updated>2025-07-13T14:29:09Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Assets_in_root.png&amp;diff=52</id>
		<title>File:Assets in root.png</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Assets_in_root.png&amp;diff=52"/>
		<updated>2025-07-13T14:29:00Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Add_child_node.png&amp;diff=51</id>
		<title>File:Add child node.png</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Add_child_node.png&amp;diff=51"/>
		<updated>2025-07-13T14:28:51Z</updated>

		<summary type="html">&lt;p&gt;Timothy: Timothy reverted File:Add child node.png to an old version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=File:Add_child_node.png&amp;diff=50</id>
		<title>File:Add child node.png</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=File:Add_child_node.png&amp;diff=50"/>
		<updated>2025-07-13T14:28:34Z</updated>

		<summary type="html">&lt;p&gt;Timothy: Timothy uploaded a new version of File:Add child node.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
	<entry>
		<id>https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=49</id>
		<title>Programming your first game/Mengenal sprite</title>
		<link rel="alternate" type="text/html" href="https://gamemaking.domcloud.dev/index.php?title=Programming_your_first_game/Mengenal_sprite&amp;diff=49"/>
		<updated>2025-07-13T14:12:44Z</updated>

		<summary type="html">&lt;p&gt;Timothy: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sekarang, mari kita coba tambahkan sprite atau gambar pertama kita ke dalam game ini.&lt;br /&gt;
&lt;br /&gt;
{{Info pertanyaan|q=Apa itu sprite?|a=Dalam konteks pengembangan game, sebuah sprite adalah gambar 2D (semisal karakter ataupun benda) yang diintegrasikan ke dalam tampilan game.}}&lt;br /&gt;
&lt;br /&gt;
[[File:Wonderham.png|thumb|Dalam game &#039;&#039;Angry Birds&#039;&#039;, objek-objek seperti burung, babi, ketapel, dan balok-balok direpresentasikan secara visual menggunakan sprite. {{Cite game|game=Angry Birds Seasons|year=2010|link=https://en.wikipedia.org/wiki/Angry_Birds_Seasons}}]] Untuk kegiatan kali ini, kalian hanya perlu menggunakan desain aset sprite yang sudah tersedia. Seluruh aset yang dibutuhkan untuk kegiatan ini bisa diunduh lewat link berikut.&lt;br /&gt;
&lt;br /&gt;
{{Link GDrive}}&lt;br /&gt;
&lt;br /&gt;
== Loading the sprite ==&lt;br /&gt;
&lt;br /&gt;
Sebuah sprite umumnya di-load dari sebuah file gambar (PNG, GIF, dst.). File ini sebaiknya ditempatkan di lokasi (path) proyek kita.&lt;br /&gt;
&lt;br /&gt;
[[File:Add_child_node.png|thumb|Test]] Pastikan untuk meng-unzip berkas yang telah kalian unduh dari Google Drive. Letakkan folder &amp;lt;code&amp;gt;cookie_clicker_assets&amp;lt;/code&amp;gt; di bagian puncak (root) direktori proyek.&lt;br /&gt;
&lt;br /&gt;
== Creating a Sprite2D node ==&lt;/div&gt;</summary>
		<author><name>Timothy</name></author>
	</entry>
</feed>