作者chann (一..一)
看板Flash
标题[问题] 碰撞变形 挤压 细胞模型 逻辑请益
时间Thu May 20 15:38:50 2010
想请教版上各位前辈关於一个程式的程式逻辑,
需安装 shockwave,
adobe shockwave 安装连结
http://get.adobe.com/shockwave/
程式连结
网页
http://art_en.storynest.com/Experiments/e_2003_Boba/e_2003_Boba.dcr
下载
http://ppt.cc/5__6
安装完 shockwave 後使用浏览器开启此档案。
原始档案似乎是使用 director 来制作,
我思考了良久没办法想出该如何以 flash 来重制,
目前想了几个方法如下:
1.)
使用类似 drawCircle 的方法来绘制每个细胞,
以 AS 侦测若圆圈相交则於两个交点绘制直线以做出挤压变形的效果,
但似乎没有办法在画出直线後将圆圈限制在只显示到直线的部份...
2.)
在球内部设置 5~6 个节点,依据这些点来跑 hitTestPoint 并对球本体施加变形,
但这不知道用什麽方法去实行...
3.)
用 3d 系统来模拟环境并实行碰撞,但还没接触过 flash 的 3d 系统,
不知道是否可以藉 3d 系统做出这个模型?
我本身有玩过 3dMax 但即使想使用 3d 来制作,
目前我也毫无头绪该如此制作碰撞变形的部份...
4.)
拖曳单一球体在最上面空白的地方移动时,会有格状背景的感觉,
使我又有个先将背景以先绘制好蜂巢状的透明格子,在将球体定位在里面的想法,
但是重力变形似乎是我目前毫无头绪该如何起步的门槛...
5.)
还是使用 flash 要达到这种效果是很困难的呢..非得使用 director 不可?
我使用的版本是 flash CS3,希望能够有经验的前辈可以指点我程式逻辑的明灯。
在此先感谢各位的拨冗阅读,并感激您的回覆。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ Fron: 114.44.139.92
咦!?
※ 编辑: chann 来自: 114.44.139.92 (05/20 16:25)
1F:→ aquarianboy:"as3 physics engine"你可以用这个当关键字google看看 05/20 17:03
2F:推 cjcat2266:先把每个cell想成一个中心点和一个"假想半径" 05/20 18:09
3F:→ cjcat2266:应是要把它想成是"圆形"这个出发点就错了 05/20 18:09
4F:→ cjcat2266:每个中心点和假想半径,再加上弹性系数,就可算出下一个 05/20 18:10
5F:→ cjcat2266:frame的时候每个cell应该要移动到哪里 05/20 18:11
6F:→ cjcat2266:要嘛自己算,要嘛用物理引擎算,下一步才是render 05/20 18:11
7F:→ cjcat2266:这个render方式看起来像Voronoi graph,可以去Google查 05/20 18:11
8F:→ cjcat2266:每一个Voronoi graph的多边形内部用圆形渐层填色 05/20 18:12
9F:→ cjcat2266:就可以作出最终结果,渐层中心点即为cell中心点 05/20 18:12
10F:推 cjcat2266:最後唠叨一下,当AS用到一定程度之後,尽量别碰hitTest 05/20 18:15
11F:→ cjcat2266:那是一个又吃资源又粗糙的AABB碰撞侦测方式 05/20 18:15
12F:→ cjcat2266:像这种圆形物件的碰撞侦测,就真的要自己用数学来算 05/20 18:16
13F:→ chann:感谢版主及cj大提供的大方向 助益良多! 特此拜谢<0> 05/20 18:40
14F:推 etrexetrex:请问 director 可以用很简单的方法作出这个吗? 05/20 18:48
15F:→ etrexetrex:我想问的是 director 可以比 flash 容易作吗? 05/20 18:48
16F:→ chann:想请益一下,有关版大说搜寻物理引擎部份,应该只有重力& 05/20 20:26
17F:→ chann:碰撞部份吧,Vonoroi 的演算法还是必须自己 code 出来罗? 05/20 20:26
18F:推 cjcat2266:是啊,网路上资源也很多啊,可以到WonderFL看看 05/20 20:27
19F:→ cjcat2266:WonderFL有一堆Voronoi范例,Wiki则是有演算法 05/20 20:27
20F:→ chann:还是有什麽引擎有提供写法以供参考呢@@ 05/20 20:27
21F:推 cjcat2266:基本上Voronoi就是最近两点之间的中垂线画出来的图形 05/20 20:31
22F:推 etrexetrex:其实我原本以为是 voronoi 只控制遮罩形状耶 05/20 20:53
23F:→ etrexetrex:因为最近都在想上面那篇遮罩的事 XD 05/20 20:53
24F:推 cjcat2266:那样也是OK啦,跟作色块再填色效果一样 05/20 21:00
25F:→ cjcat2266:只不过不知道FP的render效能有没有差 05/20 21:00
26F:→ chann:作色块、遮罩效果的部份可以请大大们指点一下吗@@ 05/20 21:10
27F:→ chann:找出每三个点连结的三角形之外心,在选出一点将所有用到此点 05/20 21:26
28F:→ chann:的三角形外心连起来画成一个Sprite(可以这样吗?),再将 05/20 21:28
29F:→ chann:Sprite 填入渐层 05/20 21:28
30F:推 cjcat2266:Voronoi画法不是这样的,演算法可以去wiki找 05/20 21:49
31F:推 etrexetrex:自己实作voronoi有点累哦 还是找看看flash 有没有写好 05/20 22:06
32F:→ etrexetrex:的lib比较快 05/20 22:06
33F:推 cjcat2266:有没有lib我不知道,不过WonderFL上有很多范例就是了 05/20 22:30
34F:→ chann:感谢各位大大地回应~我先朝实做细胞碰撞为方向好了 05/20 23:11
35F:→ chann:中间的爪子就等之後再来请益了~ <0> 05/20 23:11