• Forumzar.COM Türkçe içerikli genel forum sitesi ve paylaşım platformu olarak eğlenceli ve interaktif bir forum deneyim sunar.

    Foruma üye olmak için BURAYA TIKLAYINIZ

JavaScript Basit Yılan Oyunu Yapimi.

Linux

Owner
Katılım
31 Tem 2022
Mesajlar
7,101
Puanları
63
Konum
istanbul
Cinsiyet
Erkek
Kod:
Kod:
<!documentTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>ForumCSDARK Basit Yilan Oyunu</title>
<style type="text/css">
body {text-align:center;}
canvas { border:5px dotted #ccc; }
h1 { font-size:50px; text-align: center; margin: 0; padding-bottom: 25px;}
</style>
<script type="text/javascript">
function play_game()
{
var level = 160; // Oyun Seviyesi, Azalttıkca daha çok hizlanır.
var rect_w = 45; // Genişlik.
var rect_h = 30; // Yükseklik.
var inc_score = 50; // Skor.
var snake_color = "#006699"; // Yilanımızın Rengi.
var ctx; // Tuval Özellikleri.
var tn = []; // Geçiçi Talimatlar.
var x_dir = [-1, 0, 1, 0]; // Pozisyon Ayarlarimiz.
var y_dir = [0, -1, 0, 1]; // Pozisyon Ayarlarimiz.
var queue = [];
var frog = 1; // Varsayilan Yemek.
var map = [];
var MR = Math.random;
var X = 5 + (MR() * (rect_w - 10))|0; // Pozisyon Hesaplama.
var Y = 5 + (MR() * (rect_h - 10))|0; // Pozisyon Hesaplama.
var direction = MR() * 3 | 0;
var interval = 0;
var score = 0;
var sum = 0, easy = 0;
var i, dir;
// Oyun Alani ayarlari.
var c = document.getElementById('playArea');
ctx = c.getContext('2d');
// Map positions
for (i = 0; i < rect_w; i++)
{
map[i] = [];
}
// Rastgele Yilan yemi ayarlari.
function rand_frog()
{
var x, y;
do
{
x = MR() * rect_w|0;
y = MR() * rect_h|0;
}
while (map[x][y]);
map[x][y] = 1;
ctx.fillStyle = snake_color;
ctx.strokeRect(x * 10+1, y * 10+1, 8, 8);
}
// Varsayilan Yerleştirmeler.
rand_frog();
function set_game_speed()
{
if (easy)
{
X = (X+rect_w)%rect_w;
Y = (Y+rect_h)%rect_h;
}
--inc_score;
if (tn.length)
{
dir = tn.pop();
if ((dir % 2) !== (direction % 2))
{
direction = dir;
}
}
if ((easy || (0 <= X && 0 <= Y && X < rect_w && Y < rect_h)) && 2 !== map[X][Y])
{
if (1 === map[X][Y])
{
score+= Math.max(5, inc_score);
inc_score = 50;
rand_frog();
frog++;
}
//ctx.fillStyle("#ffffff");
ctx.fillRect(X * 10, Y * 10, 9, 9);
map[X][Y] = 2;
queue.unshift([X, Y]);
X+= x_dir[direction];
Y+= y_dir[direction];
if (frog < queue.length)
{
dir = queue.pop()
map[dir[0]][dir[1]] = 0;
ctx.clearRect(dir[0] * 10, dir[1] * 10, 10, 10);
}
}
else if (!tn.length)
{
var msg_score = document.getElementById("msg");
msg_score.innerHTML = "Oynu Oynadiginiz Icin Tesekkurler.<br /> Skorunuz : <b>"+score+"</b><br /><a href='http://www.ForumCSDARK.com/'>Sitemizi ziyaret etmeyi unutmayın.</a><br /><br /><input type='button' value='Tekrar Oyna' onclick='window.location.reload();' />";
document.getElementById("playArea").style.display = 'none';
window.clearInterval(interval);
}
}
interval = window.setInterval(set_game_speed, level);
document.onkeydown = function(e) {
var code = e.keyCode - 37;
if (0 <= code && code < 4 && code !== tn[0])
{
tn.unshift(code);
}
else if (-5 == code)
{
if (interval)
{
window.clearInterval(interval);
interval = 0;
}
else
{
interval = window.setInterval(set_game_speed, 60);
}
}
else
{
dir = sum + code;
if (dir == 44||dir==94||dir==126||dir==171) {
sum+= code
} else if (dir === 218) easy = 1;
}
}
}
</script>
</head>
<body onload="play_game()">
<h1>ForumCSDARK.com Basit Yilan Oyunu - Edwen*</h1>
<div id="msg"></div>
<canvas id="playArea" width="450" height="300">Browseriniz Html5 Teknolojisini Desteklemiyor</canvas>

</body>
</html>


Kullanımı: Kodu kopyalayıp yeni bir metin belgesi oluşturun. CTRL + V ile İçerisine yapıştırdıktan sonra Farklı kaydet diyerek isim.html şeklinde kaydedin. Daha sonra çalıştırarak test edin.
 

Genel Forum Sitesi

Forum Sitesi - Forumzar.COM

Forumzar.COM olarak, Türkçe forum sitesi denildiğinde akla gelen ilk adres olarak, geniş kapsamlı genel forum platformumuzda buluşuyoruz. Türkiye'nin en büyük Türkçe forum siteleri arasında yer almanın gururunu yaşıyoruz. Çeşitli konu başlıklarında aktif bir şekilde paylaşımların yapıldığı, her konuda interaktif ve bilgilendirici tartışmalara katılmak için bizi takip edin! ve bir dakikanızı ayırarak forum sitemize üye olun!

Forum Siteleri

Bilgi paylaştıkça çoğalır sloganı ile ilerleyen forum sitesi platformumuza, siz de üye olarak forum sitemizde açılan konulara katılabilir ve ilgi alanınıza uygun konular açarak siz de paylaşımda bulunabilirsiniz.