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

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

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

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

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

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

两章内容比较少,合在一起。  w1 G9 I9 R3 Y" K/ S5 k
! B  u8 s" w4 c8 S6 c0 z1 Y& n  ^$ l
( \3 u" g# _2 Z) w, D
[层]  n8 S/ ]: M! n8 h8 u2 n' y7 f- k

( d+ V) O* R) f6 X这一章我们将实现多层卷轴(原文parallax scrolling貌似是平行卷轴,个人认为多层卷轴更贴切)的效果,就像你坐车时看窗外,近处的树和远处的山川向后退的速度是不一样的,wme可以通过添加层实现场景分不同部分卷动的效果。在步骤一中我们知道如果场景所用图片尺寸大于游戏窗口,场景就会在必要时卷动,并且场景越大,卷动速度越快,假设你有三个层,分别存放三张场景图片(比如天上的月亮、远处的高山、近处的公路),并且每张图片宽度都不一样,就会分别以不同的速度卷动,实现多层卷动的效果。
8 L; Y& R; ^0 t
5 H5 ]8 r/ z7 Q7 c8 {2 X0 [! t每个场景可以拥有多个层,数量不限。$ u) G  W7 P8 Q1 e
, }+ c5 j0 o0 ]+ `
在本章我们将为场景添加一个层作为窗外的天空。
, D& J" F* F- h" x9 ~- G' w
5 l0 I* u4 g/ c$ q天空的图片已经在 “data\tutorial\gfx”文件夹下准备好了,在PM 中为MyScene导入sky.bmp。! X; A' U  {! j" C$ `) F
6 R1 i  o2 c$ L8 E
在SceneEdit中打开MyScene.scene。0 }2 C/ M  ^' u
 ) n' S6 P/ p: _
在Layer栏中点击Add layer按钮添加新的层。
$ C" j, O$ @: H* j6 Q3 \3 a9 q( e. C1 h( f

) [, x  S4 k" }9 ^# t " o9 T: Q2 D" U  q' ?1 X

* h. G+ D$ w. NSceneEdit会弹出一个窗口填写层的信息(新版本里多出了一个close up选项,我没搞懂是干什么的- -大家研究研究),将名称改为sky,并将尺寸改为800,716。由于长度和窗口长度一样,这个层在水平方向不会卷动,而main层会卷动,就达到了我们想要的效果,而宽度为716,与main层相同,这样在纵方向上该层就会与main层同步卷动。* k; }' N6 K: X" r% v, c
  x% ]0 p' F/ l! s& a9 g' I3 }

( G2 _! C1 N* E% o( v1 g' I1 i) H, g4 l" U) H, t
点击OK。使用上下箭头将sky层移至main层上方,层的顺序影响绘制的顺序。. M2 d9 D5 m7 ~5 n4 J$ U+ p
6 S8 t& @/ _2 b4 s  h- d

' D6 w, f. z4 L% ^/ O6 w& y1 Z) _8 F% `. E  @
接下来要做的就是添加一个实体来放置天空的图片,如下图选择Add sprite entity,将新建的实体改名为sky并将图像改为之前导入的sky.bmp。- _* E! `- `2 t8 P6 e7 [* l8 |
8 H6 g+ x( R# M* `# F  w+ ?
注意:新建的层可以添加实体,但只有main层可以添加区域。9 O  Y  w* ?" {; [" u3 E0 u
! c! R; [  P; m8 i  I" H& w

3 I' f! U5 c7 `4 {  e5 k8 c* B% j
: k2 e; c  J5 i4 {  o' |如下图移动到合适的位置。' q3 n3 I9 x7 z, Z+ Q3 s
* g* w- B1 ?  ]* j8 E& M4 |
* G8 [8 u1 N& g2 T* y( K" z0 E

' ?6 C" d2 C1 Y  G7 p" }. a& _保存并测试一下效果。/ z% M$ I; ^% P* F0 e2 b/ g

! u+ P, J4 }8 ?[场景设置 ]
' [. Z2 R7 A% q3 \7 `+ w9 ?6 ?+ U# E6 U# J4 d! {  ^
引擎可以自动保存场景中物体的状态,并在下次角色来访时还原,还可以使场景中的对象记住它们所使用的sprite(你可以使用脚本改变)。& ^2 }# G3 J4 H; Q5 D; V
在SceneEdit左边工具栏中找到Properties选项卡,下图中红框勾选的两个选项可以决定是否开启场景自动保存的功能。" [5 I9 q# V0 K
- K$ C. H% |) j% i3 t0 z
1 @* e: A% q" W, o! K

2 v8 _5 n9 N" G& [1 [
. m: r4 S1 r0 u+ c/ n! D注意:保存场景的功能与你场景中对象的名称有关系,所以你的场景中不应该有重名的对象,否则可能出错。
3 G/ L7 F0 U7 a! Q( L
8 [8 J0 k" x6 V; W/ V: U; _& N3 m[场景转换]
  W5 i$ x3 @+ O5 C+ N8 [# B, G3 [( U+ R/ I0 u1 B) _
你的游戏一般不会只有一个场景,使用脚本可以把各个场景连接在一起。我们在步骤7种已经把门做成了一个可以互动的区域实体,按之前所教的,给门添加一个脚本door.script并编辑。8 \+ P9 p( \3 v) S
1 Z: {# B: U. t4 v
( n: h% j( C; h- }2 {
 & u) @" N$ p% ~! ^8 H+ P
我们只需要门在左键点击后能进入下个场景,所以只需要有以下的内容
" N* }& Z" a0 O5 F
  f2 ?- h7 L" G& \! k0 j7 w
$ S5 v! V$ }+ R0 Q( s
#include "scripts\base.inc"
[/table]
"LeftClick"
{
actor.GoToObject(this);
Game.ChangeScene("scenes\menu\menu.scene");
[table=100%,#66ffcc]}

: m9 z, ~1 y' ~1 m$ W. P/ d) o3 y( n5 g- {! q- l0 J  ?
大括号里一共有两句命令,第一句使角色在左键点击门后走到门旁边,第二句Game.ChangeScene("scenes\menu\menu.scene")使场景转换,目标场景由括号里的内容决定,你只需要改成其他文件夹里的场景文件就可以转换到别的场景了。, ]( D- X  D* Q
See the WME demo project for a finished example.6 G9 {0 E: g: K( v
# q  `7 P* D$ w4 ^1 C% u
保存并测试。- g% z9 H& Z7 h  z, }* l7 \  @
. F$ I- |% z; i' u

6 ~7 F2 p. s1 _8 `+ ]这样,你就完成了一个场景的搭建~Congratulations!4 z. b0 }# p; }* _6 B! _

9 n% Z$ o3 K: ^# [+ s* W! E1 X7 J! O; z( o
; r* q8 D) G  {8 b% j
) P) W9 p) f, [5 D  X
, T7 p* E$ Y  b. ]; X

  d/ Z  F6 P: a) S% |+ s3 y/ N搭建场景是使用wme制作游戏耗费时间最多的内容之一,剩下的难点也只有对脚本的理解和运用了吧。
9 k: j+ m7 y+ v' u0 B# _这九个步骤大致按照帮助文档写的,感觉有很多表达不是很好的地方,也有一些问题没有搞明白- -希望大家一起讨论研究下。
! }0 Z+ p: e# k" R
% I) m2 R# m9 w
: N8 r* I! p/ F1 B( G* ?3 t! D下一章是关于sprite的。
5 i! q! p  _% V& o* \2 D+ Y% X* d. B
( V/ l7 [  j( r& L" B
这里要和各位讨论一个问题,就是脚本的教学,之后有很多内容涉及到脚本,帮助文档的也就是放一段代码在那,没有详细的说明。而帮助文档除了关于场景搭建的教学,另一大块内容就是脚本,不过关于脚本并没有什么教学,只是象说明书一样,其中大量的函数更是没办法一个个讲解。有编程基础的人一看就大概明白,不懂编程的人要从头学起。我的想法是没有基础的人找一门语言入门(python、lua,或者你感兴趣的语言),我只学过python,个人感觉找到一本好的教材后(我看的是简明python教程),只需要不长的时间就可以大致了解,只要能写个简单的小程序,知道编程的基本知识,理解wme的脚本就不是问题了。之后大家多交流,我会翻译一些网上的教程,或者做一些demo,希望论坛上有更多有能力的人参与到游戏制作中来~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-18 17:39 | 只看该作者
本人几乎没学过编程,但看了python的源码,感觉这是门简单易懂的语言;1 |. S' J0 q; v. v+ u3 v
看了楼主的WME学习笔记,感觉WME的脚本也不会难到哪儿去,但5 p+ @! H4 R" N' `0 S3 X) T- l' }
看懂是一回事,写起脚本来又是另一回事了……
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2010-9-18 19:29 | 只看该作者
只要了解编程的基本知识, 浏览一下wme脚本提供一堆方法,初步的应用是很简单的。
: `3 q' P4 m8 \( q+ P% Q之后就是不断练习、遇到问题Google之。( N( G( K& y) H
5 S4 D) G9 N# I4 D
不知道有没有必要把文档里脚本的内容拿出来讲- -
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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