JavaScript와 CSS를 이용한 동전 던지기 게임
23486 단어 webdevjavascriptbeginnershtml
Watch its live demo 그것의 작업 원리를 이해한다.나는 여기에 상자를 하나 만들었다.나는 먼저 두 장의 그림으로 상자 안에 동전을 하나 만들었다.그 다음에 작은 상자가 있는데, 게임의 결과가 거기에 나타날 것이다.다음은 두 개의 단추가 있는데, 하나는 게임을 시작하고, 다른 하나는 게임을 다시 시작합니다.
"동전 던지기"단추를 눌렀을 때, 동전은 계속 x축을 따라 회전할 것이다.3초 동안 회전하면 어느 방향으로 멈춘다.멈추는 방식은 완전히 무작위로 결정된다.이를 위해 JavaScript의 수학을 사용했습니다.임의 함수.
1단계: 동전 던지기 게임의 기본 구조
아래의 HTML과 CSS 코드를 사용하여 이 동전 게임의 기본 구조를 만들었습니다.이것
width is 400px
과 높이는 패드에 달려 있다.여기
white as background-color
를 사용했습니다.경계 반지름은 상자의 네 모서리를 둥글게 만드는 데 도움이 됩니다.<div class="container">
</div>
*{
padding: 0;
margin: 0;
box-sizing: border-box;
font-family: "Rubik",sans-serif;
}
body{
height: 100%;
background: #1f5a82;
}
.container{
background-color: #ffffff;
width: 400px;
padding: 35px;
position: absolute;
transform: translate(-50%,-50%);
top: 50%;
left: 50%;
box-shadow: 15px 30px 35px rgba(0,0,0,0.1);
border-radius: 10px;
-webkit-perspective: 300px;
perspective: 300px;
}
2단계: 이미지로 코인 만들기
지금 나는 두 장의 그림으로 동전을 창조했다.이 동전에 대해 나는 두상과 꼬리상을 사용했다.당신은 this link를 클릭하여 사진을 다운로드할 수 있습니다.아니면 네가 선택한 인터넷에서 다운로드할 수도 있다.
가능한 한 그림의 크기를 똑같이 하고 배경을 투명하게 하세요.
images are 145 px
와 position: absolute
의 높이와 너비.나는 여기
transform: rotateX
를 사용하여 두 이미지를 서로 마주보는 쪽에 놓았다.여기서 두 번째 그림180 along the x axis
을 돌립니다.그 결과 첫 번째 이미지와 두 번째 이미지는 서로의 반대편에 있습니다.우리가 동전을 180도로 돌릴 때마다 우리는 두 번째 그림을 볼 수 있다.<div class="coin" id="coin">
<div class="heads">
<img src="head.jpg">
</div>
<div class="tails">
<img src="tails.jpg">
</div>
</div>
.coin{
height: 150px;
width: 150px;
position: relative;
margin: 32px auto;
-webkit-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.coin img{
width: 145px;
}
.heads,.tails{
position: absolute;
width: 100%;
height: 100%;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.tails{
transform: rotateX(180deg);
}
현재 나는 @keyframes
의 도움 아래 동전을 회전시킬 계획을 세웠다.네가 버튼을 눌렀을 때 동전은 몇 번 회전할 것이다.다음 코드는 이 회전을 지정하는 데 사용됩니다.이 예에서, 내가 사용하는 각도는 첫 번째 그림보다 180도 많다.내가 왜 이러는지 알고 싶을 수도 있어.
The main reason for this is that I have already seen the second image rotated at a 180 degree angle. So in this case I used a 180 degree angle less.
@keyframes spin-tails{
0%{
transform: rotateX(0);
}
100%{
transform: rotateX(1980deg);
}
}
@keyframes spin-heads{
0%{
transform: rotateX(0);
}
100%{
transform: rotateX(2160deg);
}
}
3단계: 게임 결과를 보기 위한 디스플레이 만들기
현재 나는 이 게임의 결과를 볼 수 있는 모니터를 만들었다.
<div class="stats">
<p id="heads-count">Heads: 0</p>
<p id="tails-count">Tails: 0</p>
</div>
.stats{
display: flex;
color: #101020;
font-weight: 500;
padding: 20px;
margin-bottom: 40px;
margin-top: 55px;
box-shadow: 0 0 20px rgba(0,139,253,0.25);
}
.stats p:nth-last-child(1){
margin-left: 50%;
}
4단계: 동전 던지기 게임 컨트롤 버튼
마지막으로 나는 두 개의 버튼을 만들었다.한 경기를 시작하고 다른 경기를 다시 시작하다.버튼이 두 개
widths 150 px
인데, 나는 테두리 반경을 사용해서 둥글게 만들었다.<div class="buttons">
<button id="flip-button">Flip Coin</button>
<button id="reset-button">Reset</button>
</div>
.buttons{
display: flex;
justify-content: space-between;
}
button{
width: 150px;
padding: 15px 0;
border: none;
font-size: 16px;
border-radius: 5px;
cursor: pointer;
}
지금 나는 다른 색깔로 두 개의 버튼을 만들었다.나는 파란색을 첫 번째 배경색으로 하고 자갈을 두 번째 배경색으로 한다.#flip-button{
background-color: #053469;
color: #ffffff;
}
#reset-button{
background-color: #674706;
color: white;
}
5단계:JavaScript를 사용하여 이 동전 던지기 게임 활성화
위에서 우리는 HTML과 CSS를 통해 전체 프로그램을 설계했다.이 자바스크립트 동전 던지기 게임이 자바스크립트의 도움으로 충분히 기능을 발휘할 때가 됐다.우선, 나는 고체 용제의 일부 종류와 ID 함수를 확정했다.
let coin = document.querySelector(".coin");
let flipBtn = document.querySelector("#flip-button");
let resetBtn = document.querySelector("#reset-button");
헤드와tail의 값을 0으로 설정했습니다. 이것은 게임이 정상적인 조건에서 시작될 때 이 두 값 will be zero
의 값을 의미합니다.let heads = 0;
let tails = 0;
현재 나는 이미if 함수로 그것을 실현했다.나는 I에서 Math.random
를 사용하여 무작위 값을 설정하고 setTimeout을 사용하여 시간을 설정했다.여기에서 나는 3000밀리초를 사용했다. 이것은 이 동전이 계속 3000밀리초를 회전할 것이라는 것을 의미한다.flipBtn.addEventListener("click", () => {
let i = Math.floor(Math.random() * 2);
coin.style.animation = "none";
if(i){
setTimeout(function(){
coin.style.animation = "spin-heads 3s forwards";
}, 100);
heads++;
}
else{
setTimeout(function(){
coin.style.animation = "spin-tails 3s forwards";
}, 100);
tails++;
}
setTimeout(updateStats, 3000);
disableButton();
});
현재 나는 이미 아래 코드를 사용하여 모니터에 게임 결과를 표시했다.이것은 네가 처음과 끝의 가치를 계산하는 데 도움을 줄 것이다.function updateStats(){
document.querySelector("#heads-count").textContent = `Heads: ${heads}`;
document.querySelector("#tails-count").textContent = `Tails: ${tails}`;
}
지금 나는 비활성화 버튼을 활성화했다.여기 데시벨 버튼이 없다고 생각하실 수도 있어요.❓🤔실제로 동전이 계속 회전할 때, '뒤집기 단추' 는 전 데시벨 모드로 들어간다.따라서 3초 동안 이 버튼을 클릭할 수 없습니다.이것은 주로 게임의 균형을 유지하기 위해서다.
function disableButton(){
flipBtn.disabled = true;
setTimeout(function(){
flipBtn.disabled = false;
},3000);
}
지금 리셋 버튼이 켜져 있습니다.재설정 버튼을 클릭하면 머리와 꼬리의 값이 0이 됩니다.그것을 볼 수 있는 애니메이션이 없다는 것은 동전이 정지된다는 것을 의미한다.resetBtn.addEventListener("click",() => {
coin.style.animation = "none";
heads = 0;
tails = 0;
updateStats();
});
지금 이것javascript Coin Toss Game은 완전히 너를 오락하기 위해서다.현재 나는 몇몇 css 코드를 사용하여 비활성화 단추를 설계했다.
#flip-button:disabled{
background-color: #e1e0ee;
border-color: #e1e0ee;
color: #101020;
}
이 단추를 눌렀을 때, 이 단추의 배경색과 텍스트 색이 3초 동안 바뀝니다.나는 당신이 본문에서 내가 어떻게 자바스크립트를 사용하여 이 동전 던지기 게임을 만들었는지 이해하기를 바랍니다.반드시 너의 이 강좌에 대한 견해를 평론해야 한다.
너는 나의 블로그를 방문해서 더 많은 유사한 강좌를 얻을 수 있다.😊
https://www.foolishdeveloper.com/
Reference
이 문제에 관하여(JavaScript와 CSS를 이용한 동전 던지기 게임), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/shantanu_jana/coin-toss-game-using-javascript-css-1cf0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)