【发布时间】:2021-11-22 22:25:10
【问题描述】:
我目前正在制作一个类似于 John Conway 的生命游戏的项目,我想知道如何在不使用 rotate() 的情况下旋转一个点。 当我使用它时,它会围绕画布旋转,这里的代码很难解释:
//Setup
var x;
var y;
var x2;
var y2;
var x3;
var y3;
let slider;
function setup() {
//Setup and Varibles
createCanvas(400, 400);
x = 200;
y = 200;
x2 = 150;
y2 = 100;
x3 = 300;
y3 = 220;
slider = createSlider(0, 255, 100);
slider.position(10, 10);
slider.style("width", "80px");
}
function draw() {
let val = slider.value();
background(54);
stroke(255);
strokeWeight(1);
line(x, y, x + 30, y - 10);
strokeWeight(10);
point(x, y);
var r = ceil(random(5));
//Player 1 AI
switch (r) {
case 0:
x = x + 2;
break;
case 1:
x = x - 2;
break;
case 2:
y = y + 2;
break;
case 3:
y = y - 2;
break;
case 4:
//EXTRA
break;
}
point(x2, y2);
var ra = floor(random(5));
//Player 2 AI
switch (ra) {
case 0:
x2 = x2 + 2;
break;
case 1:
x2 = x2 - 2;
break;
case 2:
y2 = y2 + 2;
break;
case 3:
y2 = y2 - 2;
break;
case 4:
//EXTRA
break;
}
//Player 3 AI
var ran = ceil(random(5));
point(x3, y3);
switch (ran) {
case 0:
x3 = x3 + 2;
break;
case 1:
x3 = x3 - 2;
break;
case 2:
y3 = y3 + 2;
break;
case 3:
y3 = y3 - 2;
break;
case 4:
//EXTRA
break;
}
//Collision detection between Players
var d = int(dist(x2, y2, x, y));
var d2 = int(dist(x3, y3, x, y));
var d3 = int(dist(x2, y2, x3, y3));
function reset() {
x = 200;
y = 200;
x2 = 150;
y2 = 100;
x3 = 300;
y3 = 220;
}
noStroke();
text("1", x - 3, y - 5);
text("2", x2 - 3, y2 - 5);
text("3", x3 - 3, y3 - 5);
if (d === 10) {
reset();
}
if (d2 === 10) {
reset();
}
if (d3 === 10) {
reset();
}
//Barriers
if (y === 0) {
reset();
}
if (y2 === 0) {
reset();
}
if (y3 === 0) {
reset();
}
if (y === 400) {
reset();
}
if (y2 === 400) {
reset();
}
if (y3 === 400) {
reset();
}
if (x === 400) {
reset();
}
if (x2 === 400) {
reset();
}
if (x3 === 400) {
reset();
}
if (x === 0) {
reset();
}
if (x2 === 0) {
reset();
}
if (x3 === 0) {
reset();
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.js"></script>
谢谢你 https://editor.p5js.org/ 如果答案很简单,我是新的 p5js 很抱歉!
【问题讨论】:
-
你必须使用
rotate()。但是,您必须在前后翻译对象。 -
这能回答你的问题吗? Rotating objects within a grid in P5.js
标签: p5.js