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

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

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

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

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

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

两章内容比较少,合在一起。
' x7 {1 q  Z9 t& p7 K9 x) U. H- B, c8 t8 h
: d- q- p) p+ a7 P
6 k7 ~( B: D4 O- K& W0 D( s0 x[层]
1 i3 A2 o0 l! h+ H% A" b% n1 [, \4 F' Q% y2 o
这一章我们将实现多层卷轴(原文parallax scrolling貌似是平行卷轴,个人认为多层卷轴更贴切)的效果,就像你坐车时看窗外,近处的树和远处的山川向后退的速度是不一样的,wme可以通过添加层实现场景分不同部分卷动的效果。在步骤一中我们知道如果场景所用图片尺寸大于游戏窗口,场景就会在必要时卷动,并且场景越大,卷动速度越快,假设你有三个层,分别存放三张场景图片(比如天上的月亮、远处的高山、近处的公路),并且每张图片宽度都不一样,就会分别以不同的速度卷动,实现多层卷动的效果。
3 \: T3 {/ @) [2 A) D  D$ m. F+ N6 T7 L# V
每个场景可以拥有多个层,数量不限。2 Q: X  L4 y  @% s! ^( t

' s, v& O$ L8 g/ T在本章我们将为场景添加一个层作为窗外的天空。& \' N2 e5 B' G- _* j* m

0 f3 O/ H. ?+ a- U6 n+ p天空的图片已经在 “data\tutorial\gfx”文件夹下准备好了,在PM 中为MyScene导入sky.bmp。
' i: S+ S3 M+ H5 E! S# Q
: r' ~( N$ s: P3 b在SceneEdit中打开MyScene.scene。
% f1 P. p" ?$ s6 i 8 Y: i& Q4 h$ w/ S
在Layer栏中点击Add layer按钮添加新的层。
! \% u7 H/ o- {8 R- z# a6 e, u! }& N2 @

6 L6 V3 G$ a: ]9 h3 _- H 9 `8 U  [7 r9 N' q8 T# _# j

/ I9 L! Z4 w. L0 Y3 v7 b5 H0 WSceneEdit会弹出一个窗口填写层的信息(新版本里多出了一个close up选项,我没搞懂是干什么的- -大家研究研究),将名称改为sky,并将尺寸改为800,716。由于长度和窗口长度一样,这个层在水平方向不会卷动,而main层会卷动,就达到了我们想要的效果,而宽度为716,与main层相同,这样在纵方向上该层就会与main层同步卷动。
4 s$ r0 V3 _: E
9 ~, r5 i# P# T. f& p( W& V- w
) ?1 k* t: G) ?- a" h  {% A7 Q% \. L1 K0 S& l
点击OK。使用上下箭头将sky层移至main层上方,层的顺序影响绘制的顺序。- A" N7 k: `6 r- g6 f- r

8 u: x: E: I; [! y2 V5 R3 {* u1 i. ?! U* H: G
0 Q% k- e/ ]7 r3 _
接下来要做的就是添加一个实体来放置天空的图片,如下图选择Add sprite entity,将新建的实体改名为sky并将图像改为之前导入的sky.bmp。
3 t# j. c5 d' m3 A2 ~0 o/ q/ o! z4 v5 Y
注意:新建的层可以添加实体,但只有main层可以添加区域。( |  f- }6 f! U
7 T/ ]6 W; z. m: ~
/ @6 s: D' X+ y/ E5 @( C; T2 `' z
9 m$ S* ^0 v1 n
如下图移动到合适的位置。3 z. P1 J. {1 e& R) M# x. C

$ v& \/ M6 W+ W- g( k) P; y: Q% e. G$ O  F
! q& {. q. g; r" |1 M
保存并测试一下效果。! O4 g! B- s  b" O
5 I3 U# `7 t  S5 x7 Q
[场景设置 ]% t5 i" v9 d9 ~' Q) ]% K
! N; ~8 o( n9 e+ k: W/ c
引擎可以自动保存场景中物体的状态,并在下次角色来访时还原,还可以使场景中的对象记住它们所使用的sprite(你可以使用脚本改变)。5 H7 z$ v, ?6 B3 j) P! L) W
在SceneEdit左边工具栏中找到Properties选项卡,下图中红框勾选的两个选项可以决定是否开启场景自动保存的功能。% \8 W) R# G+ v8 K
" m9 _. z" C: Z0 o/ _: ~0 P& |* k" b
, T* T/ y. J% \2 t
+ Z: ]7 Y% P/ a2 e* x
" k/ x* Y2 m9 X# H- C2 E
注意:保存场景的功能与你场景中对象的名称有关系,所以你的场景中不应该有重名的对象,否则可能出错。# O3 ^' c& N6 \$ W3 I" l

' Z, \* j! k9 p+ a[场景转换]! s$ K, s2 o0 R6 }* l

, d6 Q! H/ V. Y  W你的游戏一般不会只有一个场景,使用脚本可以把各个场景连接在一起。我们在步骤7种已经把门做成了一个可以互动的区域实体,按之前所教的,给门添加一个脚本door.script并编辑。
/ w; L# [0 K0 ?/ V, s
7 ?  A8 y  h% L3 P  A; m/ w# z. y8 y- U) y& A
 
" s2 T8 @0 L, F7 j" t) s我们只需要门在左键点击后能进入下个场景,所以只需要有以下的内容  d) z7 Z1 t4 Q3 C
, x; G9 P. W3 X
  k. a8 H& L  a* W$ y6 f/ N
#include "scripts\base.inc"
[/table]
"LeftClick"
{
actor.GoToObject(this);
Game.ChangeScene("scenes\menu\menu.scene");
[table=100%,#66ffcc]}
! F9 H* p  z9 V0 q7 v1 X

! d! u1 w$ T/ X0 D2 v* ^6 ^/ a) Z大括号里一共有两句命令,第一句使角色在左键点击门后走到门旁边,第二句Game.ChangeScene("scenes\menu\menu.scene")使场景转换,目标场景由括号里的内容决定,你只需要改成其他文件夹里的场景文件就可以转换到别的场景了。+ g5 Y+ J/ W+ r2 L4 B
See the WME demo project for a finished example.) O, J/ }; ]1 G, p, _+ Z

8 Y  I  r! T7 H7 g/ s( [6 R! A保存并测试。% @  h, ~- e7 |0 x1 u1 ^! `/ [+ E

: S; Y( D' \& |8 I6 ~( B0 f
* T3 w, |7 E0 L* ?这样,你就完成了一个场景的搭建~Congratulations!- t6 ?9 k; F4 o& X+ M& {2 V
9 C' O2 }0 s% V
9 K. ^" E! ]* [8 @

) m5 l+ X/ Y3 s5 |' P. O4 p" W% K1 S+ w% t' N& x

* F0 d$ M# G0 u7 |0 F  z: P$ y0 H5 ^% K. [2 M8 l
搭建场景是使用wme制作游戏耗费时间最多的内容之一,剩下的难点也只有对脚本的理解和运用了吧。
  s- E( V: v$ W. K6 e0 H% z这九个步骤大致按照帮助文档写的,感觉有很多表达不是很好的地方,也有一些问题没有搞明白- -希望大家一起讨论研究下。
, `  `3 G- o9 ^# J1 B) v, Z0 r, ^, ?3 l) q! z1 E; X! j
2 L; g! p) x6 k% ?
下一章是关于sprite的。
4 u9 \; m5 G$ t3 n; o2 K  f% q( U4 @8 L8 z3 d; ~
+ r# C9 A0 V2 \9 o/ V9 ~
这里要和各位讨论一个问题,就是脚本的教学,之后有很多内容涉及到脚本,帮助文档的也就是放一段代码在那,没有详细的说明。而帮助文档除了关于场景搭建的教学,另一大块内容就是脚本,不过关于脚本并没有什么教学,只是象说明书一样,其中大量的函数更是没办法一个个讲解。有编程基础的人一看就大概明白,不懂编程的人要从头学起。我的想法是没有基础的人找一门语言入门(python、lua,或者你感兴趣的语言),我只学过python,个人感觉找到一本好的教材后(我看的是简明python教程),只需要不长的时间就可以大致了解,只要能写个简单的小程序,知道编程的基本知识,理解wme的脚本就不是问题了。之后大家多交流,我会翻译一些网上的教程,或者做一些demo,希望论坛上有更多有能力的人参与到游戏制作中来~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-18 17:39 | 只看该作者
本人几乎没学过编程,但看了python的源码,感觉这是门简单易懂的语言;6 a5 U! w, \: w  ]
看了楼主的WME学习笔记,感觉WME的脚本也不会难到哪儿去,但
  v7 X+ Z7 S: I; o$ @( V" N" b4 J看懂是一回事,写起脚本来又是另一回事了……
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2010-9-18 19:29 | 只看该作者
只要了解编程的基本知识, 浏览一下wme脚本提供一堆方法,初步的应用是很简单的。
! l& d1 D7 f6 @# T之后就是不断练习、遇到问题Google之。% x0 g7 N5 W9 I* b- H
( a9 m: q2 Y3 B2 Y# R9 w4 c- J8 g
不知道有没有必要把文档里脚本的内容拿出来讲- -
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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