2016-04-12 14 views
0

Tek ihtiyacım olan şey, bu nesnenin tuvalin üstünden sağa ve sola hareket etmesini sağlamaktır. Şu anda doğru ve iyi yürür, sonra tuvalin sağ kenarına ulaştığında durur.Tuval duvarından bir dikdörtgen çıkıntısı oluşturma

//mainEnemy Variables 
     var mainEnemy_x = 10; 
     var mainEnemy_y = 10; 
     var mainEnemyHeight = 50; 
     var mainEnemyWidth = 25; 
     var mainEnemyRight = true; 
     var mainEnemyLeft = false; 
     var mainEnemy_dx = 2; 

//Drawing the Main Enemy 
    function drawMainEnemy() 
    { 
     ctx.beginPath(); 
     ctx.rect(mainEnemy_x, mainEnemy_y, mainEnemyHeight, mainEnemyWidth); 
     ctx.fillStyle = "green"; 
     ctx.fill(); 
     ctx.closePath(); 
    } 

//Movement speed of mainEnemy 
      if(mainEnemyRight && mainEnemy_x < canvas.width-mainEnemyWidth) 
      { 
       mainEnemy_x += 5; 
      } 
      else if(mainEnemyLeft && mainEnemy_x > 0) 
      { 
       mainEnemy_x -= 5; 
      } 

      //mainEnemy moves across the top of the canvas 
      if(mainEnemy_x + mainEnemy_dx - mainEnemyWidth > canvas.width) 
      { 
       mainEnemy_dx = -mainEnemy_dx; 
      } 



      ball_x += dx; 
      ball_y += dy; 
      mainEnemy_x += mainEnemy_dx; 
      } 

Bu, yardıma ihtiyacım olduğu nesne ile ilgili kodun tamamı. Sadece x hareketini tersine çevirmeyi denedim, mainEnemy_dx = -mainEnemy_dx; hattı ile, ama bu çalışmıyor. Bu kodun şu anda mutlak bir karmaşa olduğunu görebiliyorum, sadece çalışmam gerekiyor, o zaman ciddi bir temizlik için zamanım var. Her türlü yardım çok takdir edilecektir!

+0

Lütfen "Bu çalışmıyor." Şimdi ne yapıyor? Bunun nesi var? –

+0

Şu anda ne yaptığını nasıl açıklayacağımı tam olarak bilmiyorum. Tuvalin tam ortasına sıkışmış gibi görünüyor ve tuvalin yarısına kadar sıkışmış titreşimler ya da titreşimler. Oyun sona erene kadar titremeye devam ediyor. – ProgrammerDope

cevap

0

Her şeyden önce iki hareket sisteminiz var. Biri sol ve sağdaki bayraklar ve sabitler, x ve diğeri dx ile eklenir veya çıkarılır. Sadece birini veya diğerini kullanmalısın, ikincisi daha basit.

Titreşim için, geçerli dx'in kenarlıktan sağa doğru giderken pozitif olduğunu (ve solda negatif) ve işareti değiştirdikten sonra, ya da sağ kenarlıklı bir çarpışma olduğunda nesneyi sola kaydırmanız gerekir. bulunan.

Şu anda nesneyi 7 birim sağa doğru hareket ettirdiğinizde, kenarlık bulunduğunda yalnızca dx kullanılır (2 veya -2), ancak nesneniz sınırın üzerinde olabileceği için 2 ile -2 arasında titreşebilir her zaman. Ama en azından sağ şube, dx negatif olduğunda bile 5 birimi sağa doğru hareket ettirmeye çalışacaktır.

Kodda ilerlemek için bir hata ayıklayıcısını kullanmak ve sağ kenarda titreşirken alınan değişkenleri ve dalları incelemek tam olarak nasıl davrandığını gösterecektir.

+0

Bu şimdi mükemmel çalışıyor, çok teşekkür ederim! – ProgrammerDope