首页 > 网站 > 媒体动画 > 正文

Director基础教程:Director 3D 基本的(5)

2024-09-08 19:27:12
字体:
来源:转载
供稿:网友
director 3d 基础
     七、添加贴图( texture )

添加了材质球之后,点击字样为 “add texture” 的文本运行建立贴图的行为。脚本如下:

on mouseup(me)
if voidp(sprite(1).member.shader(‘‘newtexture‘‘)) then
tsprite = sprite(1)
tmember = tsprite.member
ttexture = tmember.newtexture(‘‘newtexture‘‘, /
#fromcastmember, member(‘‘colors‘‘))

tmember.model(‘‘newsphere‘‘).shader.texture = ttexture
tmember.model(‘‘newsphere‘‘).shader.texturemode = #none
go next
end if
end

脚本流程:
1 、确定是否有贴图加于球体上了。
2 、如果没有,脚本使用原先已经被创建的名称叫 “colors” 的位图演员创建一个新的贴图。
3 、然后脚本应用贴图于材质球中,于是就显示在球体的表面上。
4 、材质球的 texturemode 属性被设为 #none ,结果是贴图被应用于没有特别设定的状态。

八、使球体运动起来

添加了贴图之后,点击字样为 “set the sphere in motion” 的文本运行旋转程序。脚本如下:

property pactive

on beginsprite(me)
pactive = false
end beginsprite

on mouseup(me)
pactive = true
go next
end

on enterframe(me)
if pactive then
tsprite = sprite(1)
tmember = tsprite.member
tmember.model(‘‘newsphere‘‘).rotate(0,0,-5)
end if
end

脚本流程:
1 、当用户点击文本时,脚本把 pactive 的值设为 true ,就可以使球旋转起来。
2 、然后脚本设定每次进入当前帧时都使球旋转 5 个单位。

九、添加一个方体

当球开始旋转起来之后,点击字样为 “create box” 的文本运行创建方体程序添加一个简单的方体。脚本如下:

on mouseup(me)
if voidp( sprite(1).member.model(‘‘newbox‘‘)) then
tsprite = sprite(1)
tmember = tsprite.member
ttempmodel = tmember.newmodel(‘‘newbox‘‘)
tboxresource = tmember.newmodelresource /
(‘‘newboxresource‘‘, #box)

tboxresource.width = 20
tboxresource.height = 20
tboxresource.length = 20
tboxresource.left = 1
tboxresource.right = 1
tboxresource.top = 1
tboxresource.bottom = 1
tboxresource.front = 1
tboxresource.back = 1
ttempmodel.resource = tboxresource
ttempmodel.parent = tmember.group(‘‘world‘‘)
ttempmodel.addtoworld()
tcenterpoint = point(sprite(1).width/4, sprite(1).height/3)
tpointtovector = tsprite.camera.spritespacetoworldspace /
(tcenterpoint - point(tsprite.left, tsprite.top))

tmember.model(ttempmodel.name).transform.position = /
tpointtovector
go next
end if
end

脚本流程:
1 、创建一个名叫 “newbox” 的模型。
2 、然后建立一个类型为 “#box” 的模型资源。由于方体是原始的基本的形状,所以可以在空的 3d 世界凭空创建它。
3 、脚本然后给模型资源添加一个尺寸,以标明方体的各个侧面与边。
4 、这个新的模型资源被应用于 “newbox” 模型上。
5 、这个模型被添加进 3d 世界并指定为这个 3d 世界的子对象。
6 、模型被指定在一个 3d 世界里的位置。

在这儿,缺省的材质球被使用,没有用上贴图。

十、使方体运动起来

最后,方体被加上运动。点击字样为 “orbit box” 的文本运行环绕运行方体程序。脚本如下:

property pactive

on beginsprite(me)
pactive = false
end beginsprite

on mouseup(me)
tsprite = sprite(1)
tmember = tsprite.member
tmember.model(‘‘newbox‘‘).parent = tmember.model(‘‘newsphere‘‘)
pactive = true
go next
end

on enterframe(me)
if pactive then
tsprite = sprite(1)
tmember = tsprite.member
tmember.model(‘‘newbox‘‘).rotate(0,20, 25)
end if
end on

简介环绕运行方体程序所做的:

1 、当鼠标点击在字样为 “orbit box” 的文本上时,方体被指定为球体的子对象。由于球体是不停旋转的,这就造成方体开始环绕球体,以对应于球体不停修正的位置变化。(也是就说方体与球体好象有无形的棒连在一起了,不但距离保持不变,而且表面相对的位置与不变,如在本例中球体对着方体的那一面永远不变。)
2 、方体自己也每次进入当前帧时都旋转。

[1] [2] 下一页  

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表