lfkdsk / JustWeEngine

An easy open source Android Native Game FrameWork.
772 stars 115 forks source link

有用过的同学说说不足和可拓展之处么? #2

Open lfkdsk opened 8 years ago

lfkdsk commented 8 years ago

RT,当然可拓展之处很多。 目前来看会逐步增加:

(以上均已添加)

cezheng commented 8 years ago

还没有用,但是大概看了一下Repo的内容,似乎是个纯java的引擎,只想斗胆问一句楼主,和那些个主流的用C++/Lua/Js的引擎比起来,选择这个引擎的理由是?

lfkdsk commented 8 years ago

更面向Android原生吧,这也就是命名轻量级的原因,其他的引擎的转译到Android上的坑其实挺多的,不过只用java效率确实一般,所以音频系统、还有如果写物理引擎的话会用C++写吧!

ice1000 commented 8 years ago

好评,回头写个游戏试试,正愁没引擎呢(不想去学什么Unity啊、UE了)
thank♂you♂sir
对了 这个是你一个人独自开发的?

lfkdsk commented 8 years ago

@ice1000 はい

lfkdsk commented 8 years ago

说实话大家觉得Js真的快=——=?

ice1000 commented 8 years ago

JS是啥?JavaScript?

lfkdsk commented 8 years ago

@ice1000 嗯,不还是要靠C++?真就自己来速度怎么能快啊=_=

ice1000 commented 8 years ago

我信任JVM 尤其是当你在一个基于JVM的系统上跑Java

lfkdsk commented 8 years ago

大家有什么好的想法么?😚😚😚

ice1000 commented 8 years ago

这个引擎还是蛮小众的 :joy: 不过好羡慕你 五百星的项目

cezheng commented 8 years ago

说实话Java真的慢,特别是对游戏这种比较需要性能的东西来说,C++已经专门为游戏开发服务了20多年,优化经验啥的都积累了很多。说Android基于JVM的能不搞笑么,只是跑app的runtime有用jvm,系统本身google用C++写了多少东西做了多少优化,要是android真就是纯java写的那真是没什么前途。

cezheng commented 8 years ago

js和lua什么的,做的就是一个c++ binding,说到底当然要靠C++的

lfkdsk commented 8 years ago

😂😂😂并没有打算搞什么大型开发,就是自己做着玩的(゚ω゚)

cezheng commented 8 years ago

其实不是跟repo主说,是跟信任jvm的那位盆友说😂

ice1000 commented 8 years ago

@cezheng 好吧 Java快是我直觉上的看法 但是Java也不慢啊 我看JustWe就跑得挺好的 还有这个 知乎上的。。。 在效率差距不大的情况下我认为减少接口更好

ice1000 commented 8 years ago

问下 你那个SQLite数据库访问 为啥我找不到Node类 难道还要手动包含你说的那个框架? :fearful: 还有 建议适配下 SharedPreference 我保存个最高分 :joy: @lfkdsk

lfkdsk commented 8 years ago

@ice1000 。。。IOC框架是指用反射调用注解类进行注入,正常node应该能找到啊,你有什么便捷的联系方式比如QQ什么的么?感觉直接这么说说不清楚,还有建议单开issue =-=

ice1000 commented 8 years ago

我把项目文件上传了 hiahia @lfkdsk

hnshilei commented 8 years ago

@lfkdsk 尝试运行了微信打飞机的demo很不错,有两点想请教一下: 1、图片格式有哪些限制和要求?我尝试将ship的材质替换成了32位的png图片,结果不显示! 2、帧动画支持plist文件吗?

ice1000 commented 8 years ago

貌似丰恺不在,我帮他回复一下: @hnshilei 我觉得我肯定不支持plist的,这个引擎的逐帧动画实现机制就是剪裁单张图片,和plist并没有关系(我假定我说的和你说的都是iOS的那个plist)。还有图片格式的限制,我觉得只要是Android认的图片都可以(毕竟读取图片用的系统API,像什么jpg png gif webp都是肯定支持的。可能是你的图片有问题吧。如果你的32位png图片专门拿出来在另一个APP里面调系统API读能成功读出来的话,那就肯定是 @lfkdsk 的锅了 😂

hnshilei commented 8 years ago

@ice1000 多谢回复! 1、昨晚扒了下源码,确实和你说的一样,发现没有plist文件的解析支持; 2、32位图片已经加载出来了,发现是由于ship.setDipScale(100, 100);设置的问题,把这句注释掉,图片就出来了。这个DipScale参数很诡异的样子。。。。

另外: 1、我还想控制动画的速度,有什么办法或想法吗?现在动的太快了。 2、sprite能控制朝向吗?我也没有找到相关的设置接口。。。

ice1000 commented 8 years ago

控制朝向应该是通过Rotate这类的东西实现。 别的我就不是很清楚丰恺是怎么实现了,有兴趣的话可以移步我的引擎专用组织icela,里面的除了这个引擎的fork之外的几个仓库80%的代码都是我写的。我之前弄了个JavaSE的游戏引擎,正在往Android上移植,感兴趣的话就去看看吧? 欢迎提出各种问题Orz。。。。

hnshilei commented 8 years ago

@lfkdsk 引擎更新变化比较大,原来那个微信打飞机的demo还是老架构。而且新版架构也没有例子可以参考哇。。。。抽空能把demo更新一下就好啦

ice1000 commented 8 years ago

我写过一个Demo @hnshilei

lfkdsk commented 8 years ago

2333333 @hnshilei @ice1000 莫名其妙的来晚了

lfkdsk commented 8 years ago

/Anim 里面有动画类,能处理这些需要,有空我再补几个新添加的

hnshilei commented 8 years ago

@ice1000 谢啦,已经把demo下载下来了,改到我的Eclipse工程中了,不过demo里面好像也是用的simpleEngine没有用到新加的SimpleLayerEngine,那个怎么使用,也没见到说明,文档和例子跟不上框架的步伐呀 : )

hnshilei commented 8 years ago

@lfkdsk 动画类我看了,主要是控制移动,缩放,或是绑定帧动画,我现在是想要控制sprite绑定的FrameAnimation切换的速度,,,,现在动的太快了,想让Sprite动的节奏慢一点......有什么好办法吗?谢啦!

hnshilei commented 8 years ago

@lfkdsk @ice1000 有办法使用ttf字体吗?或者支持其他什么字体?:)

lfkdsk commented 8 years ago

@hnshilei SimpleLayerEngine其实和原来用法是一样的,并且这个SimpleLayerEngine就是为了方便兼容老版本的东西设置的,接口都是一样的。

lfkdsk commented 8 years ago

@hnshilei 嗯嗯,应该是我Layer更新之后的文档没更新,其实Layer的变化也不太大,大概只做了一件事就是把对象进一步的实体分层,把不需要碰撞的对象放在不同的层级上,以便于缓解那个O(n^2)的碰撞处理,其余的都是一个样子的,我的文档最近就会更新(在赶一个DeadlineQAQ)。另外现在里面应该是有一个四叉树,但还没有应用到Engine里面,但是如果想自己处理碰撞的话,可以看看那个四叉树。

lfkdsk commented 8 years ago

@hnshilei 绘制使用的还是Paint对象,是可以使用TTF字体的。另外com.lfk.justweengine.Anim.VelocityAnimation这个类应该能帮到你控制移动。

hnshilei commented 8 years ago

@lfkdsk 多谢回复! 1、自定义字体已经可以显示了,最喜欢JustWe就是这一点,可以无障碍的使用原生的东东,赞一个! 2、可能我没有描述清楚:类似捕鱼达人里面小鱼的游动姿态动画,由多帧构成,现在我是加载了帧动画,但是帧动画切换的太快,能让切换过程慢一点吗?VelocityAnimation应该不是这个作用吧。

hnshilei commented 8 years ago

@lfkdsk 参考VelocityAnimation重写了Frame的步进方法,达到了需要的效果,抽空整理下提交上去:)


    @Override
    public int adjustFrame(int ori) {
        int modified = ori;
        if (timer.stopWatch(100)) {
            modified += direction;
            if (modified < firstFrame) {
                modified = lastFrame;
            } else if (modified > lastFrame) {
                modified = firstFrame;
            }           
        }
        return modified;
    }
lfkdsk commented 8 years ago

@hnshilei FrameAnimation 的动画是随着FPS来变化的,当时是觉得要提供足够的满足FPS的帧,才能有不错的显示效果。

hnshilei commented 8 years ago

嗯,如果是一秒内的动画,确实满帧的效果确实是比较理想的。 我们的美工给的动画其实是超过1秒的长动画帧,如果不加间隔进来,就是1秒内把2-3秒的动作都完成了,类似于快进的效果了,对吧 :)

lfkdsk commented 8 years ago

嗯,我记得我里面好像有设置间隔的Anim不过忘了是哪个了,你可以把修改后的创建一个新类,欢迎PR!

ice1000 commented 8 years ago

卧槽居然是正式游戏项目啊。。。牛逼牛逼 @hnshilei

hnshilei commented 7 years ago

@ice1000 也不算是正式项目,是把几个小游戏,嵌入到一个大的APP中。

原计划是用cocos2dx移植几个PC端现成的小游戏,后来发现那个是用jni的,如果想整合,必须把我现有的整个工程,移植到它生成的框架去,搞起来太麻烦了。而且和原生App数据传输也是个麻烦事,,,,

幸运的是遇到了JustWeEngine,帮我跳过了这个大坑。直接纯java而且全部开源,运行效率也满足了我们项目的需要,简单小游戏帧率在40-60帧,足够我们用了。

ice1000 commented 7 years ago

真好啊。。。要是我的那个引擎早点写完就好了Orz [抱头痛哭]

lfkdsk commented 7 years ago

@ice1000 我觉得你应该先把文档写了,JavaDoc只是一个API查询手册,当不了文档来用的。

lfkdsk commented 7 years ago

@hnshilei 嗯,多谢鼓励,写完了希望能看到成品QWQ

ice1000 commented 7 years ago

我的几个引擎API都是一样的呀。。。可以直接照搬JVM版那个(不过现在还没写完)

hnshilei commented 7 years ago

@lfkdsk 刚刚编辑上传了一个饥饿鲨鱼的demo : ) 地址:https://github.com/hnshilei/justweTest_HungryShark.git

ice1000 commented 7 years ago

竟然是Eclipse。。。

hnshilei commented 7 years ago

呵呵,为了在老项目里面跑,把引擎转到Eclipse里面了,本来想转回到AS工程的,后来想想,就保持Eclipse算了,也是给有类似需要的同学一个参考吧:)

PeterJiung commented 7 years ago

请问一下如果顶部想加一个toolbar 如何实现?

lfkdsk commented 7 years ago

@PeterJiung 目前使用 Activity 封装的 Engine 因为使用了全屏的主题,所以没有默认的 ToolBar,但是本身 SurfaceView 外有一层包裹的 FrameLayout 空间,可以通过这个控件添加 ToolBar,如果有需要可已自行修改 Engine 的实现,另外我也会修改出方便的 Fragment 的版本并入新的版本中。

xiaogaofudao commented 7 years ago

小白 一枚,问下啊,是 基于 opengl es 的么

ice1000 commented 7 years ago

@xiaogaofudao 上面都说过了是原生绘制的(SurfaceView