HTML หรือ Hyper Text Markup Language คือ ภาษาคอมพิวเตอร์ที่ใช้ในการแสดงผลบน WebSite ส่วนมากใช้ในการจัดแต่งหน้า Website บทความนี้จะกล่าวถึงการสร้างเกมควบคุมกล่องสี่เหลี่ยม โดยเราจะทำปุ่มเลือนขึ้น, ลง, ซ้าย, ขวา โดยเขียนฟังก์ชั่นควบคุมการทำงานแต่ละปุ่มแยกส่วนเอาไว้ตามทิศทางที่กำหนด สร้าง Properties ใน Component 2 ตัว คือ speedX และ speedY โดยเพิ่มฟังก์ชั่นใน Component ชื่อ newPos() มี Properties 2 ตัว speedX และ speedY เพื่อเปลี่ยนตำแหน่งของ Component ฟังก์ชัน newPos() ถูกเรียกจากฟังก์ชัน updateGameArea ก่อนที่จะวาด Component (สี่เหลี่ยมสีแดง) และเมื่อปล่อยปุ่มสี่เหลี่ยมสีแดงจะหยุด ให้เพิ่มฟังก์ชั่นชื่อ clearmove และกำหนดความเร็วเป็น 0
ตัวอย่างโค้ด
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<style>
canvas {
border:1px solid #d2d2d2;
background-color: #ffff;
}
</style>
</head>
<body onload="startGame()">
<script>
var myGamePiece;
function startGame() {
myGamePiece = new component(40, 40, "green", 210, 210);
myGameArea.start();
}
var myGameArea = {
canvas : document.createElement("canvas"),
start : function() {
this.canvas.width = 500;
this.canvas.height = 500;
this.context = this.canvas.getContext("2d");
document.body.insertBefore(this.canvas, document.body.childNodes[0]);
this.interval = setInterval(updateGameArea, 20);
},
clear : function() {
this.context.clearRect(0, 0, this.canvas.width, this.canvas.height);
}
}
function component(width, height, color, x, y) {
this.width = width;
this.height = height;
this.speedX = 0;
this.speedY = 0;
this.x = x;
this.y = y;
this.update = function() {
ctx = myGameArea.context;
ctx.fillStyle = color;
ctx.fillRect(this.x, this.y, this.width, this.height);
}
this.newPos = function() {
this.x += this.speedX;
this.y += this.speedY;
}
}
function updateGameArea() {
myGameArea.clear();
myGamePiece.newPos();
myGamePiece.update();
}
function moveup() {
myGamePiece.speedY = -1;
}
function movedown() {
myGamePiece.speedY = 1;
}
function moveleft() {
myGamePiece.speedX = -1;
}
function moveright() {
myGamePiece.speedX = 1;
}
function clearmove() {
myGamePiece.speedX = 0;
myGamePiece.speedY = 0;
}
</script>
<div style="text-align:center;width:480px;">
<button onmousedown="moveup()" onmouseup="clearmove()" ontouchstart="moveup()">ขึ้น</button><br><br>
<button onmousedown="moveleft()" onmouseup="clearmove()" ontouchstart="moveleft()">ซ้าย</button>
<button onmousedown="moveright()" onmouseup="clearmove()" ontouchstart="moveright()">ขวา</button><br><br>
<button onmousedown="movedown()" onmouseup="clearmove()" ontouchstart="movedown()">ลง</button>
</div>
</body>
</html>
ผลลัพธ์
ก่อนกดปุ่ม
หลังกดปุ่ม1
อ้างอิง : w3schools
ข่าวสารเพิ่มเติมเกี่ยวกับ HTML