设为首页收藏本站官方微博

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

[复制链接]
查看: 3349|回复: 2
打印 上一主题 下一主题

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

跳转到指定楼层
楼主
发表于 2010-9-18 16:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

两章内容比较少,合在一起。
' l7 Q4 x2 f! ?; f& n) f4 b: O9 E3 S% X) A# f; p

$ ?( k1 g: C) X  s) H1 M) D2 D3 l[层]3 E+ k! e* }% w
( Q+ w/ {( ^( _0 U  g
这一章我们将实现多层卷轴(原文parallax scrolling貌似是平行卷轴,个人认为多层卷轴更贴切)的效果,就像你坐车时看窗外,近处的树和远处的山川向后退的速度是不一样的,wme可以通过添加层实现场景分不同部分卷动的效果。在步骤一中我们知道如果场景所用图片尺寸大于游戏窗口,场景就会在必要时卷动,并且场景越大,卷动速度越快,假设你有三个层,分别存放三张场景图片(比如天上的月亮、远处的高山、近处的公路),并且每张图片宽度都不一样,就会分别以不同的速度卷动,实现多层卷动的效果。
3 C* U  }) I4 J) x
9 Z' Z2 t- S2 Z  H每个场景可以拥有多个层,数量不限。
9 b1 B5 z7 r* j. d2 v% |4 X9 C" W7 J: Q* M; R# ~
在本章我们将为场景添加一个层作为窗外的天空。, L- r' x. {6 R4 Y. t% {* P5 E

  K0 a; e% l) R7 C4 B/ f; c天空的图片已经在 “data\tutorial\gfx”文件夹下准备好了,在PM 中为MyScene导入sky.bmp。: _( D0 g" K9 x2 k* P
! n) r' ?$ M8 U  @: s; T' Z( s
在SceneEdit中打开MyScene.scene。& Q1 T* U( R. ~
 * A8 t4 k8 F# W
在Layer栏中点击Add layer按钮添加新的层。$ `8 U% ~6 h: H$ r+ G
1 n* U- o* b" D' E( j- n

8 V# N/ f# F/ b3 {# h) P % E, Z+ C/ _1 |" f; T$ T

: q+ c8 h# m2 ^1 GSceneEdit会弹出一个窗口填写层的信息(新版本里多出了一个close up选项,我没搞懂是干什么的- -大家研究研究),将名称改为sky,并将尺寸改为800,716。由于长度和窗口长度一样,这个层在水平方向不会卷动,而main层会卷动,就达到了我们想要的效果,而宽度为716,与main层相同,这样在纵方向上该层就会与main层同步卷动。8 G/ r. h$ b8 h7 V" |% L7 {$ Y

( S, f7 I: E7 Z* c" i" Y: N9 E, O/ V, G# u/ z$ A( {0 Q. X% y

2 C+ I; I  n, A6 u' l. C点击OK。使用上下箭头将sky层移至main层上方,层的顺序影响绘制的顺序。: S, q# r" v8 g) H  Z
% F& z0 A% Z% n. h& x) g

0 N- l. F3 M( ?6 c! {5 Y& q9 q
6 s0 K8 K5 ]8 H: y( S+ }接下来要做的就是添加一个实体来放置天空的图片,如下图选择Add sprite entity,将新建的实体改名为sky并将图像改为之前导入的sky.bmp。
) X8 i; L: A4 g* b, Z- q
) ^2 H( Q  {+ l$ U注意:新建的层可以添加实体,但只有main层可以添加区域。: ^$ W! s$ c% a

: r' l# f' G: Q! a: i; l1 c5 B4 k  }- P! \' u

, L2 h) f. u/ W" b& _, U, v如下图移动到合适的位置。! g& A; M! {0 x- `. u% ]- O  H
# i8 b3 _. p- C: ]9 r8 ~

9 O7 L- }0 X( a/ K$ P: E, a8 x # P" Z5 O( W# p
保存并测试一下效果。4 a0 N6 r0 R2 `) Z( g( u
1 B, P) j7 T) b5 o
[场景设置 ]
1 l6 m' U# p& u- H$ V* T8 n3 F, o& d( ~& ]" m8 S7 `7 C8 m
引擎可以自动保存场景中物体的状态,并在下次角色来访时还原,还可以使场景中的对象记住它们所使用的sprite(你可以使用脚本改变)。
+ Y% z' u5 F$ y: b; f在SceneEdit左边工具栏中找到Properties选项卡,下图中红框勾选的两个选项可以决定是否开启场景自动保存的功能。
& b: I+ G: O1 \7 [% C9 T. f7 u% o2 D( X' r! T
! ^% p, T7 ~' q& p1 S/ w+ ^1 q& Q2 Q
2 c% l- n7 y: y- J8 ?

* w& k5 s, Z2 g) |3 S7 c( S) H1 \0 {2 \注意:保存场景的功能与你场景中对象的名称有关系,所以你的场景中不应该有重名的对象,否则可能出错。
3 B8 n+ c3 Y, w. Q( S4 ]6 P, ?
" D9 S" U+ P7 z$ R7 F[场景转换]" R+ I# D- o; }# F
" Q! O2 {- q- c2 U. D; V7 ?
你的游戏一般不会只有一个场景,使用脚本可以把各个场景连接在一起。我们在步骤7种已经把门做成了一个可以互动的区域实体,按之前所教的,给门添加一个脚本door.script并编辑。
% L2 z- y7 F+ t, o6 @  C, f8 L; f8 B
4 K( @& Q3 _9 S) h
 
/ N% l1 ^* L. V我们只需要门在左键点击后能进入下个场景,所以只需要有以下的内容
4 q  Z1 ~# k9 o, A3 d/ @$ {7 H+ i# Y* y$ N; V* h. X
. r) b4 h- P* y
#include "scripts\base.inc"
[/table]
"LeftClick"
{
actor.GoToObject(this);
Game.ChangeScene("scenes\menu\menu.scene");
[table=100%,#66ffcc]}
5 O7 i) k( W0 U8 B. w
. f3 Y$ p6 t9 T3 Y. _+ Z2 z
大括号里一共有两句命令,第一句使角色在左键点击门后走到门旁边,第二句Game.ChangeScene("scenes\menu\menu.scene")使场景转换,目标场景由括号里的内容决定,你只需要改成其他文件夹里的场景文件就可以转换到别的场景了。
3 Y% V' D+ L2 I: d& k2 N! kSee the WME demo project for a finished example.6 I( k; G5 Y- B, `: x) d

1 n' O) N0 b2 O: _. E5 T( O保存并测试。' @1 h, g. I6 ~5 h5 Q0 y1 Q8 T
/ r& u( h7 l( `; j! q; O, v0 n
7 C/ n' p  Z8 N! q5 f' k5 u
这样,你就完成了一个场景的搭建~Congratulations!0 c3 N$ G8 o) Q! V/ |

+ y4 A9 D' W, J% Z- R6 L9 A; W- q. B1 r  m" ^' v2 N0 ~) o% x8 a

& Q; g% @5 _* _5 u. c' I2 u9 J7 K8 l
9 Z: V( G! m+ X1 Z
. ~6 _. J3 {( }% R! _
0 D3 I8 [' _9 i0 {7 S6 P' N8 |2 {9 P搭建场景是使用wme制作游戏耗费时间最多的内容之一,剩下的难点也只有对脚本的理解和运用了吧。
6 B8 v! @0 ^* }" W这九个步骤大致按照帮助文档写的,感觉有很多表达不是很好的地方,也有一些问题没有搞明白- -希望大家一起讨论研究下。" y  _6 c. a3 [  V9 \/ W# u
1 o" z" m, m# T% P9 |" O4 M& q2 i8 Z

) t4 w/ L3 q1 I4 ?/ L( B下一章是关于sprite的。) U; Q7 t8 E. r- D8 {
* J7 B* o! Q* [& k

6 p$ M/ u. u8 ]+ B- }这里要和各位讨论一个问题,就是脚本的教学,之后有很多内容涉及到脚本,帮助文档的也就是放一段代码在那,没有详细的说明。而帮助文档除了关于场景搭建的教学,另一大块内容就是脚本,不过关于脚本并没有什么教学,只是象说明书一样,其中大量的函数更是没办法一个个讲解。有编程基础的人一看就大概明白,不懂编程的人要从头学起。我的想法是没有基础的人找一门语言入门(python、lua,或者你感兴趣的语言),我只学过python,个人感觉找到一本好的教材后(我看的是简明python教程),只需要不长的时间就可以大致了解,只要能写个简单的小程序,知道编程的基本知识,理解wme的脚本就不是问题了。之后大家多交流,我会翻译一些网上的教程,或者做一些demo,希望论坛上有更多有能力的人参与到游戏制作中来~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-18 17:39 | 只看该作者
本人几乎没学过编程,但看了python的源码,感觉这是门简单易懂的语言;
+ N$ z7 d- k0 A0 B看了楼主的WME学习笔记,感觉WME的脚本也不会难到哪儿去,但: P& ?  q8 S; V/ D, B) s
看懂是一回事,写起脚本来又是另一回事了……
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2010-9-18 19:29 | 只看该作者
只要了解编程的基本知识, 浏览一下wme脚本提供一堆方法,初步的应用是很简单的。
( C! \; D- b: ~1 X: G: O8 u之后就是不断练习、遇到问题Google之。
  `. R  ]5 ]( w. a8 t6 r8 q) U4 {8 y0 t# G3 {0 f( R
不知道有没有必要把文档里脚本的内容拿出来讲- -
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表