Rumah >hujung hadapan web >tutorial js >Pengenalan pantas kepada JavaScript dan codeguppy.com
JavaScript ialah salah satu bahasa pengaturcaraan yang paling serba boleh dan alat teras untuk pengekodan kreatif, pembangunan permainan dan pembangunan web. Sama ada anda seorang pemula atau ingin menyegarkan pengetahuan anda, panduan ini menawarkan gambaran keseluruhan ringkas tentang konsep JavaScript asas, yang direka untuk membantu anda mencapai tahap permulaan. Anda juga akan belajar cara memanfaatkan codeguppy.com, platform pengekodan dalam talian mesra pemula, untuk melatih kemahiran anda. Daripada pembolehubah kepada gelung dan fungsi, buku artikel ini berfungsi sebagai rujukan untuk memulakan JavaScript dengan cepat.
Mari mulakan artikel kami dengan meneroka sintaks JavaScript.
Pembolehubah digunakan untuk menyimpan data seperti nombor, rentetan (teks) atau objek kompleks. Ingat:
let x;
let x = 1;
let s = "Hello, World!";
Apabila pembolehubah telah diisytiharkan dengan biarkan ia boleh ditugaskan / ditetapkan semula dengan nilai yang berbeza seberapa banyak kali yang anda mahu.
Anda boleh menetapkannya dengan pemalar ringkas atau bahkan ungkapan kompleks yang termasuk pemalar, pembolehubah lain dan juga pembolehubah yang sama! Komputer sangat pandai menilai ungkapan.
x = 100;
s = "Hello";
ar = [];
ar = [1, 2, 3];
ar = ["A", "B"];
o = { Type: 'car', x : 100, y : 200 };
sum = a + b;
avg = (a + b) / 2;
sum = sum + 10;
i++;
i += 2;
jika kenyataan bagus untuk mengawal aliran program. Biasanya program dilaksanakan satu arahan pada satu masa, dari atas ke bawah.
jika dibenarkan mengambil keputusan dan melaksanakan satu set arahan jika syarat dipenuhi.
if (mouseX < width) { }
if (hour < 12) { } else { }
Dalam contoh berikut, jika syarat pertama adalah benar, maka blok pertama akan dilaksanakan dan yang lain tidak.
Walau bagaimanapun, jika syarat pertama tidak benar, jika lain digunakan untuk menguji syarat lain, dan jika benar, blok jika jika lain itu dilaksanakan.
Blok selepas yang terakhir yang lain dilaksanakan hanya jika tiada syarat lain yang benar sehingga ketika itu.
let x;
Nota: Anda boleh mempunyai beberapa lagi jika menyekat dalam jenis eksperesi ini.
let x = 1;
let s = "Hello, World!";
x = 100;
s = "Hello";
ar = [];
ar = [1, 2, 3];
Nota: lakukan gelung sambil meletakkan keadaan selepas blok kod, oleh itu blok boleh melaksanakan sekurang-kurangnya sekali walaupun syarat itu palsu.
Pernyataan suis ialah arahan lain selain if / else if untuk mengawal aliran program. Anda boleh menggunakan suis untuk membandingkan ungkapan dengan nilai yang berbeza dan kemudian jalankan set arahan yang sepadan berdasarkan jika ungkapan itu sama dengan mana-mana nilai kes.
Biasanya suis digunakan kurang kerap berbanding if / else if / else.
ar = ["A", "B"];
Fungsi sangat bagus untuk mencipta arahan bahasa baharu yang boleh anda gunakan berulang kali dalam program.
Sebaik sahaja anda mentakrifkan arahan baharu, ia menjadi tidak dapat dibezakan daripada arahan terbina dalam yang terdapat dalam JavaScript dan codeguppy.com
o = { Type: 'car', x : 100, y : 200 };
sum = a + b;
Nota: codeguppy.com termasuk sejumlah besar fungsi terbina dalam seperti bulatan, rect, dsb. Anda boleh memanggil fungsi ini dengan cara yang sama seperti anda memanggil fungsi tersuai anda sendiri.
Gunakan tatasusunan untuk menyimpan satu siri nilai dengan mudah menggunakan nama pembolehubah tunggal. Tatasusunan mempunyai sifat dan kaedah yang membolehkan untuk memanipulasi elemennya.
avg = (a + b) / 2;
sum = sum + 10;
i++;
i += 2;
if (mouseX < width) { }
if (hour < 12) { } else { }
Nota: Kaedah tatasusunan sisipan hanya terdapat dalam codeguppy.com
let x;
let x = 1;
let s = "Hello, World!";
x = 100;
s = "Hello";
ar = [];
Nota: Kaedah tatasusunan mengintip hanya terdapat dalam codeguppy.com
ar = [1, 2, 3];
ar = ["A", "B"];
o = { Type: 'car', x : 100, y : 200 };
sum = a + b;
avg = (a + b) / 2;
sum = sum + 10;
slice() ialah kaedah menarik yang boleh digunakan untuk mengekstrak "slice" daripada tatasusunan. "Slice" akan dikembalikan sebagai tatasusunan bebas. Kaedah menerima sebagai argumen indeks elemen pertama (inklusif) dan indeks elemen terakhir yang kita mahu dalam kepingan (eksklusif):
i++;
i += 2;
Sama seperti tatasusunan, anda boleh mengakses dan memanipulasi aksara bebas dalam rentetan.
let x;
let x = 1;
let s = "Hello, World!";
x = 100;
s = "Hello";
ar = [];
ar = [1, 2, 3];
ar = ["A", "B"];
o = { Type: 'car', x : 100, y : 200 };
sum = a + b;
avg = (a + b) / 2;
sum = sum + 10;
i++;
i += 2;
if (mouseX < width) { }
if (hour < 12) { } else { }
if (minute <= 15) { } else if(minute <= 30) { } else { }
for(let i = 0; i < 5; i++) { println(i); }
Nombor rawak amat berguna dalam pengekodan.
Untuk mendapatkan nombor rawak dalam JavaScript antara 0 (termasuk) dan 1 (eksklusif) anda boleh menggunakan fungsi Math.random().
for(let i = 10; i >= 0; i--) { println(i); }
codeguppy.com melanjutkan sokongan untuk nombor rawak dengan arahan tambahan yang membolehkan anda memilih nombor rawak dengan cepat dalam julat pilihan.
Ini sama dengan Math.random()
for(let i = 0; i <= 100; i+=2) { println(i); }
let ar = [10, 20, 30]; for(let element of ar) { println(element); }
let i = 0; while(i < 10) { println(i); i++; }
Anda boleh menggunakan sama ada randomInt atau randomNumber
let i = 0; do { println(i); i++; } while(i < 10)
fungsi randomChar(chr1, chr2)
switch(myExpresion) { case 100: //... break; case 200: //... break; case 300: //... break; default: //... }
// Function balloon draws a balloon using simple shapes such as circle and line // It expects as arguments the coordinates for balloon center and the color of the balloon function balloon(x, y, shapeColor) { let r = 30; let stringLen = 100; fill(shapeColor); stroke(shapeColor); circle(x, y, r); line(x, y + r, x, y + r + stringLen); } // Call function balloon with different parameters balloon(100, 100, "red"); balloon(300, 300, "blue"); balloon(500, 200, "yellow");
function addNumbers(x, y) { return x + y; } // Call a function var sum = addNumbers(100, 200); println(sum);
Untuk menyusun kod anda dengan lebih baik, terutamanya dalam program yang lebih besar, codeguppy.com memperkenalkan konsep modul.
Daripada menulis semua fungsi program dalam satu halaman kod, anda boleh membahagikannya kepada beberapa halaman kod, setiap halaman kod menjadi modul dengan cara ini.
Modul menyediakan enkapsulasi yang kuat untuk pembolehubah dan fungsi yang ditakrifkan di dalamnya. Enkapsulasi ini membolehkan anda mentakrifkan fungsi / pembolehubah dengan nama yang sama dalam modul yang berbeza.
Untuk menggunakan fungsi di dalam modul, anda perlu terlebih dahulu memerlukan modul itu.
let x;
let x = 1;
Nota: Penggunaan lain untuk halaman kod adalah untuk menentukan adegan permainan. codeguppy.com mempunyai pengurus adegan permainan terbina dalam. Sila rujuk artikel Pembangunan Permainan untuk butiran lanjut.
codeguppy.com ialah persekitaran yang hebat untuk aktiviti berasaskan grafik menggunakan kedua-dua grafik cartesian dan penyu.
Dalam codeguppy.com, kanvas grafik ialah 800 x 600 piksel.
Sistem ini secara automatik memulakan pembolehubah lebar dan ketinggian dengan dimensi kanvas
Adalah disyorkan untuk menggunakan pembolehubah ini dalam program anda dan bukannya pemalar pengekodan keras (bila boleh).
let s = "Hello, World!";
clear() digunakan untuk mengosongkan kanvas lukisan. Fungsi ini sangat berguna untuk animasi, di dalam acara gelung(), untuk mengosongkan bingkai sebelum cabutan seterusnya.
x = 100;
Arahan latar belakang digunakan untuk menetapkan warna latar belakang kanvas.
? Arahan latar belakang tidak memadamkan bentuk yang dilukis pada kanvas. Untuk memadamkan kanvas, gunakan clear() sebaliknya.
s = "Hello";
ar = [];
ar = [1, 2, 3];
Nota: Dalam codeguppy.com anda boleh menetapkan walaupun imej sebagai latar belakang. Sila rujuk halaman "Permainan" untuk mendapatkan butiran lanjut tentang cara menetapkan imej sebagai latar belakang.
ar = ["A", "B"];
o = { Type: 'car', x : 100, y : 200 };
sum = a + b;
avg = (a + b) / 2;
sum = sum + 10;
Untuk melukis lengkok, anda tentukan koordinat seperti elips (kedudukan tengah, lebar dan tinggi) dan sebagai tambahan anda tentukan sudut mula dan akhir.
let x;
let x = 1;
let s = "Hello, World!";
Nota: Setelah ditetapkan, tetapan ini akan digunakan pada semua bentuk berturut-turut yang dilukis pada kanvas
x = 100;
s = "Hello";
ar = [];
ar = [1, 2, 3];
ar = ["A", "B"];
o = { Type: 'car', x : 100, y : 200 };
codeguppy.com membolehkan anda menggabungkan grafik cartesian dengan grafik penyu.
Apabila bekerja dengan Turtle Graphics, anda boleh menggunakan penyu lalai (disyorkan untuk pemula dan program biasa) atau mencipta penyu tambahan (untuk program yang kompleks).
Untuk menggunakan penyu lalai, anda hanya perlu menggunakan arahan global berikut.
sum = a + b;
avg = (a + b) / 2;
sum = sum + 10;
i++;
i += 2;
if (mouseX < width) { }
if (hour < 12) { } else { }
if (minute <= 15) { } else if(minute <= 30) { } else { }
for(let i = 0; i < 5; i++) { println(i); }
Nota: Penyu bergerak ke arah yang telah ditetapkan sebelum ini dengan kiri, kanan atau kepala tetap. Jika pen di atas kertas, penyu akan melukis.
for(let i = 10; i >= 0; i--) { println(i); }
Nota: Penyu bergerak ke arah bertentangan daripada bergerak ke hadapan
for(let i = 0; i <= 100; i+=2) { println(i); }
let ar = [10, 20, 30]; for(let element of ar) { println(element); }
let i = 0; while(i < 10) { println(i); i++; }
Dalam program yang kompleks, anda mungkin mendapati berguna untuk bekerja dengan berbilang penyu, kerana setiap daripada mereka mengekalkan keadaan mereka sendiri seperti kedudukan, warna, dll.
let x;
let x = 1;
Seperti yang diperhatikan dalam contoh di atas, codeguppy.com membenarkan pengguna untuk menentukan warna dalam pelbagai cara. Dengan cara ini, anda boleh menggunakan kaedah yang paling mudah untuk program anda.
Terdapat pelbagai warna dengan nama yang dipratentukan dalam codeguppy.com Anda boleh meneroka kesemuanya pada palet "Latar Belakang".
let s = "Hello, World!";
Apabila warna yang dipratentukan tidak mencukupi, anda boleh mencipta sebarang warna dengan menyatakan ammount Merah, Hijau dan Biru. Anda boleh menghantar warna ini sebagai rentetan untuk mengisi dan mengusap fungsi menggunakan format #RRGGBB:
x = 100;
Jika anda perlu mencipta warna kelabu dengan cepat, hanya hantar nombor dari 0 hingga 255 kepada mana-mana fungsi yang menjangkakan warna seperti isian atau strok
s = "Hello";
Cara lain untuk mencipta warna adalah dengan menggunakan fungsi warna dan ammount R, G, B. Amaun ini berada dalam julat 0 hingga 255
ar = [];
Secara lalai, sistem warna codeguppy.com menggunakan mod RGB, dengan warna ditentukan oleh ammount R, G, B (seperti yang dilihat di atas).
Walau bagaimanapun, pengguna lanjutan boleh bertukar kepada mod HSB, di mana warna ditentukan oleh Hue, Ketepuan dan Kecerahan.
Dalam mod HSB, nilai untuk fungsi warna adalah dalam selang 0 - 360
ar = [1, 2, 3];
ar = ["A", "B"];
Semua fungsi trigonometri, serta fungsi lukisan tertentu seperti lengkok berfungsi dengan sudut.
Untuk menarik minat pengkodan muda dan pemula, semua sudut dalam codeguppy.com adalah dalam "DEGREES" secara lalai.
Walau bagaimanapun, pengguna lanjutan boleh bertukar kepada mod "RADIANS" dengan menggunakan angleMode. Jangan lupa untuk bertukar kembali kepada "DEGREES" apabila selesai bekerja dengan RADIANS.
o = { Type: 'car', x : 100, y : 200 };
Melalui perpustakaan p5.js, codeguppy.com menawarkan pengguna satu siri fungsi trigonometri yang mudah digunakan seperti sin, cos, dsb.
sum = a + b;
Untuk melaksanakan animasi, codeguppy.com menawarkan kepada pengguna kaedah yang serupa dengan yang digunakan oleh "kartun": anggap animasi anda sebagai satu siri bingkai! Apa yang anda perlu lakukan ialah melukis bingkai pertama, kemudian padam dan lukis bingkai kedua dalam kedudukan yang berbeza sedikit, dan seterusnya!
Dalam codeguppy.com, function loop() adalah istimewa. Apa yang anda perlu lakukan ialah mentakrifkan fungsi ini dalam kod anda, dan enjin codeguppy.com akan menjalankannya untuk anda sehingga 60 kali sesaat! Tidak perlu memanggilnya sendiri.
let x;
let x = 1;
let s = "Hello, World!";
x = 100;
Terdapat dua cara utama untuk mendapatkan input pengguna papan kekunci/tetikus ke dalam program codeguppy.com: melalui acara atau melalui fungsi gelung() dengan membaca pembolehubah dan fungsi sistem terbina dalam.
enjin codeguppy.com boleh memberitahu program anda apabila acara papan kekunci atau tetikus berlaku. Apa yang anda perlu lakukan ialah mentakrifkan fungsi yang sesuai (cth. pengendali acara) dalam program anda dan sistem akan memanggilnya secara automatik apabila acara itu muncul.
Melaksanakan sekali apabila kekunci ditekan
s = "Hello";
Melaksanakan apabila kunci dilepaskan
ar = [];
Melaksanakan apabila kunci ditaip kecuali untuk kunci khas
ar = [1, 2, 3];
Melaksanakan sekali apabila tetikus ditekan dan dilepaskan
ar = ["A", "B"];
Melaksanakan sekali apabila butang tetikus ditekan
o = { Type: 'car', x : 100, y : 200 };
Melaksanakan apabila butang tetikus dilepaskan
sum = a + b;
Melaksanakan apabila tetikus digerakkan dan butang tidak ditekan
avg = (a + b) / 2;
Melaksanakan apabila tetikus digerakkan butang ditekan
sum = sum + 10;
Melaksanakan apabila tetikus diklik dua kali
i++;
Melaksanakan apabila pengguna menggunakan roda tetikus atau pad sentuh
i += 2;
Selain peristiwa, sistem juga mengisi secara automatik beberapa pembolehubah sistem dengan data acara yang sesuai.
Anda boleh mengakses pembolehubah ini dari dalam pengendali acara atau dari dalam animasi utama / gelung permainan().
Ini biasanya merupakan cara pilihan untuk mendapatkan input pengguna semasa membina permainan.
Pembolehubah sistem Boolean yang menunjukkan jika kekunci ditekan.
if (mouseX < width) { }
Pembolehubah sistem yang mengandungi kunci ditaip terakhir.
if (hour < 12) { } else { }
Pembolehubah sistem yang mengandungi kod kekunci terakhir yang ditekan.
Konsta berikut boleh digunakan dan bukannya kod kunci angka: LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW. Gunakannya tanpa petikan.
if (minute <= 15) { } else if(minute <= 30) { } else { }
Nota: Untuk mencari Kod kunci anda boleh menulis program ujian atau menggunakan tapak seperti keycode.info.
Pembolehubah sistem yang mengandungi koordinat mendatar kursor tetikus.
let x;
Pembolehubah sistem yang mengandungi koordinat menegak kursor tetikus
let x = 1;
Pembolehubah sistem yang mengandungi koordinat mendatar sebelumnya bagi kursor tetikus
let s = "Hello, World!";
Pembolehubah sistem yang mengandungi koordinat menegak sebelumnya bagi kursor tetikus.
x = 100;
Pembolehubah sistem Boolean menunjukkan jika mana-mana butang tetikus ditekan.
Untuk mengesan butang yang ditekan, semak pembolehubah butang tetikus.
s = "Hello";
Pembolehubah sistem yang mengandungi butang tetikus yang ditekan. Ia mempunyai salah satu nilai ini KIRI, KANAN, PUSAT.
Untuk mengesan jika tetikus ditekan, semak tetikusIsPressed.
ar = [];
Gunakan fungsi keyIsDown() di dalam acara gelung() untuk mengesan jika kekunci yang ditentukan ditekan. Anda perlu menyatakan kod kunci.
Konsta berikut boleh digunakan dan bukannya kod kunci angka: LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW. Gunakannya tanpa petikan.
ar = [1, 2, 3];
Nota: Untuk mencari kod utama anda boleh menggunakan tapak seperti keycode.info
keyWentDown() juga bertujuan untuk acara gelung() dan serupa dengan keyIsDown().
Perbezaannya ialah fungsi ini kembali benar sekali sahaja setiap kekunci ditekan. Untuk mencetuskan semula fungsi, pengguna perlu melepaskan kekunci dan menekannya sekali lagi:
/i/code.html?hints/userinput_10
Pembangunan permainan sangat mudah dan menyeronokkan dengan codeguppy.com. Sistem ini dilengkapi dengan imej latar belakang terbina dalam, sprite, muzik dan kesan bunyi untuk membolehkan anda memfokus pada kod dan bukannya mencari aset.
codeguppy.com mempunyai seni bina lukisan berlapis. Terdapat sehingga 5 lapisan lukisan di atas kanvas pada bila-bila masa seperti yang ditunjukkan dalam rajah berikut:
Enjin menggabungkan semua lapisan secara automatik dan memaparkan imej akhir pada skrin.
Arahan latar belakang juga dibentangkan dalam bahagian "Lukisan" sebagai cara untuk menetapkan warna latar belakang kanvas, seperti ini:
ar = ["A", "B"];
Walau bagaimanapun, arahan latar belakang boleh melakukan lebih daripada sekadar menetapkan warna biasa sebagai latar belakang.
Menggunakan fungsi yang sama, anda boleh menetapkan mana-mana imej daripada perpustakaan codeguppy.com sebagai latar belakang:
let x;
? Untuk menetapkan latar belakang kepada imej, buka palet "Latar Belakang", dan seret dan lepaskan imej dalam kawasan kod. Sistem akan menulis kod yang sesuai untuk anda.
Arahan latar belakang menetapkan imej dalam lapisan Latar Belakang seperti yang ditunjukkan dalam rajah di atas. Dengan cara ini imej latar belakang tidak akan dipadamkan atau diubah oleh arahan clear() atau arahan lukisan bentuk atau sprite.
Sprites ialah imej kecil, selalunya dianimasikan, yang boleh anda muatkan dan manipulasi melalui kod. Sprite ialah bahan penting dalam permainan yang berjaya.
codeguppy.com mengandungi perpustakaan besar sprite terbina dalam, dan pada masa yang sama ia menawarkan pengguna keupayaan untuk menentukan sprite tersuai.
Anda boleh memuatkan mana-mana sprite daripada pustaka terbina dalam menggunakan arahan sprite.
Arahan sprite akan memuatkan satah sprite terbina dalam dan meletakkannya di tengah-tengah skrin.
let x = 1;
? Buka palet Sprites dan semak imbas semua sprite terbina dalam yang disertakan. Apabila anda menemui kod yang anda suka, seret dan lepaskannya dalam editor kod dan sistem akan menulis kod secara automatik.
let s = "Hello, World!";
Dalam coretan kod berikut, satah sprite diskalakan kepada 0.5 sebelum diletakkan di tengah-tengah skrin
x = 100;
Dalam coretan kod berikut, satah sprite diskalakan kepada 0.5 sebelum diletakkan di tengah-tengah skrin
s = "Hello";
Untuk sprite berbilang animasi, anda boleh menentukan animasi lalai pada masa muat dengan memasukkannya dalam rentetan yang sama dengan nama sprite menggunakan . simbol (cth. kapal terbang.tembak)
? Anda boleh menemui animasi yang disokong oleh setiap sprite, dengan melayang tetikus di atas sprite dalam palet "Sprites". Semak maklumat yang diberikan dalam petua alat.
ar = [];
Nota: Untuk sprite dengan berbilang animasi, anda juga boleh menukar animasi yang dipaparkan kemudian menggunakan kaedah sprite .show().
Untuk permainan yang memerlukan grafik tersuai, pengguna boleh menentukan sprite tersuai tambahan terus dalam kod. codeguppy.com menggunakan format Arked MakeCode Microsoft untuk sprite tersuai dengan sehingga 16 warna.
Gunakan img dalam templat rentetan, atau sebagai fungsi, untuk menukar teks sprite tersuai kepada imej:
/i/code.html?hints/gamedev_10
Sprite tersuai juga boleh dimuatkan menggunakan arahan sprite. Dengan cara ini anda boleh memanipulasi mereka seperti sprite terbina dalam yang lain:
/i/code.html?hints/gamedev_20
Spirit tersuai juga boleh dianimasikan. Jika anda memerlukan sprite animasi, maka anda perlu mencipta berbilang imej bingkai untuk setiap sprite:
/i/code.html?hints/gamedev_30
Anda juga boleh membungkus berbilang animasi dalam sprite tersuai. Ini membantu anda menukar kemudian pada animasi menggunakan kaedah sprite .show():
/i/code.html?hints/gamedev_40
Jika program anda memerlukan warna yang berbeza, anda boleh menentukan palet tersuai menggunakan setPalette.
/i/code.html?hints/gamedev_41
Nota: Anda boleh mendapatkan palet semasa pada bila-bila masa menggunakan fungsi getPalette().
Pada masa tayangan, sprite tersuai tidak dapat dibezakan daripada sprite terbina dalam. Tidak kira bagaimana anda memuatkan / mencipta sprite, anda boleh memanipulasinya dengan cara yang sama melalui kod.
Arahan sprite mengembalikan rujukan kepada objek yang anda boleh gunakan kaedah dan sifat.
Arahan sprite mengembalikan rujukan kepada objek sprite. Gunakan sifat .x dan .y untuk mengemas kini kedudukan sprite pada skrin.
let x;
Daripada menukar koordinat .x dan .y sendiri, anda boleh membiarkan enjin menggerakkan sprite secara automatik pada paksi x atau y dengan menyatakan nilai untuk .velocity yang sesuai.
let x = 1;
Kadangkala anda perlu membalikkan sprite sama ada pada paksi .x atau paksi .y.
Untuk mencerminkan sprite gunakan kaedah .mirror dengan -1 sebagai hujah. Untuk mencerminkannya ke arah asal gunakan 1 sebagai hujah.
let s = "Hello, World!";
Dalam permainan dan program tertentu, anda mungkin mahu memutar sprite anda pada sudut sewenang-wenangnya. Anda boleh melakukan ini menggunakan sifat .rotation yang membolehkan anda menentukan sudut putaran.
Jika anda mahu sprite berputar secara automatik untuk masa yang tidak ditentukan, anda boleh meletakkannya pada autorotate dengan memberikan nilai yang lebih besar daripada sifar kepada sifat .rotationSpeed:
/i/code.html?hints/gamedev_50
Biasanya, sprite yang baru ditambah dilukis di atas sprite sebelumnya.
Untuk mengawal sprite yang dilukis di atas, dan yang mana dilukis di belakang, anda boleh menggunakan sifat .depth. Sprite dengan kedalaman yang lebih rendah dilukis di belakang sprite yang mempunyai kedalaman yang lebih tinggi.
Anda juga boleh menggabungkan sprite dengan lukisan berbentuk klasik menggunakan API grafik (bulatan, tegak, dsb.).
Jika anda mahu sprite muncul di belakang satah grafik, pastikan anda memberi sprite kedalaman negatif, jika tidak sprite akan dilukis di atas satah grafik.
Jika sprite yang anda pilih mengandungi berbilang animasi, anda boleh menentukan animasi yang ingin anda paparkan pada mulanya dengan menambah nama animasi dengan . dalam rentetan parameter pertama:
let x;
Walau bagaimanapun, kemudian, anda boleh menukar animasi sprite itu menggunakan kaedah .show:
let x = 1;
? Sila semak dengan teliti animasi yang disokong oleh sprite dengan melayang di atas lakaran kecil sprite dalam palet Sprite.
Anda boleh mengesan klik tetikus pada sprite dengan memberikan pengendali acara (cth. fungsi) kepada sifat sprite berikut:
/i/code.html?hints/gamedev_51
Anda boleh menyembunyikan sprite dalam dua cara:
let s = "Hello, World!";
Untuk mengalih keluar sprite secara kekal daripada program, gunakan kaedah .remove() pada sprite. Ini berguna untuk sprite sama seperti musuh yang dimusnahkan, item yang dikumpul, dsb.
Anda juga boleh membuat auto-alih keluar sprite selepas bilangan bingkai tertentu menggunakan sifat .life. Ini berguna untuk objek seperti peluru, roket, dll. yang anda tembak dan melupakannya. Barang koleksi boleh menggunakan harta ini. Secara lalai sifat ini mempunyai nilai -1 (dilumpuhkan).
/i/code.html?hints/gamedev_55
Terdapat 4 kaedah berbeza untuk mengesahkan sama ada sprite berlanggar:
Apabila dipanggil, sesetengah kaedah ini secara automatik menyesarkan sprite, yang lain memberi kesan kepada trajektori mereka. Mereka semua mengembalikan Boolean yang menunjukkan jika perlanggaran berlaku.
Percubaan dengan kaedah ini untuk mengetahui gelagat mereka!
Parameter:
x = 100;
Nota: Cara lain untuk menyemak perlanggaran antara sprite atau antara sprite dan bentuk lain ialah dengan menggunakan fungsi perlanggaran bentuk berikut.
Dalam permainan dengan berbilang sprite jenis yang sama, kadangkala berguna untuk mengumpulkan pelbagai sprite dalam satu kumpulan yang dibuat dengan Kumpulan() baharu
Kaedah utama kumpulan ialah:
/i/code.html?hints/gamedev_60
Nota: Kaedah tertentu, seperti kaedah perlanggaran sprite boleh beroperasi pada keseluruhan kumpulan sprite, bukannya pada sprite tunggal (seperti yang dijelaskan pada halaman sebelumnya).
let x;
Nota: Jika mana-mana muzik dimainkan sebelum ini, arahan muzik akan mengganggunya sebelum memainkan muzik baharu.
let x = 1;
? Gunakan palet "Muzik dan Bunyi" untuk menemui muzik. Apabila anda menemui sesuatu yang anda suka, seret dan lepaskan lagu dalam kawasan kod. Sistem akan menulis kod yang sesuai untuk anda.
let s = "Hello, World!";
Nota: Sistem memainkan selari semua bunyi yang dicetuskan dengan arahan bunyi.
? Gunakan palet "Muzik dan Bunyi" untuk menemui kesan bunyi. Apabila anda menemui sesuatu yang anda suka, seret dan lepaskan lagu dalam kawasan kod. Sistem akan menulis kod yang sesuai untuk anda.
? Jika permainan anda hanya menggunakan sprite, maka kami mengesyorkan anda menggunakan kaedah perlanggaran sprite.
Namun, jika anda tidak menggunakan sprite, atau jika anda menggunakan sprite dalam kombinasi dengan bentuk biasa, anda boleh menggunakan kaedah berikut untuk mengesan perlanggaran. Mereka mengambil sebagai hujah parameter kedua-dua bentuk dan kembali benar jika kedua-dua bentuk bertembung.
Nota: Untuk kemudahan, beberapa arahan ditakrifkan dua kali, dengan hujah yang menerangkan bentuk songsang.
Gunakan mana-mana arahan ini untuk mengesan perlanggaran antara titik dan bulatan:
x = 100;
/i/code.html?hints/gamedev_61
Gunakan mana-mana daripada dua arahan ini untuk mengesan perlanggaran antara titik dan garis:
s = "Hello";
/i/code.html?hints/gamedev_62
Gunakan mana-mana daripada dua arahan berikut untuk mengesan perlanggaran antara titik dan segi empat tepat:
ar = [];
/i/code.html?hints/gamedev_63
Gunakan arahan berikut untuk mengesan perlanggaran antara dua bulatan:
ar = [1, 2, 3];
/i/code.html?hints/gamedev_64
Gunakan mana-mana daripada dua arahan berikut untuk mengesan perlanggaran antara bulatan dan segi empat tepat:
let x;
/i/code.html?hints/gamedev_65
Gunakan arahan berikut untuk mengesan perlanggaran antara dua segi empat tepat:
let x = 1;
/i/code.html?hints/gamedev_66
Gunakan arahan ini untuk mengesan perlanggaran antara dua baris:
let s = "Hello, World!";
/i/code.html?hints/gamedev_67
Gunakan mana-mana daripada dua arahan berikut untuk mengesan perlanggaran antara garisan dan segi empat tepat:
x = 100;
/i/code.html?hints/gamedev_68
Dalam hampir semua permainan, anda perlu menentukan "gelung permainan" - fungsi khas yang terus mendapat input pengguna, mengemas kini keadaan permainan dan memaparkan grafik permainan.
Dalam codeguppy.com anda boleh melaksanakan "gelung permainan" dengan mudah menggunakan fungsi gelung(). Ini adalah fungsi yang sama yang diterangkan pada halaman "Lukisan" dalam bahagian "Animasi". Apa yang anda perlu lakukan ialah mentakrifkan fungsi ini dalam kod anda, dan enjin codeguppy.com akan menjalankannya untuk anda sehingga 60 kali sesaat! Tidak perlu memanggilnya sendiri.
Untuk membuat watak anda bergerak pada skrin, baca papan kekunci dan kemas kini keadaan aksara (cth. kedudukan) di dalam gelung()
/i/code.html?hints/gamedev_70
Jika permainan anda juga menggunakan bentuk klasik, maka anda perlu memaparkan semula bentuk tersebut di dalam fungsi gelung. Sprite dipaparkan secara automatik apabila anda menukar sifatnya.
/i/code.html?hints/gamedev_80
Fikirkan permainan anda sebagai satu siri bingkai! Mulakan dengan melukis bingkai pertama, kemudian padamkannya dan lukis bingkai kedua dalam kedudukan yang berbeza sedikit, dan seterusnya!
enjin codeguppy.com mengimbas kod anda secara automatik sebelum pelaksanaan untuk mengenal pasti aset (cth. latar belakang, sprite, muzik, kesan bunyi) yang perlu dimuatkan. Enjin mengenal pasti ini dengan melihat latar belakang yang sepadan, sprite, muzik dan arahan bunyi yang anda gunakan.
Jika arahan ini tidak menyatakan aset sebagai pemalar, maka anda perlu pramuat aset yang diperlukan menggunakan fungsi pramuat. Hanya senaraikan semua aset yang diperlukan dipisahkan koma:
s = "Hello";
Sokongan untuk membina permainan berbilang babak ialah salah satu sorotan utama persekitaran codeguppy.com!
Dengan menambahkan lebih banyak adegan pada permainan, permainan anda akan kelihatan lebih gilap. Dalam permainan biasa, anda mungkin ingin mencipta adegan "Pengenalan" untuk menerangkan cara bermain permainan, adegan "Permainan" sebenar dan adegan "Tahniah" yang menunjukkan ucapan tahniah / skor selepas anda menamatkan permainan.
Setiap adegan dibuat dalam halaman kod baharu. Pastikan anda menamakan halaman kod dengan betul kerana kami perlu merujuknya kemudian.
Apabila program bermula ia akan sentiasa menjalankan adegan pertama yang anda tentukan. Untuk menunjukkan adegan lain, anda perlu menggunakan kaedah showScene:
let x;
Jika adegan anda mengandungi fungsi bernama enter, maka enjin akan menjalankan fungsi ini secara automatik apabila adegan dimasukkan / ditunjukkan. Dalam permainan biasa adegan mungkin ditunjukkan lebih daripada sekali semasa permainan. Sebagai contoh, adegan "Permainan" akan ditunjukkan setiap kali pengguna memulakan semula permainan daripada adegan "Pengenalan".
Ini memberi anda keupayaan untuk menetapkan keadaan adegan dengan sewajarnya.
Nota: Kod longgar di luar fungsi dilaksanakan sekali sahaja setiap adegan. Paparan adegan berturut-turut tidak akan mencetuskan kod itu lagi.
let x = 1;
Dalam kes tertentu, adalah berguna untuk menghantar data ke adegan melalui kaedah showScene. Sebagai contoh, anda boleh menghantar pilihan permainan daripada adegan "Pengenalan" kepada adegan "Permainan", atau pemain menjaringkan gol daripada adegan "Permainan" kepada adegan "Tahniah".
let s = "Hello, World!";
Di dalam adegan "Tahniah", anda boleh mendapatkan semula data yang diluluskan ini dengan cara berikut:
x = 100;
s = "Hello";
Di dalam adegan "Tahniah", anda boleh mendapatkan semula data yang diluluskan ini dengan cara berikut:
ar = [];
Untuk pemahaman yang lebih mendalam tentang cara bekerja dengan sprite dalam codeguppy.com, sila rujuk tutorial ini:
codeguppy.com juga boleh digunakan untuk mempraktikkan algoritma atau melaksanakan program dengan UI input data asas. Artikel ini menerangkan sokongan untuk program jenis ini.
Gunakan arahan print dan println untuk mencetak nombor, rentetan dan maklumat lain dengan cepat di atas kanvas. Arahan ini beroperasi pada lapisan teks boleh tatal yang berasingan.
Arahan ini sesuai untuk menyahpepijat atur cara, untuk mempraktikkan elemen bahasa atau algoritma:
ar = [1, 2, 3];
/i/code.html?hints/other_10
Nota: println menambah aksara baris baharu selepas setiap cetakan, manakala cetakan tidak.
codeguppy.com menawarkan arahan mudah untuk mencipta antara muka pengguna input data.
Untuk mencipta kotak input satu baris, gunakan arahan createEdit, menyatakan kedudukan kawalan dan lebar.
let x;
Untuk membuat kotak input berbilang baris, anda juga perlu menentukan ketinggian. Jika anda meninggalkan parameter ketinggian, maka sistem akan membina kotak input satu baris secara automatik.
let x = 1;
Perhatikan bahawa arahan createEdit mengembalikan rujukan kepada objek kotak edit. Anda boleh menggunakan sifat berikut untuk memanipulasi kandungan kotak edit.
Contoh:
let s = "Hello, World!";
Satu lagi elemen UI yang boleh anda buat dalam lapisan UI ialah butang tekan biasa.
x = 100;
Arahan createButton mengembalikan rujukan kepada objek butang yang dicipta. Anda boleh menggunakan rujukan ini untuk mengakses sifat seperti:
Contoh:
https://codeguppy.com/code.html?hints/other_20
JavaScript ialah alat penting untuk membina aplikasi interaktif dan dinamik, dan memahami konsep terasnya ialah langkah pertama ke arah menguasai bahasa berkuasa ini. Panduan ini memperkenalkan asas JavaScript utama, menawarkan rujukan pantas dan praktikal untuk pembolehubah, gelung, fungsi dan banyak lagi. Dengan berlatih di codeguppy.com, pelajar boleh mengambil pengetahuan baharu mereka dan mengaplikasikannya secara langsung pada latihan pengekodan, memperdalam pemahaman mereka melalui pengalaman praktikal. Sambil anda meneruskan penerokaan JavaScript, ingat bahawa amalan dan percubaan yang konsisten adalah kunci untuk menjadi mahir dan membuka potensi penuh pengekodan kreatif.
Atas ialah kandungan terperinci Pengenalan pantas kepada JavaScript dan codeguppy.com. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!