ผู้เขียน : นางสาวปุณณิสา ลิ่มเฮงฮะ รหัสนักศึกษา 167404130086
คณะวิศวกรรมศาสตร์ : สาขาวิศวกรรมไฟฟ้า
วิชา : 04000104 การโปรแกรมคอมพิวเตอร์ 1/2567
1.ความเป็นมา
เกมหลบวัตถุเป็นเกมรูปแบบง่ายๆช่วยพัฒนาทักษะการตัดสินใจ,การแก้ปัญหาเฉพาะหน้า ในบทความนี้เราจะนำเสนอเกมหลบวัตถุที่เขียนโดย HTML,CSS และJavaScript เป็นภาษาที่เข้าใจง่ายและใช้ในการพัฒนาเบราว์เซอร์ได้อย่างมีประสิทธิภาพ
2.วัตถุประสงค์
1.เพื่อเรียนรู้การใช้ภาษา HTML,CSS และJavaScript
2.เพื่อพัฒนาเกมหลบวัตถุให้ดีขึ้น
3.เพื่อพัฒนาเกมหลบวัตถุ
3.ขอบเขต
1.พัฒนาเกมหลบวัตถุ
2.ใช้ภาษา HTML,CSS และJavaScript ในการพัฒนาเกมและหน้าเบราว์เซอร์
3.ตัวเกมสามารถทำงานได้อย่างมีประสิทธิภาพไม่เกิดปัญหา
4.ประโยชน์ที่คาดว่าจะได้รับ
1.ผู้พัฒนาจะสามารถเข้าใจพื้นฐานการใช้ HTML,CSS และJavaScript
2.มีความรู้ความเข้าใจในการสร้างเกมและพัฒนาเบราว์เซอร์
5.ความรู้ที่เกี่ยวข้อง
1. CSS (Cascading Style Sheets): ใช้สำหรับตกแต่งและจัดรูปแบบของหน้าเว็บ
2. HTML (HyperText Markup Language): ใช้ในการสร้างโครงสร้างพื้นฐานของหน้าเว็บ
3. JavaScript : ใช้ในการพัฒนาเกมและควบคุมการทำงานของเกม การโต้ตอบกับผู้เล่น
6.ผลการดำเนินงาน
1.พัฒนาเกมหลบวัตถุสำเร็จ
2.สามารถแก้ไขปัญหาที่เกิดในระหว่างการสร้างเกมได้
3.หน้าเว็บมีความเสถียรและสามารถตอบสนองได้ดี
7.ผลการทดลอง
1.เกมมีความเสถียร สามารถตอบสนองกับผู้เล่นได้ดี
2.เกมสามารถเล่นได้อย่างลื่นไหลไม่สะดุดบน Google Chrome และ Microsoft Edge
8.สรุปผลการทดลอง
การพัฒนาเกมหลบวัตถุนี้ มีความไหลลื่น เสถียร สามารถตอบสนองกับผู้เล่นได้อย่างดี ประสบความสำเร็จตามวัตถุประสงค์ที่ตั้งไว้
9.เอกสารอ้างอิง
1.HTML (Hyper Text Markup Language) จาก : https://searchstudio.co.th/th/seo/what-is-html/
2.JavaScript จาก : https://developer.mozilla.org/en-US/docs/Web/JavaScript
3.CSS (Cascading Style Sheets) จาก : https://www.w3schools.com/html/html_css.asp
10.วีดีโอแนะนำเกมและโปรแกรม
โปรแกรม
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>เกมหลบวัตถุ</title>
<style>
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f0f0f0;
margin: 0;
}
#gameArea {
width: 300px;
height: 500px;
border: 2px solid #333;
position: relative;
background-color: #ddd;
overflow: hidden;
}
#player {
width: 30px;
height: 30px;
background-color: #f973fb;
position: absolute;
bottom: 0;
left: 135px;
}
.obstacle {
width: 30px;
height: 30px;
background-color: #333;
position: absolute;
top: 0;
}
#score {
position: absolute;
top: 10px;
left: 10px;
font-size: 18px;
font-weight: bold;
}
#playAgain {
display: none;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
padding: 10px 20px;
font-size: 18px;
background-color: #ff6347;
color: #fff;
border: none;
border-radius: 5px;
cursor: pointer;
}
</style>
</head>
<body>
<div id="gameArea">
<div id="score">Score: 0</div>
<div id="player"></div>
<button id="playAgain" onclick="restartGame()">Play Again</button>
</div>
<script>
const gameArea = document.getElementById('gameArea');
const player = document.getElementById('player');
const scoreDisplay = document.getElementById('score');
const playAgainButton = document.getElementById('playAgain');
let playerPos = 135;
let score = 0;
const gameWidth = gameArea.clientWidth;
const playerWidth = player.clientWidth;
let gameInterval;
document.addEventListener('keydown', (event) => {
if (event.key === 'ArrowLeft' && playerPos > 0) {
playerPos -= 15;
player.style.left = playerPos + 'px';
} else if (event.key === 'ArrowRight' && playerPos < gameWidth - playerWidth) {
playerPos += 15;
player.style.left = playerPos + 'px';
}
});
function createObstacle() {
const obstacle = document.createElement('div');
obstacle.classList.add('obstacle');
obstacle.style.left = Math.floor(Math.random() * (gameWidth - 30)) + 'px';
gameArea.appendChild(obstacle);
let obstaclePos = 0;
const fallInterval = setInterval(() => {
if (obstaclePos >= gameArea.clientHeight - 30) {
clearInterval(fallInterval);
gameArea.removeChild(obstacle);
updateScore();
} else if (obstaclePos >= gameArea.clientHeight - 60 &&
playerPos <= parseInt(obstacle.style.left) + 30 &&
playerPos + 30 >= parseInt(obstacle.style.left)) {
endGame();
clearInterval(fallInterval);
} else {
obstaclePos += 5;
obstacle.style.top = obstaclePos + 'px';
}
}, 20);
}
function updateScore() {
score += 1;
scoreDisplay.textContent = `Score: ${score}`;
}
function endGame() {
clearInterval(gameInterval);
playAgainButton.style.display = 'block';
}
function restartGame() {
score = 0;
scoreDisplay.textContent = `Score: ${score}`;
playAgainButton.style.display = 'none';
playerPos = 135;
player.style.left = playerPos + 'px';
const obstacles = document.querySelectorAll('.obstacle');
obstacles.forEach(obstacle => obstacle.remove());
gameInterval = setInterval(createObstacle, 1000);
}
gameInterval = setInterval(createObstacle, 1000);
</script>
</body>
</html>