簡體   English   中英

我的碰撞檢測實現不正常

[英]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++;
        }
    }
}

的jsfiddle

正如您所看到的,對象會彈跳兩次,但隨后它會完全浮出屏幕。 我無法解釋這一點,我看着控制台,它確認它只反彈兩次(設置isbounce為true,false和true再次)。 我期待的是,每當物體撞擊地面時, isbounce將被設置為true,並且當y值達到ymax時(每當它反彈以減少刺激能量損失時,它將減小)。 我認為這是一個相當容易實現的力量,但我很困惑為什么它不起作用。

替換if (y == ymax) { by if (y <= ymax) {以確保它在屏幕頂部反彈。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM