[英]My implementation of collision detection doesn't behave normally
我一直在嘗試在p5.js中使用一些簡單的強制實現,我有這個概念,但我覺得我忽略了代碼中的一個簡單錯誤。 這是我現在的代碼:
var x = 0;
var y = 0;
var grav = new p5.Vector(0, 13, 0);
var bounce = new p5.Vector(0, -13, 0);
var isbounce = false;
var ymax = 0;
function setup() {
createCanvas(600, 400);
}
function draw() {
console.log(ymax, isbounce);
background(0);
fill(255);
ellipse(200, y, 50, 50);
if (y < 376 && isbounce == false) {
y += grav.y;
}
if (y >= 376) {
isbounce = true;
}
if (isbounce == true) {
y += bounce.y;
if (y == ymax) {
isbounce = false;
ymax++;
}
}
}
正如您所看到的,對象會彈跳兩次,但隨后它會完全浮出屏幕。 我無法解釋這一點,我看着控制台,它確認它只反彈兩次(設置isbounce
為true,false和true再次)。 我期待的是,每當物體撞擊地面時, isbounce
將被設置為true,並且當y值達到ymax時(每當它反彈以減少刺激能量損失時,它將減小)。 我認為這是一個相當容易實現的力量,但我很困惑為什么它不起作用。
替換if (y == ymax) {
by if (y <= ymax) {
以確保它在屏幕頂部反彈。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.