美文网首页
LightBulb回顾

LightBulb回顾

作者: samael | 来源:发表于2019-07-15 13:35 被阅读0次

LightBulb回顾

最近帮朋友做在做一个超休闲的物理游戏, 在Android与微信小游戏上发布, 制作过中的一些小问题总结一下, 使用引擎是cocos creator

共有问题

  • 谨慎使用物理世界中的rayCast, 如果没有物理碰撞效果的, 可以尝试与cocos自带的碰撞组件进行组合使用
  • cc.Graphics效率并不高,
  • 对于不同的版本UI设置可能些不一样, 可以通过组件继承的方式进行
// GameUIWX
cc.Class({
    extends: require('GameUI'), // <= 继承自GameUI
    properties: {},
    onGameReady() {
        this._super() // <= 父类
    },
})

微信小游戏

  • 微信小游戏子域中背景不透明
    子域工程中的摄像机改为透明
  • 包体超出限制
    使用腾讯云的COS进行远程资源的下载, 注意区别版本号, 并用md5 cached

Android

  • 如果release下有些JSB接口调用不了要修改proguard-rules.pro 把相关的代码混乱进行忽略
-keep public class main.** { *; }
-keep public class com.janusgames.lightbulb.** { *; }

TIPS

绘制瞄准线的代码


IMG_5081
rayCast(p1, p2) {
    var manager = cc.director.getPhysicsManager();
    var result = manager.rayCast(p1, p2, cc.RayCastType.Closest)
    //[0];
    if (result.length > 0) {
        result = result[0]
    } else {
        result = null
    }
    if (result && result.collider.node.group == 'line') {
        p2 = result.point;
        this.ctx.circle(p2.x, p2.y, 5);
    }

    //获得从start到end的向量
    var line = p2.sub(p1)
    //获得这个向量的长度
    var lineLength = line.mag()
    //根据每条线段的长度获得一个增量向量
    let length = 45
    var increment = line.normalize().mul(length)
    //确定现在是画线还是留空的bool
    var drawingLine = true
    // 临时变量
    var pos = p1.clone()

    //只要线段长度还大于每条线段的长度
    for (; lineLength > length; lineLength -= length) {
        //画线
        if (drawingLine) {
            this.ctx.circle(pos.x, pos.y, 5)
            pos.addSelf(increment)
            this.ctx.fill()
        }
        //留空
        else {
            pos.addSelf(increment)
        }
        //取反
        drawingLine = !drawingLine
    }

    if (!result) return;
    if (result.collider.node.group != 'line') return
    // 反射
    let l = p2.sub(p1)
    let n = result.normal.normalize()

    var r = l.sub(n.mul(n.dot(l)).mul(2)).mul(500).add(p2)
    p1 = p2;
    // 返回停止点
    // 多次组合可以实现反射的效果
    return {
        p1: p1,
        p2: r,
    }
}

相关文章

  • LightBulb回顾

    LightBulb回顾 最近帮朋友做在做一个超休闲的物理游戏, 在Android与微信小游戏上发布, 制作过中的一...

  • 回合制战略RPG游戏《 Othercide》,能够控制时间的格斗

    Focus Home Interactive已发布了最新的预告片,其中介绍了 Lightbulb Crew的新战略...

  • 周回顾回顾什么?

    关于周回顾,也是2018年常常遇到的一个时间管理概念。 下面是我总结出来18年遇到周回顾的几个地方: 有感兴趣的小...

  • 读书笔记|规划最好的一年|目标回顾

    目标回顾分为三个层次:每日回顾、每周回顾、季度回顾。 每日回顾 避免目标中途遗忘,每日目标回顾的作用就是建立总体目...

  • 回顾

    我今年26岁,我的儿时记忆已经记不起多少了,能回忆起来的事情大概要从03年非典了。03年我上六年级升初中 板蓝根卖...

  • 回顾

    今天AgileCommunity的话题是“如何提升迭代回顾会议的效率和生产力?” 这个话题在上次问题收集中排在首位...

  • 回顾

    坐在车上,望着窗外熟悉的风景,时光荏苒,不知不觉间,我在这座城市呆了已有十个年头了,曾经也有离开过,过了一段时间却...

  • 回顾

    我固执的认为我的父母没办法在一起生活,这个想法不仅害了我父母,也害了我自己。 为什么会有这个想法,源自于童年的恐惧...

  • 回顾

    时间过得好快,没想到这半年就过去了,回顾总是让我容易生发出感慨,还觉得有点难以想象。这一两个月,和G先生的...

  • 回顾

    看以前的字,想笑。感觉自己进步了。加油

网友评论

      本文标题:LightBulb回顾

      本文链接:https://www.haomeiwen.com/subject/cphnkctx.html