Şimdi Ara

Javascript ödevim lütfen yardım edinN!!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
28
Cevap
0
Favori
715
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 12
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • Merhabalar benim bir ödevim var biz yılan oyununa benzer birşey yaptık hocamız bizden SETINTERVAL kodunu kullanarak yön tuşlarından birine basınca yılanın sürekli o yöne doğru durmadan hareket etmesini istiyor sonra başka bir yön tuşuna basınca bu seferde o yöne doğru sürekli hareket edecek yardım edermisiniz İŞTE KODLAR;

    <!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>



    < Bu mesaj bu kişi tarafından değiştirildi Emrecanxx -- 9 Ocak 2013; 18:10:28 >







  • Denemedim bu kodları ama sorun ne?
  • quote:

    Orijinalden alıntı: AYHANSARI

    Denemedim bu kodları ama sorun ne?

    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/



    < Bu mesaj bu kişi tarafından değiştirildi Emrecanxx -- 8 Ocak 2013; 16:29:33 >
  • 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.

    :))))
  • quote:

    Orijinalden alıntı: AYHANSARI

    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 :)
  • quote:

    Orijinalden alıntı: AYHANSARI

    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
  • Yukarıdaki kodu kendin mi yazdın, bir yerden mi buldun?
  • quote:

    Orijinalden alıntı: AYHANSARI

    Yukarıdaki kodu kendin mi yazdın, bir yerden mi buldun?

    Kendim yazdım
  • Kodları bi inceleyim ben..



    < Bu mesaj bu kişi tarafından değiştirildi ayhan_sr -- 8 Ocak 2013; 23:06:47 >
  • quote:

    Orijinalden alıntı: AYHANSARI

    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?
  • quote:

    Orijinalden alıntı: AYHANSARI

    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
  • quote:

    Orijinalden alıntı: Emrecanxx

    quote:

    Orijinalden alıntı: AYHANSARI

    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...



    < Bu mesaj bu kişi tarafından değiştirildi ayhan_sr -- 9 Ocak 2013; 9:24:20 >




  • quote:

    Orijinalden alıntı: Kod_Dünyası

    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



    < Bu mesaj bu kişi tarafından değiştirildi Emrecanxx -- 9 Ocak 2013; 17:30:16 >




  • 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>




  • quote:

    Orijinalden alıntı: Kod_Dünyası

    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




  • 
Sayfa: 12
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.