p5.js에서 그리는 동안 좌표 변환

블랙 커피

제가 작업중인이 자동차 게임의 트랙을 만드는 방법을 알아 내려고합니다. 현재 문제는 트랙을 그릴 때 드로잉의 좌표가 자동차의 좌표를 기준으로 변형된다는 것입니다. 죄송합니다. 설명하기 어렵지만 아래 코드를 보면 제가 의미하는 바를 알 수 있습니다. 그런 다음 모든 그림을 최신 프레임에 유지하는 문제가 있지만 그것은 다른 날의 문제입니다. (차가 떠나는 흔적은 무시하십시오. 도면이 최신 프레임에 다시 그려 지는지 확인하면 수정 될 것입니다.이 JS와 정말 혼란 스럽기 때문에 모든 도움을 주셔서 감사합니다!

var MAX_VELOCITY = 3;
class Car {
  constructor(x, y, angle) {
    this.x = x;
    this.y = y;
    this.angle = angle;
    this.velocity = 0;
    this.accel = 0;
    this.width = 40;
    this.height = 80;
  }

  show() {
    fill(255, 0, 255);
    stroke(0);
    translate(this.x, this.y);
    rotate(this.angle);
    rect(0, 0, this.width, this.height);
  }

  move() {
    this.velocity += this.accel;
    if (this.velocity > MAX_VELOCITY) {
      this.velocity = MAX_VELOCITY;
    }
    if (this.velocity < -MAX_VELOCITY) {
      this.velocity = -MAX_VELOCITY;
    }
    this.y += this.velocity * Math.sin(this.angle + Math.PI / 2);
    this.x += this.velocity * Math.cos(this.angle + Math.PI / 2);
  }
}

function setup() {
  WINDOW_HEIGHT = 600;
  WINDOW_WIDTH = 600;
  window.canvas = createCanvas(WINDOW_HEIGHT, WINDOW_WIDTH);
  rectMode(CENTER);
  car = new Car(width / 2, 500, -Math.PI / 2 + Math.PI / 2);
  console.log("Car Created");
  var flagger = false;
}

function draw() {
  // background(100);
  car.show();
  car.move();
  // console.log("X: ", car.x);
  // console.log("Y: ", car.y)
  console.log("X: ", mouseX)
  console.log("Y: ", mouseY)
  if (car.y < car.height / 2) {
    car.y = car.height / 2;
  }

  if (car.x < car.height / 2) {
    car.x = car.height / 2;
  }

  if (car.y > height - car.height / 2) {
    car.y = height - car.height / 2;
  }

  if (car.x > width - car.height / 2) {
    car.x = width - car.height / 2;
  }

  controls();

  if (mouseIsPressed === true) {
    line(
      mouseX - car.x,
      mouseY - car.y,
      pmouseX - car.x,
      pmouseY - car.y
    );
  }
  // console.log("Velocity: ", car.velocity);
  // console.log("Acceleration: ", car.accel);
}

function controls() {
  if (keyIsDown(UP_ARROW)) {
    car.velocity += -1;
    flagger = false;
  }

  if (keyIsDown(DOWN_ARROW)) {
    car.velocity += 1;
    flagger = false;
  }

  if (keyIsDown(RIGHT_ARROW)) {
    car.angle += 0.1;
  }

  if (keyIsDown(LEFT_ARROW)) {
    car.angle -= 0.1;
  }
}
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lib/p5.js"></script>
<!DOCTYPE html>
<html lang="">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>AI Car Game</title>
  <style>
    body {
      padding: 0;
      margin: 0;
    }
  </style>
</head>

<body>
</body>

</html>

Rabbid76

사용 push()pop()저장하고 스타일 설정 및 변환 전류를 복원합니다. 이것은 현재 매트릭스도 저장하고 복원합니다.

push()차가 그려지기 전 ( car.show())과 그 pop()후에. 이로 인해 변형 car.show()이 자동차에만 적용됩니다.

function draw() {
    background(100);

    push();
    car.show();
    pop();

    car.move();

    // [...]
}

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JFrame에서 Cube를 이동하는 동안 XY 좌표 표시

분류에서Dev

P5.js에서 좌표계 변경

분류에서Dev

d3js를 통해 원 그리기 및 좌표 변환

분류에서Dev

OpenLayers에서 "일반"좌표를 OSM 좌표로 변환하는 방법

분류에서Dev

Visual Basic에서 극좌표를 사용하여 그리는 동안 원점 이동

분류에서Dev

OpenGL 3.0에서 그리기 시간에 픽셀 좌표를 정규화 된 좌표로 변환

분류에서Dev

안드로이드 자기장 센서 값이 지구 좌표계로 변환 될 때 X 좌표 값이 0에 가까운 이유는 무엇입니까?

분류에서Dev

지리적 좌표 변환

분류에서Dev

파이썬에서 grib 파일을 그리는 동안 좌표를 제한 할 가능성이 있습니까?

분류에서Dev

(가)하기 matplotlib에서 축 좌표 변환하는 방법

분류에서Dev

이미지 맵을 SVG로 변환하는 동안 좌표를 변경하는 방법은 무엇입니까?

분류에서Dev

JavaScript p5는 임의의 위치에서 생성되는 그림 이동을 만듭니다.

분류에서Dev

AngularJS는 Lambert 2에서 WSG84로 지리 좌표를 변환합니다.

분류에서Dev

userSpaceOnUse 좌표를 objectBoundingBox 좌표로 변환하는 알고리즘?

분류에서Dev

getFromLocation을 사용하여 좌표를 주소로 변환하는 동안 역 지오 코딩 문제

분류에서Dev

창 좌표에서 NSPoint 변환

분류에서Dev

창 좌표에서 NSPoint 변환

분류에서Dev

VB2008에서 좌표 변환

분류에서Dev

p5 JS에서 사용자 정의 모양을 올바르게 회전하고 각도를 변경하지 않고 캔버스에서 이동하는 방법은 무엇입니까?

분류에서Dev

matplotlib에서 픽셀 좌표를 데이터 좌표로 변환

분류에서Dev

CIRectangleFeature 좌표에서 뷰 좌표로 변환

분류에서Dev

로컬 좌표에서 글로벌 좌표로 변환

분류에서Dev

OpenGL, 데카르트 좌표에서 구형 좌표 변환

분류에서Dev

좌표계 사이의 변환 geotools 프로그램에서 NoSuchAuthorityCodeExcpetion (Gradle을 빌드)

분류에서Dev

postgresql에서 구형을 데카르트 좌표로 변환하는 방법

분류에서Dev

sed에있는 동안 소수 변환

분류에서Dev

sed에있는 동안 소수 변환

분류에서Dev

WEBGL 캔버스, p5 js 내에서 가변 글꼴 사용

분류에서Dev

창 좌표를 제어 좌표로 변환하는 방법

Related 관련 기사

  1. 1

    JFrame에서 Cube를 이동하는 동안 XY 좌표 표시

  2. 2

    P5.js에서 좌표계 변경

  3. 3

    d3js를 통해 원 그리기 및 좌표 변환

  4. 4

    OpenLayers에서 "일반"좌표를 OSM 좌표로 변환하는 방법

  5. 5

    Visual Basic에서 극좌표를 사용하여 그리는 동안 원점 이동

  6. 6

    OpenGL 3.0에서 그리기 시간에 픽셀 좌표를 정규화 된 좌표로 변환

  7. 7

    안드로이드 자기장 센서 값이 지구 좌표계로 변환 될 때 X 좌표 값이 0에 가까운 이유는 무엇입니까?

  8. 8

    지리적 좌표 변환

  9. 9

    파이썬에서 grib 파일을 그리는 동안 좌표를 제한 할 가능성이 있습니까?

  10. 10

    (가)하기 matplotlib에서 축 좌표 변환하는 방법

  11. 11

    이미지 맵을 SVG로 변환하는 동안 좌표를 변경하는 방법은 무엇입니까?

  12. 12

    JavaScript p5는 임의의 위치에서 생성되는 그림 이동을 만듭니다.

  13. 13

    AngularJS는 Lambert 2에서 WSG84로 지리 좌표를 변환합니다.

  14. 14

    userSpaceOnUse 좌표를 objectBoundingBox 좌표로 변환하는 알고리즘?

  15. 15

    getFromLocation을 사용하여 좌표를 주소로 변환하는 동안 역 지오 코딩 문제

  16. 16

    창 좌표에서 NSPoint 변환

  17. 17

    창 좌표에서 NSPoint 변환

  18. 18

    VB2008에서 좌표 변환

  19. 19

    p5 JS에서 사용자 정의 모양을 올바르게 회전하고 각도를 변경하지 않고 캔버스에서 이동하는 방법은 무엇입니까?

  20. 20

    matplotlib에서 픽셀 좌표를 데이터 좌표로 변환

  21. 21

    CIRectangleFeature 좌표에서 뷰 좌표로 변환

  22. 22

    로컬 좌표에서 글로벌 좌표로 변환

  23. 23

    OpenGL, 데카르트 좌표에서 구형 좌표 변환

  24. 24

    좌표계 사이의 변환 geotools 프로그램에서 NoSuchAuthorityCodeExcpetion (Gradle을 빌드)

  25. 25

    postgresql에서 구형을 데카르트 좌표로 변환하는 방법

  26. 26

    sed에있는 동안 소수 변환

  27. 27

    sed에있는 동안 소수 변환

  28. 28

    WEBGL 캔버스, p5 js 내에서 가변 글꼴 사용

  29. 29

    창 좌표를 제어 좌표로 변환하는 방법

뜨겁다태그

보관