Создание функциональных ласт для игры в пинбол с помощью p5.js и Matter.jsJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Создание функциональных ласт для игры в пинбол с помощью p5.js и Matter.js

Сообщение Anonymous »

Я создаю игру в пинбол для школьного проекта. Я использую p5.js для графики и Matter.js для физики. Все остальное в моем коде работает, за исключением ласт, которые продолжают стрелять непрерывно и усложняют игровой процесс.
Я попытался использовать аттракторы для решения проблемы, как это делает этот репозиторий [здесь](https://github.com/lonekorean/javascrip ... ball/my.js)
Однако мой код продолжает выдавать ошибки, говорящие, что привлечённое тело - это неопределенный. Я не знаю, в чем тут проблема.
Мой другой вариант — убрать скорость тела после выстрела. К сожалению, это не сработало, и я не знаю, почему Matter.js не распознает эту проблему.
Мой репозиторий на GitHub находится здесь
class Flipper {
constructor(x, y, w, h, isLeft) {
this.x = x;
this.y = y;
this.width = w;
this.height = h;
this.body = Bodies.rectangle(this.x, this.y, this.width, this.height);
this.velocity = 0.2;

this.hingeRadius = 5;

if (isLeft) {
this.hinge = Bodies.circle(this.x - this.width / 2, this.y, this.hingeRadius, { isStatic: true, label: "hinge" });
}
else {
this.hinge = Bodies.circle(this.x + this.width / 2, this.y, this.hingeRadius, { isStatic: true, label: "hinge" });
}

Composite.add(world, this.body);

let options = {
bodyA: this.body,
pointA: isLeft ? { x: - this.width / 2 + 10, y: 0} : { x: this.width / 2 - 10, y: 0 },
bodyB: this.hinge,
length: 0,
stiffness: 1,
};

this.constraint = Constraint.create(options);

Composite.add(world, this.constraint);
}

show() {
// display the flipper
let pos = this.body.position;
let angle = this.body.angle;

push();
translate(pos.x, pos.y);
rotate(angle);
rectMode(CENTER);
fill(100);
noStroke();
rect(0, 0, this.width, this.height);
pop();

let hingePos = this.hinge.position;
push();
translate(hingePos.x, hingePos.y);
fill(255);
noStroke();
circle(0, 0, this.hingeRadius);
pop();
}

hit(isLeft) {
if (isUp) {
if (isLeft) {
console.log(isUp);
Body.setAngularVelocity(this.body, -this.velocity);
// isUp = false;
}
else {
console.log(isUp);
Body.setAngularVelocity(this.body, this.velocity);
// isUp = false;
}
}
else {
Body.setAngularVelocity(this.body, 0);
}
}
}

// WASD to control flipper movement
function keyPressed() {
if (key === " ") {
if (gameState === "start") {
if (!bgMusic1.isPlaying()) {
bgMusic1.play();
}
gameState = "play";
}
}
if (key === "a") {
isUp = true;
lFlipper.hit(true);
}
if (key === "d") {
isUp = true;
rFlipper.hit(false);
}
}

// just to release flippers
function keyReleased() {
if (key === "a") {
isUp = false;
lFlipper.hit(true);
}
if (key === "d") {
isUp = false;
rFlipper.hit(false);
}
if (key === " ") {
if (gameState === "play") {
pinball.launch();
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... -matter-js
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Согласованное преобразование значений гироскопа на Android и iOS с помощью Matter.js
    Anonymous » » в форуме Android
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Согласованное преобразование значений гироскопа на Android и iOS с помощью Matter.js
    Anonymous » » в форуме IOS
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как запустить Matter Bridge на Android
    Anonymous » » в форуме Android
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Устройство протокола Python MATTER
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Камера для одиночной игры работает, но камера для многопользовательской игры не отслеживает и движения не синхронизируют
    Anonymous » » в форуме C#
    0 Ответы
    55 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Javascript»