第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

基于jQuery制作自己的web游戲引擎-貳

標(biāo)簽:
Html/CSS JQuery CSS3

基于jQuery制作自己的web游戏引擎-贰
本章节衔接基于jQuery制作自己的web游戏引擎

第二部分:编写物理引擎
作为一个游戏引擎,物理部分是必不可少的,所以,我们即将开始编写physics.js

首先要开始编写碰撞检测,定义一个函数:

function collision(obj1,obj2) {
    if (
        ((obj1.x + obj1.width) >= obj2.x) &&
        (obj1.x <= (obj2.x + obj2.width)) &&
        ((obj1.y + obj1.height) >= obj2.y) &&
        (obj1.y <= (obj2.y + obj2.height))
    )
    {
        return true;
    } else {
        return false;
    }
}

那么如果想要知道一个game object是否有撞上任意其他游戏对象呢?

function collisionObj(obj1) {
    var collObj = [];
    for (var i = 0 ; i < gameObjs.length ; i++){
        if (gameObjs[i] !== obj1){
            if (collision(obj1,gameObjs[i])){
                collObj.push(gameObjs[i].name);
            }
        }
    }
    return collObj;
}

在现实生活中,两个物体相撞后,会因反作用力向相反方向运动,所以可以写一个rebound()函数进行该操作

function rebound(obj1,obj2) {
    obj1.define("force",true);
    obj2.define("force",true);
    if (collision(obj1,obj2)){
        obj1.angle = 180 - obj1.angle;
        obj2.angle = 180 - obj2.angle;

        var tmp = obj1.speed;
        obj1.speed += obj2.speed;
        obj2.speed += tmp;
    }
}

与reboundUpdate()

function reboundUpdate(obj1) {
    if (!obj1.get("force")){
        return null;
    }
    var rebObj = [];
    for (var i = 0 ; i < gameObjs.length ; i++){
        if (gameObjs[i] !== obj1){
            rebound(obj1,gameObjs[i])
        }
    }
    return rebObj;
}

现在物理引擎搭建完毕,接下来就可以编写游戏啦~
physics部分[完]

點(diǎn)擊查看更多內(nèi)容
2人點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消