五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

范圍傷害

2023-08-11 16:08 作者:fun-無痕  | 我要投稿

console.clear()


const mscale = 1 / 16

const n = [-4, -3, -2, -1, 0, 1, 2, 3, 4]


// 生成一堆小人

for (let x of n) {

? ? for (let y of n) {

? ? ? ? for (let z of n) {

? ? ? ? ? ? const e = world.createEntity({

? ? ? ? ? ? ? ? mesh: 'mesh/小人.vb',? ? ? ? //地圖中需有一個(gè)名稱為“小人”的模型

? ? ? ? ? ? ? ? fixed: true,

? ? ? ? ? ? ? ? collides: false,

? ? ? ? ? ? ? ? position: [x * 4 + 64, y * 3 + 16, z * 4 + 64],

? ? ? ? ? ? ? ? meshScale: [mscale, mscale, mscale],

? ? ? ? ? ? })

? ? ? ? ? ? e.enableDamage = true

? ? ? ? ? ? e.onDie(() => {

? ? ? ? ? ? ? ? e.destroy()

? ? ? ? ? ? })

? ? ? ? }

? ? }

}


world.onPlayerJoin(({ entity }) => {

? ? entity.enableDamage = true?

})



function killZone(pos, radius, fn) { //球狀A(yù)OE

? ? for (const e of world.querySelectorAll('*')) {//遍歷所有實(shí)體

? ? ? ? const dist = e.position.distance(pos)//計(jì)算作用點(diǎn)與當(dāng)前實(shí)體的距離

? ? ? ? if (dist <= radius) {//當(dāng)距離小于等于有效作用半徑

? ? ? ? ? ? fn(e, dist)//傳遞當(dāng)前實(shí)體和距離到回調(diào)函數(shù)并執(zhí)行

? ? ? ? }

? ? }

}


async function killBox(pos, size, fn) { //盒狀A(yù)OE

? ? //搜索包圍盒內(nèi)的所有實(shí)體

? ? const entities = world.searchBox({

? ? ? ? lo: [pos.x - size, pos.y - size, pos.z - size], //包圍盒下邊界

? ? ? ? hi: [pos.x + size, pos.y + size, pos.z + size], //包圍盒上邊界

? ? })


? ? for (const e of entities) { //遍歷所有找到的實(shí)體

? ? ? ? fn(e)

? ? }

}


async function makeDamage(e, dmg, color) {

? ? e.hurt(Math.max(1, dmg)) //max用于防止負(fù)數(shù)傷害


? ? e.meshColor.copy(color) //當(dāng)前實(shí)體變色

? ? await sleep(500)

? ? e.meshColor.set(1, 1, 1, 1) //恢復(fù)正常顏色

}


const RED = new Box3RGBAColor(1, 0, 0, 1)

const GREEN = new Box3RGBAColor(0, 1, 0, 1)

const BLUE = new Box3RGBAColor(0, 0, 1, 1)

world.onPress(({ entity, button, raycast }) => {

? ? if (button === Box3ButtonType.CROUCH) { //下蹲鍵觸發(fā)自身球狀A(yù)OE

? ? ? ? const range = 8//AOE有效作用半徑

? ? ? ? killZone(entity.position, range, async (e, dist) => {

? ? ? ? ? ? if (e === entity) return//如果當(dāng)前實(shí)體是AOE施放者, 就不繼續(xù)執(zhí)行, 避免傷到自己

? ? ? ? ? ? const ratio = (range - dist) / range //計(jì)算距離百分比, 離得越近ratio越趨向1, 離得越遠(yuǎn)ratio越趨向0

? ? ? ? ? ? makeDamage(e, 100 * ratio, RED)

? ? ? ? })

? ? }

? ? else if (button === Box3ButtonType.ACTION0) { //左鍵觸發(fā)遠(yuǎn)距離球狀A(yù)OE

? ? ? ? const range = 8//AOE有效作用半徑

? ? ? ? killZone(raycast.hitPosition, range, async (e, dist) => {

? ? ? ? ? ? if (e === entity) return//如果當(dāng)前實(shí)體是AOE施放者, 就不繼續(xù)執(zhí)行, 避免傷到自己

? ? ? ? ? ? const ratio = (range - dist) / range //計(jì)算距離百分比, 離得越近ratio越趨向1, 離得越遠(yuǎn)ratio越趨向0

? ? ? ? ? ? makeDamage(e, 100 * ratio, GREEN)

? ? ? ? })

? ? }

? ? else if (button === Box3ButtonType.ACTION1) { //右鍵觸發(fā)遠(yuǎn)距離盒狀A(yù)OE

? ? ? ? const size = 7 //AOE盒的大小

? ? ? ? killBox(raycast.hitPosition, size, (e) => {

? ? ? ? ? ? if (e === entity) return//如果當(dāng)前實(shí)體是AOE施放者, 就不繼續(xù)執(zhí)行, 避免傷到自己

? ? ? ? ? ? makeDamage(e, 20, BLUE)

? ? ? ? })

? ? }

})


范圍傷害的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
响水县| 蓝田县| 黄骅市| 修武县| 霍山县| 布拖县| 甘洛县| 花莲市| 西昌市| 新昌县| 论坛| 太康县| 金湖县| 阿勒泰市| 潜江市| 庆安县| 广宗县| 闸北区| 淮南市| 南阳市| 汕头市| 兴山县| 隆回县| 育儿| 雷州市| 桃江县| 阜宁县| 阿拉善盟| 陇川县| 沭阳县| 青浦区| 长春市| 孝感市| 台北县| 于都县| 太谷县| 孙吴县| 耿马| 秦皇岛市| 延寿县| 景泰县|