Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> problem z funkcja onKeyDown..js, problem z funkcja onKeyDown..js
Mastersieciweb
post
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 0
Dołączył: 14.10.2013

Ostrzeżenie: (0%)
-----


Witam, nie wiem w jaki sposób uaktywnić funkcję żeby za pomocą klawisza strzałki do góry moje pole zwiększyło się, gdzie tu jest błąd..z góry dziękuje
  1. <head>
  2.  
  3.  
  4. </head>
  5.  
  6. <body>
  7. function na(e){
  8. var bb=e.keyCode;
  9. var cc= document.getElementById('jeden');
  10. if (bb==38){
  11. cc.style.width="300px";}
  12. }
  13. </script>
  14. <div id="jeden" onkeydown="na(e)" style="width:100px;height:50px;background-color:red" ></div>
  15. </body>
  16. </html>
  17.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
werdan
post
Post #2





Grupa: Zarejestrowani
Postów: 354
Pomógł: 100
Dołączył: 14.11.2013
Skąd: Płock

Ostrzeżenie: (0%)
-----


  1. <head>
  2. <meta charset=utf-8 />
  3. <title>snake2</title>
  4. </head>
  5.  
  6. <body>
  7. function na(e) {
  8. bb = e.keyCode;
  9. cc = document.getElementById('jeden').style;
  10. cc2 = document.getElementById('dwa').style;
  11. var i = 100 * Math.round(5 * (Math.random()));
  12. var ii = 100 * Math.round(5 * (Math.random()));
  13. var isMoving = false;
  14.  
  15. if (bb == 39) {
  16. if (!isMoving) {
  17. isMoving = true;
  18. d1 = setInterval(function() {
  19. ol();
  20. }, 500);
  21. }
  22. } else {
  23. clearInterval(d1);
  24. }
  25. if (bb == 40) {
  26. if (!isMoving) {
  27. isMoving = true;
  28.  
  29. d2 = setInterval(function() {
  30. ol2();
  31. }, 500);
  32. }
  33. } else {
  34. clearInterval(d2);
  35. }
  36. if (bb == 37) {
  37. if (!isMoving) {
  38. isMoving = true;
  39.  
  40. d3 = setInterval(function() {
  41. ol3();
  42. }, 500);
  43. }
  44. } else {
  45. clearInterval(d3);
  46. }
  47. if (bb == 38) {
  48. if (!isMoving) {
  49. isMoving = true;
  50.  
  51. d4 = setInterval(function() {
  52. ol4();
  53. }, 500);
  54. }
  55. } else {
  56. clearInterval(d4);
  57. }
  58.  
  59.  
  60.  
  61.  
  62. function ol() {
  63. cc.left = parseInt(cc.left) + 50 + "px";
  64.  
  65. if (parseInt(cc.left) > 500) {
  66. cc.left = parseInt(cc.left) - 550 + "px";
  67. }
  68. if ((parseInt(cc.left) == parseInt(cc2.left)) && (parseInt(cc.top) == parseInt(cc2.top))) {
  69. cc2.left = i + "px";
  70. cc2.top = ii + "px";
  71. }
  72. }
  73.  
  74.  
  75.  
  76.  
  77. function ol2() {
  78. cc.top = parseInt(cc.top) + 50 + "px";
  79.  
  80. if (parseInt(cc.top) > 500) {
  81. cc.top = parseInt(cc.top) - 550 + "px";
  82. }
  83. if ((parseInt(cc.left) == parseInt(cc2.left)) && (parseInt(cc.top) == parseInt(cc2.top))) {
  84. cc2.left = i + "px";
  85. cc2.top = ii + "px";
  86. }
  87. }
  88.  
  89.  
  90.  
  91. function ol3() {
  92.  
  93. cc.left = parseInt(cc.left) - 50 + "px";
  94.  
  95. if (parseInt(cc.left) < 0) {
  96. cc.left = parseInt(cc.left) + 550 + "px";
  97. }
  98.  
  99. if ((parseInt(cc.left) == parseInt(cc2.left)) && (parseInt(cc.top) == parseInt(cc2.top))) {
  100. cc2.left = i + "px";
  101. cc2.top = ii + "px";
  102. }
  103. }
  104.  
  105.  
  106.  
  107.  
  108. function ol4() {
  109. cc.top = parseInt(cc.top) - 50 + "px";
  110. if (parseInt(cc.top) < 0) {
  111. cc.top = parseInt(cc.top) + 550 + "px";
  112. }
  113.  
  114. if ((parseInt(cc.left) == parseInt(cc2.left)) && (parseInt(cc.top) == parseInt(cc2.top))) {
  115. cc2.left = i + "px";
  116. cc2.top = ii + "px";
  117.  
  118. }
  119. }
  120. }
  121.  
  122. d = document.onkeydown = na;
  123. </script>
  124. <div id="tlo" style="position:absolute;width:550px;height:550px;background-color:green;left:0px;top:0px;" ></div>
  125. <div id="jeden" style="position:absolute;width:50px;height:50px;background-color:red;left:0px;top:0px;" ></div>
  126. <div id="dwa" style="position:absolute;width:50px;height:50px;background-color:blue;left:100px;top:0px;" ></div>
  127.  
  128. </body>
  129. </html>
  130.  
  131.  
  132.  



Dobrze Ci idzie. Wyglada jak wygląda. Coś tam poprawiłem, bo jakieś błedy były (średniki, nawias).
Troche dziwnie działa.
Jak daje np. w prawo to idzie w prawo i do góry, bo wczesniej szedł do góry.

Troche sie inaczej to robi. W grach zawsze jest loop (czyli petla która sie wykonuje np. 60x na sekunde). I to własnie w tej petli sterujemy graczem i innymi elementami. Klikając kursory ustawiamy przesuniecia X i Y, a potem w petli wykonujemy je. W petli tez należałoby zrobić zjadanie "obiektu" (ofiary). Jesli pozycja głowy weza jest taka sama jak ofiary, to ofiare usuwamy, tworzymy nowa, a weza wydłuzamy (IMG:style_emoticons/default/biggrin.gif) . Weza najlepiej trzymac w tablicy (IMG:style_emoticons/default/biggrin.gif)


U ciebie sa 4 loopy. Sprobuj zrobić 1 loop (setInterval), a w tych 4 funkcjach tylko ustawiać przesuniecia X i Y.

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.12.2025 - 13:58