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

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

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

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

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

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

两章内容比较少,合在一起。
. {! |( j. a4 k$ H8 k
0 S, T& Y/ a; q4 @) w0 a4 a8 X! R( g. h# _" m9 K
[层]0 V7 r2 ?2 n- W- X" E* T3 Q

: }8 A  S5 D4 {这一章我们将实现多层卷轴(原文parallax scrolling貌似是平行卷轴,个人认为多层卷轴更贴切)的效果,就像你坐车时看窗外,近处的树和远处的山川向后退的速度是不一样的,wme可以通过添加层实现场景分不同部分卷动的效果。在步骤一中我们知道如果场景所用图片尺寸大于游戏窗口,场景就会在必要时卷动,并且场景越大,卷动速度越快,假设你有三个层,分别存放三张场景图片(比如天上的月亮、远处的高山、近处的公路),并且每张图片宽度都不一样,就会分别以不同的速度卷动,实现多层卷动的效果。5 G5 U  x3 d7 E# D$ o! j: M  N6 u
0 G, e! k. c! _. U+ l* y
每个场景可以拥有多个层,数量不限。6 {) ]! l" u4 {  w
1 O0 V, S- T1 H: d' |
在本章我们将为场景添加一个层作为窗外的天空。
6 f+ }  M3 ^1 S; N2 G8 G2 S6 q7 ~1 s" H) {6 r' r
天空的图片已经在 “data\tutorial\gfx”文件夹下准备好了,在PM 中为MyScene导入sky.bmp。5 Z* y5 p# f' g# ]% W
! f5 X+ O0 S' @* o* I$ Z& X
在SceneEdit中打开MyScene.scene。
: g" P- w4 d0 _" R2 w! P 
, `2 K2 \- t; Z在Layer栏中点击Add layer按钮添加新的层。/ y# I8 U1 f0 r: }+ `6 o. \
% @0 s, P# p8 ?# v
: B3 u+ W3 g1 Z; |* [2 l1 E
/ f2 g' f; Y# g9 U7 i7 U

( z- }- {/ Q7 F: m# i, `SceneEdit会弹出一个窗口填写层的信息(新版本里多出了一个close up选项,我没搞懂是干什么的- -大家研究研究),将名称改为sky,并将尺寸改为800,716。由于长度和窗口长度一样,这个层在水平方向不会卷动,而main层会卷动,就达到了我们想要的效果,而宽度为716,与main层相同,这样在纵方向上该层就会与main层同步卷动。
1 `! L2 B+ ~/ w0 J- L* V: c: g7 O% ]) ?- T: C2 \9 g

0 D# F, E  n4 Q$ [8 A7 G: ?8 F4 C! {. [- K: {* [
点击OK。使用上下箭头将sky层移至main层上方,层的顺序影响绘制的顺序。! n9 w. r4 P( k, q) G
* B& `1 p& Z5 J) v
- N' O2 T( w4 F$ c9 v

% k+ a6 w% _! r* E! v+ d6 e3 G接下来要做的就是添加一个实体来放置天空的图片,如下图选择Add sprite entity,将新建的实体改名为sky并将图像改为之前导入的sky.bmp。
, y/ J0 F2 `! M% R& P
  D8 v5 m  |7 @" o  E0 q1 O注意:新建的层可以添加实体,但只有main层可以添加区域。8 k7 w/ z  [0 j& {, G, |# J
) [9 `, _  N' t4 v+ c+ M
2 ]- B' z& e; I6 P6 X. e9 l
* V8 ?9 y4 p% \
如下图移动到合适的位置。* D, z/ c& W1 A( P3 Z3 e
- c! ^) E+ @5 e# U4 e

+ l5 s5 ^- x& W: p1 S  O   T# V' L. S* i: b
保存并测试一下效果。4 H8 F7 p8 R: B, |

% }4 R  P% {* K9 [& F8 h: N/ ?[场景设置 ]6 j; g8 V& r/ c  e# x& l5 H, @
4 Y6 \4 i8 i" g8 y
引擎可以自动保存场景中物体的状态,并在下次角色来访时还原,还可以使场景中的对象记住它们所使用的sprite(你可以使用脚本改变)。
% w5 @  d' k. b5 S在SceneEdit左边工具栏中找到Properties选项卡,下图中红框勾选的两个选项可以决定是否开启场景自动保存的功能。$ C+ @7 b" D6 r% ]- X6 d1 N6 B

; ]7 v, R" r" C: b( S) n7 K0 \( J8 Z3 R3 L8 w$ [2 q

9 R: ?% Q( Q6 g/ Y1 P+ l9 F
, G3 l7 m# R3 F% K6 L注意:保存场景的功能与你场景中对象的名称有关系,所以你的场景中不应该有重名的对象,否则可能出错。7 ?. I' ~4 l) Y. L0 n

% Y1 d9 p4 K- _/ _! w* W+ P# M6 d[场景转换]9 `! k6 t! k3 r3 M# z
! c: P' `: o3 G2 G& b+ g  A
你的游戏一般不会只有一个场景,使用脚本可以把各个场景连接在一起。我们在步骤7种已经把门做成了一个可以互动的区域实体,按之前所教的,给门添加一个脚本door.script并编辑。
3 d( i! O, h' O/ ^* v" f9 K1 Y
) E/ W, \% v" Q* W' q! Q- H" o. E/ ^4 f5 e: u0 A1 b$ ]
 
; |+ z+ _$ r, |7 L9 s我们只需要门在左键点击后能进入下个场景,所以只需要有以下的内容
9 K7 E5 q+ F8 A% s  ~6 Q
. ?/ y% _1 ~4 [; d8 F
4 _6 i- I% w& C
#include "scripts\base.inc"
[/table]
"LeftClick"
{
actor.GoToObject(this);
Game.ChangeScene("scenes\menu\menu.scene");
[table=100%,#66ffcc]}

) j6 {5 e+ ^% {9 s. S- x& ]
& w/ E- E$ {4 v0 x, _: t大括号里一共有两句命令,第一句使角色在左键点击门后走到门旁边,第二句Game.ChangeScene("scenes\menu\menu.scene")使场景转换,目标场景由括号里的内容决定,你只需要改成其他文件夹里的场景文件就可以转换到别的场景了。6 O- E0 G& J4 B+ ]' t
See the WME demo project for a finished example.7 @4 r5 R, i9 |

, m: [9 q" ^& D* N* P5 g保存并测试。
6 J; ~& N0 N" a9 B
' y: T, r# i* B" u6 g, ]! s/ B& s- `, S) ?- T% b4 I
这样,你就完成了一个场景的搭建~Congratulations!
6 u; w( A$ J4 O$ o, [4 S9 X+ y# E4 b" ]% p$ E5 w( c2 l" T

, c5 c1 n& I5 N$ _6 I, @: Y  ^% r" H( v2 C" f$ {$ R

- A# O2 M& v% r4 M; G; m8 ]% M
/ ^/ k6 D( R& B7 b! L. D) R$ T# d$ ^$ M2 a" I
搭建场景是使用wme制作游戏耗费时间最多的内容之一,剩下的难点也只有对脚本的理解和运用了吧。
0 D2 E  i: E( f0 G0 Y% e* B这九个步骤大致按照帮助文档写的,感觉有很多表达不是很好的地方,也有一些问题没有搞明白- -希望大家一起讨论研究下。7 i" }% W; y  U- Q( w

! w( S6 D2 X0 B
' `- `2 k: N( c/ p+ C# B, n( d下一章是关于sprite的。9 P% p/ W* I5 U$ j  \
  n. r3 W1 h5 _: }- L

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

使用道具 举报

沙发
发表于 2010-9-18 17:39 | 只看该作者
本人几乎没学过编程,但看了python的源码,感觉这是门简单易懂的语言;7 B( L+ {9 t. u0 w& c6 H% i
看了楼主的WME学习笔记,感觉WME的脚本也不会难到哪儿去,但0 a( t  E  {, K% _- S9 n4 g0 P
看懂是一回事,写起脚本来又是另一回事了……
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2010-9-18 19:29 | 只看该作者
只要了解编程的基本知识, 浏览一下wme脚本提供一堆方法,初步的应用是很简单的。$ P9 K+ u* D3 R/ m7 f
之后就是不断练习、遇到问题Google之。
) r$ k6 `0 u3 {# ]+ r& u4 b
4 K  s+ X3 Y3 U' d/ k8 b$ w, x不知道有没有必要把文档里脚本的内容拿出来讲- -
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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