冒险解谜游戏中文网 ChinaAVG

标题: wintermute学习笔记[9]--搭建场景步骤八、九:层、场景设置、场景转换 [打印本页]

作者: clockworkman    时间: 2010-9-18 16:32
标题: wintermute学习笔记[9]--搭建场景步骤八、九:层、场景设置、场景转换
两章内容比较少,合在一起。
! \. l" w' A" o/ L1 r6 |2 l( y" A$ p6 C
+ M1 b8 W$ Y  [: ^
[层]& p) R1 p( b# q. X* m6 j% m$ Z
* |6 Q$ f+ T; p2 M& ^
这一章我们将实现多层卷轴(原文parallax scrolling貌似是平行卷轴,个人认为多层卷轴更贴切)的效果,就像你坐车时看窗外,近处的树和远处的山川向后退的速度是不一样的,wme可以通过添加层实现场景分不同部分卷动的效果。在步骤一中我们知道如果场景所用图片尺寸大于游戏窗口,场景就会在必要时卷动,并且场景越大,卷动速度越快,假设你有三个层,分别存放三张场景图片(比如天上的月亮、远处的高山、近处的公路),并且每张图片宽度都不一样,就会分别以不同的速度卷动,实现多层卷动的效果。
% q: J) C5 e8 f+ x' \) F, T; ?. ~0 `: T& `* Q  r% G
每个场景可以拥有多个层,数量不限。
  P% _* [! a; g7 t: K6 T
+ t: n: Q6 ?' O4 Z在本章我们将为场景添加一个层作为窗外的天空。
" c+ @# G) c! J( }2 S. n: N( ~1 A% z6 K( P
天空的图片已经在 “data\tutorial\gfx”文件夹下准备好了,在PM 中为MyScene导入sky.bmp。( n4 @& O  i7 ?: c$ N4 u" V

3 t, s7 U4 q( z/ M; r6 {9 e/ ^在SceneEdit中打开MyScene.scene。
6 K1 P6 m; b& _2 [1 X- l* R ( s) \) X8 S' ^' r" i
在Layer栏中点击Add layer按钮添加新的层。
6 m0 }2 ~0 R1 N+ t- t, e- u! w; H( T8 Y8 a+ s
; a( @4 W9 l, B$ w

& j$ b) w6 W0 G# o- ~& o6 D- H4 S4 o5 h+ d
SceneEdit会弹出一个窗口填写层的信息(新版本里多出了一个close up选项,我没搞懂是干什么的- -大家研究研究),将名称改为sky,并将尺寸改为800,716。由于长度和窗口长度一样,这个层在水平方向不会卷动,而main层会卷动,就达到了我们想要的效果,而宽度为716,与main层相同,这样在纵方向上该层就会与main层同步卷动。0 X/ b2 j( n: F. N+ _
0 e# ]; k6 r6 G+ K% B

' s2 h0 E7 g% i5 C5 p6 m4 D% {) @3 |; P
点击OK。使用上下箭头将sky层移至main层上方,层的顺序影响绘制的顺序。4 f3 a7 H  t6 [7 O4 |

2 B4 f" X& q! b9 o3 r( z( g" X. C# D) C3 L6 k5 v; \& n
+ ?5 N( y' D" r; L# o+ B1 }
接下来要做的就是添加一个实体来放置天空的图片,如下图选择Add sprite entity,将新建的实体改名为sky并将图像改为之前导入的sky.bmp。4 d. ~6 z( N/ A, A# n  n: E

5 G9 s2 n6 L. S* N7 I$ i; t! H注意:新建的层可以添加实体,但只有main层可以添加区域。& I7 o9 `3 V( [' M$ Q7 U& X
0 W( h( i. \8 E1 O! i- q( w

$ `' R6 F8 w' R. S8 m 1 o- b' t/ l- C3 \! E, e3 D! k& y
如下图移动到合适的位置。/ q; v: P9 a8 @2 t" O
- F. }. I9 Z6 `

; n8 A; A* `9 u 6 [6 @9 L: P3 O8 D+ F4 D3 G
保存并测试一下效果。( m# _) W5 e: o1 M

1 b$ n6 l# S5 D( h6 ~[场景设置 ]0 i! f. s8 R; {; |
) c0 K- B6 G& A3 ]
引擎可以自动保存场景中物体的状态,并在下次角色来访时还原,还可以使场景中的对象记住它们所使用的sprite(你可以使用脚本改变)。
5 u* L' l" n6 ?在SceneEdit左边工具栏中找到Properties选项卡,下图中红框勾选的两个选项可以决定是否开启场景自动保存的功能。9 e4 Y5 k1 S- b8 U$ ~2 Q
4 d) \0 q) H$ w! s# g/ z
1 k* n  ]$ d+ [; t1 D  Y' i2 L. ]* S6 C
, {  D! X6 m3 }2 M( e- n

& `; i% O) S, n注意:保存场景的功能与你场景中对象的名称有关系,所以你的场景中不应该有重名的对象,否则可能出错。
/ y2 I( T& }2 S$ A, n  \
& S1 k5 u# ^+ B: o/ D" A1 L[场景转换]( L; v. E: K8 `9 `6 G1 t

$ {9 \2 t, A* t2 S) ]你的游戏一般不会只有一个场景,使用脚本可以把各个场景连接在一起。我们在步骤7种已经把门做成了一个可以互动的区域实体,按之前所教的,给门添加一个脚本door.script并编辑。( A8 G7 a; d; |8 l4 a7 t( H
9 I: }9 z7 u* x5 y8 b
5 K7 g5 w1 ^% I
 ( |, a8 q( }9 q5 W( R
我们只需要门在左键点击后能进入下个场景,所以只需要有以下的内容1 M4 f$ S* Y' a# N# g5 @' z
" m) i) q- U( e0 B
% }/ w. _8 a5 \9 {
#include "scripts\base.inc"
[/table]
"LeftClick"
{
actor.GoToObject(this);
Game.ChangeScene("scenes\menu\menu.scene");
[table=100%,#66ffcc]}

1 e0 \% o5 [! F; Z+ u/ B- ?
- S8 D0 x: d- h+ `( _. p2 R4 d大括号里一共有两句命令,第一句使角色在左键点击门后走到门旁边,第二句Game.ChangeScene("scenes\menu\menu.scene")使场景转换,目标场景由括号里的内容决定,你只需要改成其他文件夹里的场景文件就可以转换到别的场景了。
: o# p! K4 ~, L  ]" u1 M6 _See the WME demo project for a finished example.6 g& L) g. t$ Z" I. _
1 o+ U2 B0 {1 c, p9 Z7 N- h3 f
保存并测试。
2 }) E5 r8 H5 b
% q* S  G( q8 p/ }0 M1 R2 V8 n1 E* L% t
这样,你就完成了一个场景的搭建~Congratulations!
3 S5 a& G" S  ]/ X
/ K7 o0 |( |* U
  u1 n$ Y% J3 G3 C+ l6 u- R& S5 V, e0 V4 x
" e5 |; l$ R9 P; N# q

) G) Q3 j2 E( j$ u+ R' C2 e" u$ k/ u5 z, j* h! _
搭建场景是使用wme制作游戏耗费时间最多的内容之一,剩下的难点也只有对脚本的理解和运用了吧。
5 V; r; z2 M- c7 @) c这九个步骤大致按照帮助文档写的,感觉有很多表达不是很好的地方,也有一些问题没有搞明白- -希望大家一起讨论研究下。
, O3 i8 c) O# }7 N3 O
- l" `+ ?* b# q& D' [
+ ~+ A: O* l4 B1 I" E- A' l; s下一章是关于sprite的。
) I. S7 p( A( O# l$ }4 j& }
2 v) v3 R6 F) v5 ^0 G, |; J: X! J$ X) S
这里要和各位讨论一个问题,就是脚本的教学,之后有很多内容涉及到脚本,帮助文档的也就是放一段代码在那,没有详细的说明。而帮助文档除了关于场景搭建的教学,另一大块内容就是脚本,不过关于脚本并没有什么教学,只是象说明书一样,其中大量的函数更是没办法一个个讲解。有编程基础的人一看就大概明白,不懂编程的人要从头学起。我的想法是没有基础的人找一门语言入门(python、lua,或者你感兴趣的语言),我只学过python,个人感觉找到一本好的教材后(我看的是简明python教程),只需要不长的时间就可以大致了解,只要能写个简单的小程序,知道编程的基本知识,理解wme的脚本就不是问题了。之后大家多交流,我会翻译一些网上的教程,或者做一些demo,希望论坛上有更多有能力的人参与到游戏制作中来~
作者: naptid    时间: 2010-9-18 17:39
本人几乎没学过编程,但看了python的源码,感觉这是门简单易懂的语言;
7 k) _; [, f! R5 y- l  }) b' ]  l看了楼主的WME学习笔记,感觉WME的脚本也不会难到哪儿去,但
& D# x6 }" e- v看懂是一回事,写起脚本来又是另一回事了……
作者: clockworkman    时间: 2010-9-18 19:29
只要了解编程的基本知识, 浏览一下wme脚本提供一堆方法,初步的应用是很简单的。8 H6 N8 b: A  Y
之后就是不断练习、遇到问题Google之。
4 o( Y1 |8 _: H" B: e) _5 Z% z1 A% t8 m; P
不知道有没有必要把文档里脚本的内容拿出来讲- -




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