캔버스에 여러 요소를 만드는 방법

Ankitjt

같은 높이의 캔버스에 여러 파이프를 표시하려고하는데 for 루프를 사용한 후에도 많은 파이프가 아닌 단일 파이프가 표시됩니다.

<script>
    var tryCanvas = document.getElementById("myCanvas");
    var c = tryCanvas.getContext("2d");
    var myCall = [];

    function Squares() {

        for(var i =0; i < 10; i++){
            this.x = Math.random()* tryCanvas.clientWidth;
            this.y = 0;
            this.w = 20;
            this.h = 60;
            this.counter = 0;
            this.draw = function() {
                c.beginPath();
                c.rect(this.x, this.y, this.w, this.h)
                c.fill();
            }
    }

        this.update = function() {
            if(this.x < 0){
                this.x = 0;
            }
            this.x -= 1;
            this.draw();
        }
    }

    var holder = new Squares;

    setInterval(callFun, 10);

       function callFun() {
        c.clearRect(0,0,tryCanvas.clientWidth, tryCanvas.clientHeight);
        holder.update();    
       }
 </script>

생성자 함수를 배열로 푸시하면 캔버스에 아무것도 표시되지 않고 콘솔에서 undefined 또는 NaN이 제공됩니다. 그러나 "this"없이 수행하면 rects 수가 생성됩니다. 내가 여기서 뭘 잘못하고 있니?

사용자 3692823

화면을 따라 막대를 이동하도록 업데이트되었습니다.

이 작업 예제를 참조하십시오 : https://codepen.io/bkfarns/pen/braWQB?editors=1010

This.draw는 for 루프의 마지막 반복 값으로 만 생성됩니다.

또한 사이드 노드로서 일반적으로 new Squares생성자를 호출하는 대신 new Squares(). 생성자를 호출하면 메서드가 호출됩니다.

그러나 아래 코드가 문제를 해결한다고 생각합니다. 시도해보십시오.

<body>
  <canvas id="myCanvas"/>
</body>

<script>
    var tryCanvas = document.getElementById("myCanvas");
    var c = tryCanvas.getContext("2d");
    var myCall = [];

    function Squares() {

        this.draw = function(xOffset) {

          for(var i =0; i < 10; i++){

            this.x = (i * xOffset) + (5*i)//Math.random()* tryCanvas.clientWidth;
            this.y = 0;
            this.w = 20;
            this.h = 60;
            c.beginPath();
            c.rect(this.x, this.y, this.w, this.h)
            c.fill();
          }
        }
    }

    var holder = new Squares();

    var xOffset = 20;
    setInterval(function() {
      c.clearRect(0,0,tryCanvas.clientWidth, tryCanvas.clientHeight);
      holder.draw(xOffset)
      xOffset--;
    }, 1000)


 </script>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Toplevel () Tkinter에서 캔버스를 사용하여 버튼을 만드는 방법

분류에서Dev

여러 이미지에서 캔버스에 이미지를 보는 방법

분류에서Dev

HTML5 jquery를 사용하여 마우스 위치에서 캔버스에 요소를 놓는 방법

분류에서Dev

여러 뷰를 결합하고 Android 캔버스에 그리는 방법

분류에서Dev

여러 div 요소에 대해 단일 onclick 이벤트를 만드는 방법

분류에서Dev

Javascript를 사용하여 X 축에서 캔버스 요소를 회전하는 방법

분류에서Dev

Python 3.8을 사용하여 Tkinter에서 캔버스에 스크롤바를 만드는 방법

분류에서Dev

여러 jsx 파일의 구성 요소에서 복합 React.js 구성 요소를 만드는 방법

분류에서Dev

여러 요소에 호버 속도를 사용하는 방법

분류에서Dev

캔버스를 만드는 방법-마우스 위치에 따라 채우기 및 채우기 요소

분류에서Dev

IndexedDB에서 여러 개체 저장소를 만드는 방법

분류에서Dev

HTML에서 캔버스 요소를 클릭 가능하게 만드는 방법은 무엇입니까?

분류에서Dev

Cocoa에서 팬 및 확대 / 축소 캔버스 (예 : Photoshop)를 만드는 방법

분류에서Dev

HTML5 캔버스를 사용하여 도로 선을 만드는 방법

분류에서Dev

슬라이더를 사용하여 HTML에서 캔버스 브러시 크기를 변경하는 방법

분류에서Dev

버전 3.0.100을 사용하여 Common Blazor 구성 요소 라이브러리를 만드는 방법

분류에서Dev

캔버스에 여러 이미지를 표시하는 방법은 무엇입니까?

분류에서Dev

JS를 사용하여 HTML <a> 대신 Bulma 버튼 요소를 만드는 방법

분류에서Dev

aysnc 콜백에서 여러 플럭스를 만드는 방법

분류에서Dev

프레임 안에 요소를 얻는 방법? (캔버스 그리기)

분류에서Dev

Bootstrap 탭 안에 여러 Vue 구성 요소를 만드는 방법은 무엇입니까?

분류에서Dev

여러 Div CSS에 걸쳐 요소를 확장하는 방법

분류에서Dev

여러 get 요소에서 html nodeList를 결합하는 방법

분류에서Dev

CMakefile에 여러 요소 변수를 설정하는 방법

분류에서Dev

df.columns에서 여러 요소를 편집하는 방법

분류에서Dev

굴절과 반사를 사용하여 캔버스에 유리로 만든 텍스트를 만드는 방법은 무엇입니까?

분류에서Dev

목록의 여러 벡터에서 여러 요소를 선택하는 방법

분류에서Dev

Android에서 캔버스를 사용하여 연동 원을 그리는 방법

분류에서Dev

내 경우에 여러 http 요청을 만드는 방법

Related 관련 기사

  1. 1

    Toplevel () Tkinter에서 캔버스를 사용하여 버튼을 만드는 방법

  2. 2

    여러 이미지에서 캔버스에 이미지를 보는 방법

  3. 3

    HTML5 jquery를 사용하여 마우스 위치에서 캔버스에 요소를 놓는 방법

  4. 4

    여러 뷰를 결합하고 Android 캔버스에 그리는 방법

  5. 5

    여러 div 요소에 대해 단일 onclick 이벤트를 만드는 방법

  6. 6

    Javascript를 사용하여 X 축에서 캔버스 요소를 회전하는 방법

  7. 7

    Python 3.8을 사용하여 Tkinter에서 캔버스에 스크롤바를 만드는 방법

  8. 8

    여러 jsx 파일의 구성 요소에서 복합 React.js 구성 요소를 만드는 방법

  9. 9

    여러 요소에 호버 속도를 사용하는 방법

  10. 10

    캔버스를 만드는 방법-마우스 위치에 따라 채우기 및 채우기 요소

  11. 11

    IndexedDB에서 여러 개체 저장소를 만드는 방법

  12. 12

    HTML에서 캔버스 요소를 클릭 가능하게 만드는 방법은 무엇입니까?

  13. 13

    Cocoa에서 팬 및 확대 / 축소 캔버스 (예 : Photoshop)를 만드는 방법

  14. 14

    HTML5 캔버스를 사용하여 도로 선을 만드는 방법

  15. 15

    슬라이더를 사용하여 HTML에서 캔버스 브러시 크기를 변경하는 방법

  16. 16

    버전 3.0.100을 사용하여 Common Blazor 구성 요소 라이브러리를 만드는 방법

  17. 17

    캔버스에 여러 이미지를 표시하는 방법은 무엇입니까?

  18. 18

    JS를 사용하여 HTML <a> 대신 Bulma 버튼 요소를 만드는 방법

  19. 19

    aysnc 콜백에서 여러 플럭스를 만드는 방법

  20. 20

    프레임 안에 요소를 얻는 방법? (캔버스 그리기)

  21. 21

    Bootstrap 탭 안에 여러 Vue 구성 요소를 만드는 방법은 무엇입니까?

  22. 22

    여러 Div CSS에 걸쳐 요소를 확장하는 방법

  23. 23

    여러 get 요소에서 html nodeList를 결합하는 방법

  24. 24

    CMakefile에 여러 요소 변수를 설정하는 방법

  25. 25

    df.columns에서 여러 요소를 편집하는 방법

  26. 26

    굴절과 반사를 사용하여 캔버스에 유리로 만든 텍스트를 만드는 방법은 무엇입니까?

  27. 27

    목록의 여러 벡터에서 여러 요소를 선택하는 방법

  28. 28

    Android에서 캔버스를 사용하여 연동 원을 그리는 방법

  29. 29

    내 경우에 여러 http 요청을 만드는 방법

뜨겁다태그

보관