帮助文档里说了,现在真正有趣的来了,虽然我一点都没看出来哪里有趣- -4 @& C$ L$ z. a& {
这一章我们将了解如何使用区域(region)来布局,实现桌子在适当时候遮挡角色的效果,你可以把帖子拉到末尾先看看最终效果。
- B7 z1 F1 ^ N1 Z9 T# _& J- [' G5 ?2 H5 ?5 u
在SceneEdit中打开Myscene.scene。- F3 \* Z! l% U' W: [/ x
7 R9 A* m6 @/ H& R. X# h( Q3 Q; f目前我们有两个实体:backgroud和desk,还有一块区域floor划定人可以走的范围。' ~7 ?0 U7 c5 G9 ^& f4 }
我们需要desk这个实体在角色走到桌子后面时遮挡住角色。方法是添加另一个区域。+ }7 \% G; [6 y, \+ V
( k7 T3 O2 ~( [" u! G' ?
8 {7 A7 j+ ?" o* T: U
如图,点击Add region按钮。一个新的区域被创建了,默认名为new region,在预览窗口里是一个红色高亮显示的小方框。: t. s- T' d0 S ?1 ~) X
$ Z! C ~5 P' N/ m; Z% _
8 u/ l' K' o8 X7 W2 X7 u2 l1 z$ m* K8 v) G, f: ^4 e9 A
& e5 q7 ^1 v5 r( N+ R; J1 \
0 J+ N6 L0 c" z1 C+ u将这个区域改名为“behind_desk”。接着按步骤一中对floor所作的方法,即添加节点和改变形状使来在地板上划定一块“在桌子后面”的区域。如图。(我一开始觉得形状有点怪,但实际测试后理解了为什么划定这样一块区域)
5 h+ t, d+ M- s0 c0 @
" b/ ?5 L `# J1 q
5 d+ A3 C% J8 ^5 F& j, r
& ?* G/ @7 P" D1 b1 X4 b$ o& [7 s7 a- g! a
# s$ r4 k( X2 _% I; J7 B
最后要做的就是调整node列表的顺序(使用上下箭头),如图为正确顺序:" p Z2 k/ d J, m& y! y
- ]6 Z7 e# X" ]; t v) ~
0 k0 {3 s- F M' l* `- S
; ^3 }* ]6 `8 L7 m% s# @& Z* e, M: q! L6 z( A" I
这样一来引擎在工作时按这个顺序绘制:$ ^) q# q `+ E& ]8 C. C/ m2 c
3 g8 c i; c- l& Y. ~7 |$ X' C
4 l: b; S3 N4 ~3 |4 x9 p1、绘制背景
7 w2 m; `& ~; C2 f+ L2 K2、绘制所有处于“behind_desk”区域的角色' P% n5 O% d9 f2 t% l' F* [
3、绘制desk实体(如果角色处于behind_desk区域中的话,desk就被绘制到角色之上了,也就实现了遮盖)
, L. d, d/ J X. W/ ?( K4、绘制所有处于floor区域内的角色(貌似这个引擎角色只绘制一遍,如果在behind_desk中被绘制了这里就不会再复制。是不是这个原理不太确定)$ W2 B- Q8 z3 M! m
换句话说,如果角色处于behind_desk区域中,会先绘制角色再绘制桌子,反之先绘制桌子在绘制角色。" `( S) a) ^9 b8 u) |
q9 J4 z! c1 D' r+ \/ T* k
; j1 T( m% N7 ^* k% ]1 n& K' F6 c: {/ z$ _( N
保存后实际测试一下,应该会实现图中的效果。下一章将处理人物横穿桌子的问题。5 \" M# n0 N S0 X5 s* O- J
* a D$ a i2 V, A/ T" {
0 C2 O# h' F4 {% I1 m+ T' u6 ]% Q
" V I4 ^2 u5 U) L, `
* Z! n- h% M0 [) s+ m帮助文档的作者认为这是最难的地方,剩下的都很简单~请确保你理解了其中的原理。 |