猫史档案馆


马里奥代码大公开!!!【第一期 让怪物和食人花“活”起来~】

用户:GPUawaGPUawa查看:9 回复:8 评论:9 创建时间:2022-04-29T21:51:31


Hello大噶好,我是来自(喵本来就是猫站过去的)box3的屑)

大家有在肝创作节吗?

(反正我在肝,还是马里奥)

今天,我就在这偷(喵图是自己的)来亿些关于马里奥的代码~

话不多说,先要准备素(shi)材(cai):

center_imagecenter_image

全图需要这么少的(真少啊!)素(shi)材(cai)

今天我们要着重讲的是:怪物和食人花

上菜!


console.clear()

//搜索水管、食人花和板栗
global.$=world.querySelectorAll
$("#水管-1").forEach(async(e)=>{
    e.animate([
        {position:e.position},
        {position:e.position.add(new Box3Vector3(0,-2.5,0))}
    ],{
        iterations: Infinity,
        direction: Box3AnimationDirection.WRAP,
        duration: 3 * 5,
    })
})
$("#马里奥-水管-1").forEach(async(e)=>{
    e.animate([
        {position:e.position},
        {position:e.position.add(new Box3Vector3(0,-2.5,0))}
    ],{
        iterations: Infinity,
        direction: Box3AnimationDirection.WRAP,
        duration: 3 * 6,
    })
})
$("#食人花-1").forEach(async(e)=>{
    e.animate([
        {position:e.position},
        {position:e.position.add(new Box3Vector3(0,-7,0))}
    ],{
        iterations: Infinity,
        direction: Box3AnimationDirection.WRAP,
        duration: 5*6,
    })
})
$("#板栗-1").forEach(async(e)=>{
    e.animate([
        {position:e.position},
        {position:e.position.add(new Box3Vector3(1,0,2))}
    ],{
        iterations: Infinity,
        direction: Box3AnimationDirection.WRAP,
        duration: 5*3,
    })
})
$("#板栗-2").forEach(async(e)=>{
    e.animate([
        {position:e.position},
        {position:e.position.add(new Box3Vector3(-2,0,3))}
    ],{
        iterations: Infinity,
        direction: Box3AnimationDirection.WRAP,
        duration: 5*3,
    })
})
$("#板栗-3").forEach(async(e)=>{
    e.animate([
        {position:e.position},
        {position:e.position.add(new Box3Vector3(4,0,3))}
    ],{
        iterations: Infinity,
        direction: Box3AnimationDirection.WRAP,
        duration: 5*4,
    })
})
$("#板栗-4").forEach(async(e)=>{
    e.animate([
        {position:e.position},
        {position:e.position.add(new Box3Vector3(-5,0,3))}
    ],{
        iterations: Infinity,
        direction: Box3AnimationDirection.WRAP,
        duration: 5*5,
    })
})

以上就是动画效果,接下来是道大菜:

碰到食人花、板栗就让玩家倒地!

for (const e of world.querySelectorAll('*')) {
    if (e.id.startsWith('食人花-1')||e.id.startsWith('食人花-2')) {
        e.collides = true 
        e.fixed = true
        e.onEntityContact(async({ other }) => { 
            if (other.isPlayer) { 
                if (other.hp!=0){
                    //other.player.music.sample=''
                    other.hurt(100)
                }
            }
        })
    }else if (e.id.startsWith('板栗')){
        e.collides = true 
        e.fixed = true
        e.onEntityContact(async({ other }) => { 
            if (other.isPlayer) { 
                if (other.hp!=0){
                    //other.player.music.sample=''
                    other.hurt(100)
                }
            }
        })        
    }
}

注:注释部分后面的教程会用到~别删掉哦~

好了,今天就先教这么多~

下期预告:终点!

bye~

体验链接:https://box3.codemao.cn/g/629536


回复

上一页1 页 / 共 1下一页
GPUawaGPUawa

彩蛋:center_image

EM?

点赞0


评论


GPUawaGPUawa

注:喵=口丕

点赞0


评论


GPUawaGPUawa

注:第一、第二段的代码的实体名称可以自己修改~

点赞0


评论


YLG_個YLG_個

牛哇,牛哇

点赞0


评论


灵清帝王吃爆一切厕所灵清帝王吃爆一切厕所

呃()对我来说蛮简单的()就是动画代码和碰撞代码,但是我看你动画代码用的挺多的,要不帮你封装成函数?

点赞0


评论


灵清帝王吃爆一切厕所灵清帝王吃爆一切厕所

给屑之喵封装的动画代码)(()()()()注:by可乐

async function animate(selector, startPos, endPos, durations, duration) {
    let elevator = world.querySelector(`${selector}`) //获取电梯板实体
    elevator.fixed = true//不受外力影响
    elevator.collides = true//允许碰撞

    elevator.animate([
        { position: startPos, duration: durations[0] },//停留在地面
        { position: startPos, duration: durations[1] },//用于地面往楼顶移动
        { position: endPos, duration: durations[2] },// 停留在楼顶
        { position: endPos, duration: durations[3] },//从楼顶回到地面
    ], {
        duration: 16 * duration,
        iterations: Infinity,
        direction: Box3AnimationDirection.WRAP,
    });

点赞0


评论


该账号已被封禁该账号已被封禁

猫站第一个见写代码会global的了 爷泪目

点赞0


评论


屑怪盗屑怪盗

保存

点赞0


评论