이 캔버스 fillStyle 문제를 해결하는 방법은 무엇입니까?

보좌관 자비드

class Entity {
  constructor(name, type = 'player') {
    this.name = name,
      this.type = type
  }
  newObject(name, ...pvals) {
    this[name] = {}
    if (pvals) {
      for (var i = 0; i < pvals.length; i += 2) {
        this[name][pvals[i]] = pvals[i + 1]
      }
    }
  }
}

const canvas = document.querySelector('canvas')
const ctx = canvas.getContext('2d')

canvas.height = window.innerHeight - 20
canvas.width = window.innerWidth

var frame = new Entity('frame', 'game-object')
var button = new Entity('button', 'player-component')

const radius = 70
var speed = 3

frame.newObject('$', 'r', radius)
button.newObject('$', 'r', radius / 3)

function updateFrame() {
  ctx.fillStyle = 'black'
  ctx.arc((canvas.width / 2), (canvas.height / 2), frame.$.r, 0, Math.PI * 2)
  ctx.fill()
  ctx.fillStyle = 'red'
  ctx.arc((canvas.width / 2), (canvas.height / 2), button.$.r, 0, Math.PI * 2)
  ctx.fill()
}

updateFrame()
<canvas></canvas>

내가 아는 한 캔버스 중앙에 큰 검은색 원이 인쇄되고 그 위에 빨간색 작은 원이 인쇄되어야 합니다. 그러나 그것은 단지 큰 빨간 원을 인쇄합니다. 나는 그것을 이해할 수 없습니다.

헬더 세풀베다

@Teemu가 "경로 시작" 주석에서 지적한 것처럼 ctx.beginPath()색상을 변경할 때 호 사이 를 사용해야 합니다.

https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/beginPath#examples

문제를 보여주기 위해 많은 코드를 단순화했습니다. 문제를 해결할 때 동일한 작업을 수행해야 class Entity합니다.

const canvas = document.querySelector('canvas')
const ctx = canvas.getContext('2d')

ctx.beginPath()
ctx.fillStyle = 'black'
ctx.arc(50, 50, 20, 0, Math.PI * 2)
ctx.fill()

ctx.beginPath()
ctx.fillStyle = 'red'
ctx.arc(50, 50, 10, 0, Math.PI * 2)
ctx.fill()
<canvas></canvas>

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

오버레이 문제를 해결하는 방법은 무엇입니까?

JavaFX 캔버스를 업데이트하는 방법은 무엇입니까?

HTML 캔버스 크기로 홀수 문제를 해결하는 방법은 무엇입니까?

이 문제를 해결하는 방법은 무엇입니까?

서비스 surfaceflinger를 기다리는 Android 로이 문제를 해결하는 방법은 무엇입니까?

이 압축 해제 문제를 해결하는 방법은 무엇입니까?

데이터베이스 관계에서 루프 문제를 해결하는 방법은 무엇입니까?

이 magento 2 apptha 마켓 플레이스 문제를 해결하는 방법은 무엇입니까?

캔버스에서 이미지를 제거하는 방법은 무엇입니까?

datastudio, 데이터가 변경될 때 캔버스를 제거하는 방법은 무엇입니까?

캔버스를 문자열로 지속적으로 업데이트하는 방법은 무엇입니까?

메일 뉴스 레터에서이 텍스트 문제를 해결하는 방법은 무엇입니까?

이진수를 스캔하는 방법은 무엇입니까?

Windows 8 시스템 업데이트 실패 문제를 해결하는 방법은 무엇입니까?

스파크에서 원사 컨테이너 크기 문제를 해결하는 방법은 무엇입니까?

이 앞으로 클래스 선언 문제를 해결하는 방법은 무엇입니까?

for 루프(테이블 스크래핑) 문제를 해결하는 방법은 무엇입니까?

이 문제를 해결하는 방법은 무엇입니까? 키스 오류 표시

버튼을 클릭 할 때마다 캔버스 개체를 이동하는 방법은 무엇입니까?

Unity-화면 오버레이 캔버스 위에 월드 스페이스 캔버스를 표시하는 방법은 무엇입니까?

Unity-화면 오버레이 캔버스 위에 월드 스페이스 캔버스를 표시하는 방법은 무엇입니까?

텍스트를 채운 후 캔버스에 높이를 설정하는 방법은 무엇입니까?

<캔버스>에서 제대로 애니메이션하는 방법은 무엇입니까?

OpenCL이 멈추는 문제를 해결하는 방법은 무엇입니까?

캔버스 항목에 이미지를 삽입하는 방법은 무엇입니까?

현재 웹 페이지 상단에 캔버스 요소를 삽입하는 방법은 무엇입니까?

캔버스 호에 이미지를 삽입하는 방법은 무엇입니까?

캔버스에서 플레이어를 표시하고 이동하는 방법은 무엇입니까?

tkinter 캔버스에서 사각형과 함께 텍스트를 이동하는 방법은 무엇입니까?

TOP 리스트

  1. 1

    PrematureCloseException : 연결이 너무 일찍 닫혔습니다.

  2. 2

    MDRotatingPieChart를 회전하면 각도 대신 x / y 위치가 변경됩니다.

  3. 3

    c # 웹 사이트에서 텍스트를 복사하는 방법 (소스 코드 아님)

  4. 4

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  5. 5

    ArrayBufferLike의 typescript 정의의 깊은 의미

  6. 6

    Ionic 2 로더가 적시에 표시되지 않음

  7. 7

    복사 / 붙여 넣기 비활성화

  8. 8

    Google Play Console에서 '예기치 않은 오류가 발생했습니다. 나중에 다시 시도해주세요. (7100000)'오류를 수정하는 방법은 무엇입니까?

  9. 9

    정점 셰이더에서 카메라에서 개체까지의 XY 거리

  10. 10

    QT Designer를 사용하여 GUI에 이미지 삽입

  11. 11

    java Apache POI Word 기존 테이블 셀 스타일 및 서식이있는 행 삽입

  12. 12

    Kubernetes Horizontal Pod Autoscaler (HPA) 테스트

  13. 13

    Android Kotlin은 다른 활동에서 함수를 호출합니다.

  14. 14

    C # HttpWebRequest 기본 연결이 닫혔습니다. 전송시 예기치 않은 오류가 발생했습니다.

  15. 15

    어떻게 같은 CustomInfoWindow 다른 이벤트를 할 수 있습니다

  16. 16

    rclone으로 원격 디렉토리의 모든 파일을 삭제하는 방법은 무엇입니까?

  17. 17

    dataSnapShot.getValue () 반환 데이터베이스에 그겁니다 데이터 종료 널 (null)

  18. 18

    ORA-12557 TNS : 프로토콜 어댑터를로드 할 수 없습니다

  19. 19

    JNDI를 사용하여 Spring Boot에서 다중 데이터 소스 구성

  20. 20

    다음 컨트롤이 추가되었지만 사용할 수 없습니다.

  21. 21

    C # Asp.net 웹 API-JSON / XML 변환기 API 만들기

뜨겁다태그

보관