[まず作ったJS]ミニスターウォーズ
28352 ワード
🎮 小型スターウォーズ
jQueryって何?
今回実施するプロジェクトはjQueryを中心に行います.jQueryはJSを使いやすくするライブラリです.
以前は、HTMLで値を入力して使用する場合、次のコードを使用して長いコードを記述する必要がありました.document.getElementById('content').value;
ただし、jQueryを使用して同じ内容を記述すると、このような場合があります.$('content').val();
💡 jQueryのメリット
1.簡潔な文法
2.便利なAPI
3.クロスブラウザ
IE、Chrome、Firefox、Safariなどの各ブラウザのバージョンの違いにより、それらの動作はやや異なりますが、jQueryを使用するとこれらの問題を解決できます.すべてのブラウザとすべてのバージョンに適用されるためです.
jQueryの使用方法は以下の通りである.
document.getElementById('content').value;
$('content').val();
<script
src="https://code.jquery.com/jquery-3.5.1.js"
integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc="
crossorigin="anonymous"></script>
$(선택자).행위
jQueryにインポートする方法<textarea id="content">jQuery를 배워보자</textarea>
これで持ってきて完成!console.log($('#content').val());
jQueryでイベントを使用することもできます.本プロジェクトではclickイベントを使用し、JSではonclick
キーワードを使用できます.<button id="click" onclick="hello();">클릭</button>
<script>
function hello() {
console.log('hello');
}
</script>
jQueryバージョンのクリックイベントはこのように使用できます.<button id="click">클릭</button>
<script>
function hello() {
console.log('hello');
}
$('#click').click(hello);
</script>
匿名関数
1回の関数のみを使用する場合は、定義と呼び出しを2回行う必要があるため、効率が低下します.このとき匿名関数を使うと便利です.
匿名関数は、関数名を指定する必要はありません.関数を定義する必要はありません.
$('#click').click(function() {
console.log('hello');
});
実装の開始
今では使うべき概念を理解し、ミニスターウォーズを本格的に作り始めましょう.
ドローンをクリックすると、発射針の形で実現するので、このように記入します.fadeIn()関数は、jQueryのホームページでも見られる効果をサポートします.
$('#drone').click(function(){
$('#spit').fadeIn();
});
.animate関数を使用して、送信された針をターゲットにヒットさせます.
fadeIn
で出現した針が目標物に到達する必要があるため、.animate
関数で針の位置を右に押す.位置をleft: '+=250'
に指定し、左側から250 px離れた場所に送信します.$('#drone').click(function(){
$('#spit').fadeIn();
$('#spit').animate({left: '+=250'});
});
目標を達成した以上、目標を達成した針が消えるアニメーションを実現します.後に消える効果が必要なので、
fadeOut
を使用します.しかし、運行するとドローンをクリックして唾液がバンカーに触れて消え、再びドローンをクリックするとバンカーに到着した位置で再度打ち上げられます.透明化されていますが、再びドローンを押すと、最初の位置に戻り、発射の形に変わります.
このためには、.css()関数が使用されます.jQueryで変更したいcssの内容を変更できます.現在cssのポインタ(
spit
)の位置はleft: 150px
として指定されているので、.css()
関数では初期位置として設定されている.$('#drone').click(function(){
$('#spit').fadeIn();
$('#spit').animate({left: '+=250'});
$('#spit').fadeOut();
$('#spit').css({left: '150px'});
});
打ち上げの動きは完璧で、ピットHPの減少したアニメーションを実現しましょう.
リポジトリ内のHPを3として指定し、hp変数に割り当て、
click
関数に対応するコードを記述します.しかし、ドローンをクリックすると、数字が減ります.コードは上から順に実行されるので、アニメーション実行中にはhp - 1
が計算される.この現象を防止するためにコールバック関数を用いた.コールバック関数は、上述した動作の終了を待ち、終了後に実行されるように動作する.
無人機をクリックすると、マスクに撃たれた後、hpが減少するはずなので、
fadeOut
の後、fadeOut
内で関数を記述して、hpが減少するようにします.var hp = 3;
$('#drone').click(function(){
$('#spit').fadeIn();
$('#spit').animate({left: '+=250'});
$('#spit').fadeOut(function(){
hp = hp - 1;
$('#hp').text('HP :' + hp);
});
$('#spit').css({left: '150px'});
});
hpがなければ、攻撃は成功し、砂場は消えるはずだ.この機能も
fadeOut
以降に実行される必要があるため、コールバック関数に条件文を記述し、hpが0の場合に実行されることを示します.var hp = 3;
$('#drone').click(function(){
$('#spit').fadeIn();
$('#spit').animate({left: '+=250'});
$('#spit').fadeOut(function(){
hp = hp - 1;
$('#hp').text('HP: ' + hp);
if(hp == 0) {
$('#bunker').fadeOut();
}
});
$('#spit').css({left: '150px'});
});
上のコードは0になってもゲームは終わりませんが、負数で表示され、無限に繰り返されるので、0になったら、最初からのコードで再実現します.var hp = 300;
$("#drone").click(function () {
if (hp == 0) {
$("#bunker").fadeIn();
hp = 300;
$("#hp").text("HP: " + hp);
} else {
$("#spit").fadeIn();
$("#spit").animate({ left: "+=250" });
$("#spit").fadeOut(function () {
hp = hp - 50;
$("#hp").text("HP: " + hp);
if (hp == 0) {
$("#bunker").fadeOut();
}
});
$("#spit").css({ left: "150" });
}
});
Reference
この問題について([まず作ったJS]ミニスターウォーズ), 我々は、より多くの情報をここで見つけました https://velog.io/@plutoin/일단-만드는-JS-미니-스타크래프트テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol