Bu kodlarda bi sorun yok sadece yılan yön tuşlarından birine bastığımızda sürekli o yöne hareket etmesi lazım setInterval kullanarak yapmamız lazımmış yardım edermisiniz. Şu sitedeki gibi yön tuşuna basınca hep oyöne gidecek:http://patorjk.com/games/snake/ |
Programlama dillerinde Timer kullanılıyordu. Burada SetInterval kullanacaksın. 2 parametresi var. 1.si yapılacak iş, 2.si bekleme süresi.. bekleme süresini 100 olarak ayarlarsan sn.'nin 10 da biri kadar sürede işlemi tekrar eder. Tahminimce burada sonsuz bir While döngüsü kuracaksın. Burada amaç fonksiyonun sürekli çağrılmasını sağlamak. Mesela sen ESC'ye basınca döngüden çıklmasını sağlarsın. Sonsuz While döngüsü kurabilir misin? |
Mesela zamanlayici = setTimeout('isle()',100); Burada zamanlayici bir nesne, isle fonksiyonu her 100 ms de bir tekrar edecek.. isle() fonksiyonunun sürekli çalışması için de fonksiyonu; while(Şart) //Sonsuz döngü olmasını sağla. Şart hiç bir zaman gerçekleşmesin. ESC'ye basınca çıksın. { isle() } döngüsü içinde çağır. :)))) |
Siz bana yolladığım kod üzerinde eklemeler yapıp yollayabilirmisiniz ben pek bilgili değilim de bu konuda lütfen yardım edin çok lazım hoca sözlü notu vericek bu ödeve |
Ben de bilişim tekno. öğretmeniyim. Bunu yaparsam meslektaşıma saygızılık yapmış olurum. Bence sen bunla biraz uğraş Emrecanxx :) |
Peki nasıl yapabileceğimi anlatırmısınız kodları nereye koymam lazım if değilde while mı kullanmam lazım |
Kendim yazdım |
Kodları bi inceleyim ben.. |
Lütfen yardım edin yoksa 0 alıcam şuanda bir tek sizin yardımınıza kalmış durumdayım |
Yemle yılanı büyütmek için mi? yemT ve yemL neyi ifade ediyor? |
yemle functıonu yemin raskele yerde çıkması için yemt=yemtop yeml=yemleft anlamında |
setInterval kullanarak yapılacaktı onuda hatırlatayım dedim yardımınızı bekliyorum şimdiden çok teşekkür ederim.İyiki varsınız. |
emrecanXX. Tamamını değil ama setInterval ile istediğin hareketi sağladım. Sürekli hareket var. Yön tuşları kontrolünü buna ekle.. Uğraş biraz... <html> <head> <script type="text/javascript"> var ust=100; var sol=100; function basla() { yemle(); setInterval("git();",50); } function git() { ust=ust+10; sol=sol+10; if(ust > 403) ust = 113; if(sol > 499) sol = 9; document.getElementById("gezici").style.top =ust+"px"; document.getElementById("gezici").style.left =sol+"px"; } function yemle() { var top= Math.floor(Math.random()*300); var left= Math.floor(Math.random()*500); top = top - (top%10); left = left - (left%10); top = top + 113; left = left + 9; document.getElementById("yem").style.left = left + "px"; document.getElementById("yem").style.top = top + "px"; yemL=left; yemT=top; } </script> <style> body{ font-family:Jokerman; color:#333; font-size:24px; } .cerceve{ width:500px; height:300px; border:1px solid #000; } #gezici{ width:10px; height:10px; background-color:#000; position:absolute; box-shadow:0 0 10px #00FF00; border-radius:10px; } #yem{ width:10px; height:10px; background-color:#00F; position:absolute; } h1{ float:left; } </style> </head> <body onload="basla()"> <h2>Yılancık</h2> <div class="cerceve"> <div id="gezici"></div> <div id="yem"></div> </div> <div id="kordinat"></div> hamle<div id="hamle"></div> puan<div id="puan"></div> </body> </html> YILANININ BOYUTU UZAMAYACAKSA, İŞİN BUNDAN SONRA KOLAY. AMA UZAYACAKSA İŞİN İÇİNE BAŞKA ŞEYLERDE GİRİYOR BİLGİN OLSUN... |
Çok teşekkür ederim. Yılanın boyu uzamayacak ama bunun devamında yön tuşlarının kodlarını nereye yazmam lazım yardımcı olurmusunuz |
Tuşları git() fonksiyonunun içinde kontrol edeceksin. Ama bir sorun var. Basılan tuşları algılamıyor... |
http://www.mehmetduran.com/files/javascript_tuslar/keycode.htm burada bir örnek var. Tuşları algılıyor. Ama kaynağı görüntüleyince renkli olan satıra bak.. Bu satır olmayınca çalışmıyor.. <script type="text/javascript" src="http://mehmetduran.com/media/js/jquery-1.2.6.pack.js"></script> <script type="text/javascript"> var x = 200, y = 200; $(document).ready(function(){ }).keydown(function(event){ var keys = new Array(37, 38, 39, 40); var code = (event.which) ? event.which : event.keyCode; if(code == keys[0]){ x = x - 3; $("#kutu").css("left", x+"px")} if(code == keys[1]){ y = y - 3; $("#kutu").css("top", y+"px");} if(code == keys[2]){ x = x + 3; $("#kutu").css("left", x+"px");} if(code == keys[3]){ y = y + 3; $("#kutu").css("top", y+"px");} }); </script> |
Son bir ricada bulunsam benim kodlarımın üzerinde yapıp yollarmısınız |
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>yılan doyurma</title>
<script>
var yemL;
var yemT;
var puan=0;
var hamle=0;
var git;
function git(yon) {
hamle++;
var top=document.getElementById("gezici").offsetTop;
var left=document.getElementById("gezici").offsetLeft;
if (yon.keyCode == 38){
top=top-10;
if(top < 113) top = 403;
document.getElementById("gezici").style.top = top+"px";
}else if(yon.keyCode == 40) {
top=top+10;
if(top > 403) top = 113;
document.getElementById("gezici").style.top = top+"px";
}
else if(yon.keyCode == 39) {
left=left+10;
if(left > 499) left = 9;
document.getElementById("gezici").style.left = left+"px";
}
else if(yon.keyCode == 37) {
left=left-10;
if(left < 9) left = 499;
document.getElementById("gezici").style.left = left+"px";
}
if ((top == yemT) && (left == yemL)){
yemle();
puan = puan + (100 - hamle);
document.getElementById("puan").innerHTML = puan;
hamle = 0;
}
document.getElementById("hamle").innerHTML = 1100-hamle;
document.getElementById("kordinat").innerHTML="("+top+","+left+")";
}
function yemle() {
var top= Math.floor(Math.random()*300);
var left= Math.floor(Math.random()*500);
top = top - (top%10);
left = left - (left%10);
top = top + 113;
left = left + 9;
document.getElementById("yem").style.left = left+"px";
document.getElementById("yem").style.top = top+"px";
yemL=left;
yemT=top;
}
</script>
<style>
body{
font-family:Jokerman;
color:#333;
font-size:24px;
}
.cerceve{
width:500px;
height:300px;
border:1px solid #000;
}
#gezici{
width:10px;
height:10px;
background-color:#000;
position:absolute;
box-shadow:0 0 10px #00FF00;
border-radius:10px;
}
#yem{
width:10px;
height:10px;
background-color:#00F;
position:absolute;
}
h1{
float:left;
}
</style>
</head>
<h2>Yılancık</h2>
<body onLoad="yemle()" onKeyPress="git(event)">
<div class="cerceve">
<div id="gezici"></div>
<div id="yem"></div>
</div>
<div id="kordinat"></div>
hamle<div id="hamle"></div>
puan<div id="puan"></div>
</body>
</html>
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi Emrecanxx -- 9 Ocak 2013; 18:10:28 >