独立开发真是痛苦啊
sdl吧
全部回复
仅看楼主
level 13
小牛_牛sky 楼主
每次都要自己抠图[泪]
2017年04月08日 14点04分 1
level 13
小牛_牛sky 楼主
困了,睡觉!
2017年04月08日 15点04分 3
level 13
小牛_牛sky 楼主
明天接着做,哈哈,加油,明天放上效果图
2017年04月08日 15点04分 4
level 9
加油[真棒]
2017年04月08日 15点04分 5
嗯嗯
2017年04月08日 23点04分
level 13
小牛_牛sky 楼主
这次重写使用的是box2d物理引擎,因为好些鱼的碰撞体积不是矩形(比如,灯笼鱼),而且鱼是有旋转的,这样的话,传统的矩形碰撞是满足不了的,而box2d就可以,因为只是模拟碰撞,而不是模拟物理环境。所以是实体的运动带动刚体,至于这些不规则图形的形状,则是 由Physics editor导出的,这个软件是导出Shape的,这个软件我是在网上找的试用版的,如果需要我可以发出来。但是,在sdl中使用physics editor需注意,我是用这个软件导出的cocos2dx格式,而cocos2dx坐标系和sdl不同,所以还要做个转换,
2017年04月09日 00点04分 7
level 13
小牛_牛sky 楼主
2017年04月09日 14点04分 8
level 13
小牛_牛sky 楼主
这就是目前的游戏截图,
2017年04月09日 14点04分 9
level 11
同感
2017年04月09日 15点04分 10
level 13
小牛_牛sky 楼主
先说说思路,使用box2d的思路,box2d是物理引擎,这里不需要模拟物理世界,而仅仅是不规则碰撞,并且box2d的碰撞是以fixture为准进行碰撞检测的,而一个刚体可能会有多个fixture,所以首要目的就是保证这些刚体只碰撞一次。
这个解决了就是world->Step(1/60,0,0);
有过经验的可能会了解,左边是时间步,往右依次是速度修正迭代次数和位置修正迭代次数。由于这里不需要,所以设置为0先说说思路,使用box2d的思路,box2d是物理引擎,这里不需要模拟物理世界,而仅仅是不规则碰撞,并且box2d的碰撞是以fixture为准进行碰撞检测的,而一个刚体可能会有多个fixture,所以首要目的就是保证这些刚体只碰撞一次。
这个解决了就是world->Step(1/60,0,0);
有过经验的可能会了解,左边是时间步,往右依次是速度修正迭代次数和位置修正迭代次数。由于这里不需要,所以设置为0
2017年04月11日 00点04分 11
level 13
小牛_牛sky 楼主
看上图会发现,子弹的刚体要比子弹慢上一点,那是为什么呢?这个是我自己的缘故,看上面的帧数,63,1/63=0.0158而1/60=0.01667
物理世界和游戏世界不同步,才会产生这种问题,回去得修改一下
2017年04月11日 00点04分 12
应该和这个没关系,因为这里没有使用box2d的碰撞模拟。
2017年04月12日 05点04分
level 13
小牛_牛sky 楼主
2017年04月12日 05点04分 14
level 13
小牛_牛sky 楼主
这几天实现了能量槽,和能量槽满了之后的激光炮的切换。可以见上图,接下来实现经验,金币。这样,基本功能就实现了,接下来就是鱼了,鱼的实现也是一个大工程。而且鱼潮实现也类似于僵尸的一波的实现,也便于我重写植物大战僵尸(这个我写过一次,不过没有在贴吧说明。而且实现功能不多),
2017年04月12日 05点04分 15
level 13
小牛_牛sky 楼主
另外需要注意,box2d在碰撞过程中的回调函数内是不能对刚体进行一些删除,或者设置刚体active的,这些操作都只能在这之外调用,因为在这之内会造成world->isLocked()而引发断言
2017年04月12日 06点04分 16
level 13
小牛_牛sky 楼主
2017年04月12日 14点04分 17
level 13
小牛_牛sky 楼主
目前已经实现金币,经验,能量槽。
2017年04月13日 00点04分 18
1 2 尾页