drzzm32 发表于 2014-7-12 19:37:09

本帖最后由 drzzm32 于 2014-7-12 19:44 编辑

ofz 发表于 2014-7-12 18:12
楼下 lrdcp 说的对,vb .net 不是解释性的。.net 平台上的三种语言(vb.net, c#, 托管c++),最后都是编译 ...

就是那个IL
翻译为中间代码,其本质不是二进制程序。
程序第一次运行时的确进行了翻译,解释到缓存。
第二次运行则直接从缓存读取。
微软说vb.net效率只比c++\c#低20%

话说我把弹幕绘制,计算,判定也是分离开的~
你们的测试并没开启判定吧?
弹幕超出游戏范围后又如何处理呢?这范围又有多大呢?

ofz 发表于 2014-7-12 19:55:36

drzzm32 发表于 2014-7-12 19:37 static/image/common/back.gif
就是那个IL
翻译为中间代码,其本质不是二进制程序。
程序第一次运行时的确进行了翻译,解释到缓存。 ...

我的判定是基于类的(自机负责自己跟弹幕的判定,妖精负责自己跟子弹的判定),因为在跑benchmark的时候没有创建自机,所以完全不会作判定

弹幕的活动范围是可调的,默认大概是显示范围上下左右再往外扩个几十像素的样子。超出的话会就直接舍弃掉了(还留在队列里,但设置成可回收对象,不再更新了)

drzzm32 发表于 2014-7-12 19:59:14

本帖最后由 drzzm32 于 2014-7-12 20:02 编辑

ofz 发表于 2014-7-12 19:55
我的判定是基于类的(自机负责自己跟弹幕的判定,妖精负责自己跟子弹的判定),因为在跑benchmark的时候没 ...

我的是在一个Timer里完成所有判定,在判定之前还有一个矩形预判定。不同范例的方法也不同。因为我还不知道如何使用掩模纹理现在是内部几十像素。超出范围后继续加入循环。

lrdcq 发表于 2014-7-12 20:10:53

本帖最后由 lrdcq 于 2014-7-12 20:17 编辑

drzzm32 发表于 2014-7-12 19:37 static/image/common/back.gif
就是那个IL
翻译为中间代码,其本质不是二进制程序。
程序第一次运行时的确进行了翻译,解释到缓存。 ...
两种碰撞函数,点到点碰撞(圆形),点到线碰撞(条形),曲线激光就是几十条短线,特殊形状弹幕由多个基本形状的弹幕藏在下面做判定。
运行流程
1.boss池:bossx自机判定(boss体术)
2.敌机池:包括boss和已注册为敌机的普通弹幕(其他敌机)x自机弹幕判定(自机弹幕伤害)
3.弹幕池:所有敌机弹幕x自机判定(自机中弹)

弹幕出屏的话本来就是可设定为是否出屏消失的发射器属性的(考虑到有些弹幕会出屏再绕回来,比如二重坑死爹),出屏消失的话和ofz君差不多就多几十个像素,具体是按照当前弹幕应用模型边长一半再加一点点来算的,出去了就“还留在队列里,但设置成可回收对象,不再更新了”,为了提高数组性能我只从队列尾巴上回收

ofz 发表于 2014-7-12 20:13:36

drzzm32 发表于 2014-7-12 19:59 static/image/common/back.gif
我的是在一个Timer里完成所有判定,在判定之前还有一个矩形预判定。不同范例的方法也不同。因为我还不知 ...

(举手举手)我也有矩形预判的说!

掩膜纹理是用来做复杂形状判定的吗?我这边没有那么高端的东西...(其实一共就只有圆形和矩形两种形状而已)

超出范围后继续加入循环,大概就是对象重用的意思吧...不知道你的队列是怎么管理的,我这边是每隔几秒钟刷新一次,把可回收的对象扔掉,这样队列就不会太长了

drzzm32 发表于 2014-7-12 20:16:59

本帖最后由 drzzm32 于 2014-7-12 20:23 编辑

lrdcq 发表于 2014-7-12 20:10
两种碰撞函数,点到点碰撞(圆形),点到线碰撞(条形),曲线激光就是几十条短线,特殊形状弹幕由多个基 ...

你的条形判定难道是用曲率圆半径?
我当前是100条轨迹,每条轨迹100弹幕
这个很容易用参数方程生成。

掩模纹理和OpenGL纹理透明有关

TheRebirth说过可以用图像识别进行判定

lrdcq 发表于 2014-7-12 20:21:13

drzzm32 发表于 2014-7-12 20:16 static/image/common/back.gif
你的条形判定难道是用曲率圆半径?
我当前是100条轨迹,每条轨迹100弹幕
这个很容易用参数方程生成。 ...

图像识别我以前也考虑过的,不过想了想STG似乎没人用这个做的所以算了。
条形判断也只是简单的点到线段距离而已,大概相当于3个点到点的运算量,一般激光弹幕又不多,曲线激光更少了(你看我bench2的激光弹幕也有判断,性能还能接受),所以就比较无所谓了。毕竟奇形怪状的弹幕还是少数,多半还是点到点。

ofz 发表于 2014-7-12 20:30:45

lrdcq 发表于 2014-7-12 20:21 static/image/common/back.gif
图像识别我以前也考虑过的,不过想了想STG似乎没人用这个做的所以算了。
条形判断也只是简单的点 ...

觉得图像识别没必要+1

话说在做姆Q的一非的时候,发现激光的纹理居然是把一个圆形弹幕拉长做出来的(神主大人您真会玩)我想问一下,你的曲线激光是怎么渲染的呢?

lrdcq 发表于 2014-7-12 20:41:01

本帖最后由 lrdcq 于 2014-7-12 20:43 编辑

传统写法,扭曲的分隔矩形啦(这东西不用gl基本上没法写吧),具体来说就是抛洒一个弹幕,他留下的轨迹(比如这里取了20个点)的队列生成的长条矩形的点坐标,就像一个弹幕拖的尾巴一样

lrdcq 发表于 2014-7-12 20:52:06

ofz 发表于 2014-7-12 20:30 static/image/common/back.gif
觉得图像识别没必要+1

话说在做姆Q的一非的时候,发现激光的纹理居然是把一个圆形弹幕拉长做出来的(神 ...

话说神主特会玩儿,比如这个就是 红色鳞弹 和 红色鳞弹 拉伸的激光 ,逗死了

页: 1 2 [3] 4
查看完整版本: [网页游戏] web红魔乡 3~6 面 [完]