冒险解谜游戏中文网 ChinaAVG

标题: wintermute学习笔记[4]--搭建场景步骤三:场景布局 [打印本页]

作者: clockworkman    时间: 2010-9-17 15:41
标题: wintermute学习笔记[4]--搭建场景步骤三:场景布局
帮助文档里说了,现在真正有趣的来了,虽然我一点都没看出来哪里有趣- -
; I  e8 @; Z3 D! u, J% q; m这一章我们将了解如何使用区域(region)来布局,实现桌子在适当时候遮挡角色的效果,你可以把帖子拉到末尾先看看最终效果。
! U7 d" M! _' x/ t& c7 Q( n3 o& o% X0 B
在SceneEdit中打开Myscene.scene。
4 E6 j" Q7 R1 ?# {6 m$ z! H! ^, j, @- a6 k7 `  M
目前我们有两个实体:backgroud和desk,还有一块区域floor划定人可以走的范围。
# @4 ^4 n! B, y8 i& N我们需要desk这个实体在角色走到桌子后面时遮挡住角色。方法是添加另一个区域。  {' Q/ O4 l# q" x& I0 ]  p

2 F" G/ f( ]6 {) A* e( T7 W7 K  e$ T9 N
7 I' ?3 a- r& |; U( `如图,点击Add region按钮。一个新的区域被创建了,默认名为new region,在预览窗口里是一个红色高亮显示的小方框。; Y( x" }9 _1 ?; C
7 `; v3 o& i8 G4 E0 X1 s6 J. r3 e
' u$ K( \( w  Q% O- {& y
+ I' N; v$ \5 e: l5 n) A  C+ S

; u3 f$ n' i: J# t2 f3 E
$ o- j+ \" o5 A$ S2 y% y9 B将这个区域改名为“behind_desk”。接着按步骤一中对floor所作的方法,即添加节点和改变形状使来在地板上划定一块“在桌子后面”的区域。如图。(我一开始觉得形状有点怪,但实际测试后理解了为什么划定这样一块区域)
2 u5 Y) y4 {  |1 |: s& C8 ?1 R- N3 y  v! u5 W9 y
" r% J. g" f/ x* J/ E% m% D
( l, S' X! N) X' o& F9 T
3 i& }" X2 b  t

6 U& m- Q( X( G' N' R) h最后要做的就是调整node列表的顺序(使用上下箭头),如图为正确顺序:
# c( l6 n  A5 l- p: p) K( j" U; Z  Q4 O
7 V+ ~' q1 Q( D4 z* b  y$ n

* m1 y7 j* K; _/ \' t7 U* M! U! ?9 e0 o" b( e
这样一来引擎在工作时按这个顺序绘制:
* J8 {! `+ U7 M1 `( a' H6 E) c- }/ ?- U7 l/ T
0 j" l( B7 X; Y6 q0 W2 N- q
1、绘制背景! _& Z6 ^3 t0 }( M* m+ u6 y
2、绘制所有处于“behind_desk”区域的角色, h' e% g, |) t+ Q. A6 R
3、绘制desk实体(如果角色处于behind_desk区域中的话,desk就被绘制到角色之上了,也就实现了遮盖)
+ {$ T4 f9 W: F4 C8 x0 e, x1 H4、绘制所有处于floor区域内的角色(貌似这个引擎角色只绘制一遍,如果在behind_desk中被绘制了这里就不会再复制。是不是这个原理不太确定)1 `" {1 T7 }" [3 R! [& Z
换句话说,如果角色处于behind_desk区域中,会先绘制角色再绘制桌子,反之先绘制桌子在绘制角色。
( R5 P" }) i/ g! v! [
  r' W0 Z* I/ _+ E# K
5 G' _! S2 R$ b
' D1 J3 }5 s% W& p: j/ D$ {( P保存后实际测试一下,应该会实现图中的效果。下一章将处理人物横穿桌子的问题。
' Y7 v& }# o$ I! _+ T# Q# P0 s& x: F  n  W! Q8 S

, M, b0 Y, A& Z4 G% j8 o% P: P/ G  X6 T
/ c  c, W: o4 n( y! B4 G
帮助文档的作者认为这是最难的地方,剩下的都很简单~请确保你理解了其中的原理。




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2