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

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

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

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

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

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

两章内容比较少,合在一起。" e' h# E$ Q6 U; j3 o3 m1 m6 p. b
/ _# t. h, G' h  [
+ f% {/ W4 s9 L: R
[层]: w6 A: X& I, h

+ M4 @  x( ^# D0 N这一章我们将实现多层卷轴(原文parallax scrolling貌似是平行卷轴,个人认为多层卷轴更贴切)的效果,就像你坐车时看窗外,近处的树和远处的山川向后退的速度是不一样的,wme可以通过添加层实现场景分不同部分卷动的效果。在步骤一中我们知道如果场景所用图片尺寸大于游戏窗口,场景就会在必要时卷动,并且场景越大,卷动速度越快,假设你有三个层,分别存放三张场景图片(比如天上的月亮、远处的高山、近处的公路),并且每张图片宽度都不一样,就会分别以不同的速度卷动,实现多层卷动的效果。# H3 y6 a, ]0 k0 n! B
% e8 _& z+ h6 `) M" N0 K! X7 X
每个场景可以拥有多个层,数量不限。
9 ^, S' R3 B' V# o$ M$ c' \2 G+ p3 w+ K; n* t1 t  T# v( N; ]
在本章我们将为场景添加一个层作为窗外的天空。
5 O$ i& y5 F9 T( n7 `7 z
7 T5 v' C5 J' z1 J1 t4 r- c天空的图片已经在 “data\tutorial\gfx”文件夹下准备好了,在PM 中为MyScene导入sky.bmp。. I8 Z; s4 h6 c7 T; r; \: f

2 a  Z% f8 q  d3 Y( r在SceneEdit中打开MyScene.scene。
1 L3 h$ f5 w) P3 U' B% u ( ?2 ?6 k, Z/ F: h# d5 K4 r
在Layer栏中点击Add layer按钮添加新的层。
* o# Y& b/ z; v# ~- z; W
. P2 Y) }; i% W
4 q7 \, N/ z+ h3 p) |2 l1 Z' B
) ?- o8 P0 j; c
0 v, Z; o) J/ M4 ^% @0 k1 }SceneEdit会弹出一个窗口填写层的信息(新版本里多出了一个close up选项,我没搞懂是干什么的- -大家研究研究),将名称改为sky,并将尺寸改为800,716。由于长度和窗口长度一样,这个层在水平方向不会卷动,而main层会卷动,就达到了我们想要的效果,而宽度为716,与main层相同,这样在纵方向上该层就会与main层同步卷动。
' O* y9 [2 s9 v! h5 G/ q: `2 Y) r' D; z
+ S/ U2 c& t3 I- W
' @$ @) u3 o2 J7 o3 X3 }. ^
点击OK。使用上下箭头将sky层移至main层上方,层的顺序影响绘制的顺序。! Y$ R3 q& a  p1 A, G5 _2 g
3 R9 N- V  a( Z

) }3 ?: c$ N! D
: }! z5 Z) O5 b' d" N- d; M$ Y$ y接下来要做的就是添加一个实体来放置天空的图片,如下图选择Add sprite entity,将新建的实体改名为sky并将图像改为之前导入的sky.bmp。
! B+ t/ r! v" o! G# h. q# X0 A) l( {- z  h5 f. y! l3 f
注意:新建的层可以添加实体,但只有main层可以添加区域。
# [5 {& A' Y/ a$ z9 o5 I
. s* u- H& p+ ?! f1 N+ L! T
( f6 C& G# ^/ R0 Y
; ^& F5 r& K8 T9 U) a如下图移动到合适的位置。( n% `! z7 a% L' V7 }

6 j" x! s. w  H% U; Q* a2 n$ Y/ C6 W4 q$ F, Y' p* N
1 T  T# Q: R. h8 I0 T; D
保存并测试一下效果。
0 Q5 q0 |0 j. E, T- E  F! q: q6 N
[场景设置 ]
  ^% ^; b/ D( n* j- H3 I
" |! s. i% r, Y! x4 B! g引擎可以自动保存场景中物体的状态,并在下次角色来访时还原,还可以使场景中的对象记住它们所使用的sprite(你可以使用脚本改变)。
( a6 n* T9 x9 e( N: I( o在SceneEdit左边工具栏中找到Properties选项卡,下图中红框勾选的两个选项可以决定是否开启场景自动保存的功能。
9 Y5 e, r, W2 ?3 M+ n# c
; Z- r3 [) x& a7 z& O6 q- N, c) |9 H4 R* L
$ j8 [- M  s* E  y0 T
7 K% {" t3 J2 p* v" L% D6 _
注意:保存场景的功能与你场景中对象的名称有关系,所以你的场景中不应该有重名的对象,否则可能出错。
$ v, _& K. @* e0 M, O( b
2 L9 d$ D2 U4 ~+ m' G[场景转换]
- s& G! h- A; m# z/ j
6 R* P- C* k  ?2 E( ~2 m你的游戏一般不会只有一个场景,使用脚本可以把各个场景连接在一起。我们在步骤7种已经把门做成了一个可以互动的区域实体,按之前所教的,给门添加一个脚本door.script并编辑。
3 k& d  \- ^& Q0 h; Q
- K$ _8 A: t7 U( T+ O( G; i, ?
6 b1 Q6 S, _* f0 C5 a: ?6 Z) ] 
9 n0 T# u& z7 L0 n# Y9 K0 }我们只需要门在左键点击后能进入下个场景,所以只需要有以下的内容1 a! l0 D( g! Y5 D6 v+ C9 N& h& L
0 _+ B" y& W6 \/ \' n# D
+ G# j2 l- [  {4 v
#include "scripts\base.inc"
[/table]
"LeftClick"
{
actor.GoToObject(this);
Game.ChangeScene("scenes\menu\menu.scene");
[table=100%,#66ffcc]}
& e4 x0 W3 ~+ |8 {. F

' Q; j* E7 b- @+ }& ?大括号里一共有两句命令,第一句使角色在左键点击门后走到门旁边,第二句Game.ChangeScene("scenes\menu\menu.scene")使场景转换,目标场景由括号里的内容决定,你只需要改成其他文件夹里的场景文件就可以转换到别的场景了。- Q* S3 u% l8 `" q
See the WME demo project for a finished example.
- B% S  j8 U! ^0 B
5 O) N( w7 w- D$ H) j4 F' n& F保存并测试。9 Z3 I1 s8 ]" |+ a& o: o* B6 t7 C. E

) m% |$ K- R2 {0 O, S. N) v5 ~- D+ ^
这样,你就完成了一个场景的搭建~Congratulations!4 v; U! k, R2 E9 N/ {* A% r

; g% s5 C: y$ ?# ^! V! A; |
" n# E9 a% |+ ~* d. I; ^+ M2 A" u# t& z" Q
, m! X4 {( P) @  k7 k8 P

  }( B0 C' Q/ W5 Y- R3 R/ @( M6 d" R6 [3 @
搭建场景是使用wme制作游戏耗费时间最多的内容之一,剩下的难点也只有对脚本的理解和运用了吧。
2 ^  }9 P1 R# P. I这九个步骤大致按照帮助文档写的,感觉有很多表达不是很好的地方,也有一些问题没有搞明白- -希望大家一起讨论研究下。
& S# ^. I$ ~1 p0 G5 P* V' K0 e9 V8 e6 G4 O
2 b5 D: _* I1 G1 h1 C$ n
下一章是关于sprite的。7 j7 V7 Q# n0 ^4 S4 w! _
7 i# S$ C2 k$ O$ b

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

使用道具 举报

沙发
发表于 2010-9-18 17:39 | 只看该作者
本人几乎没学过编程,但看了python的源码,感觉这是门简单易懂的语言;0 I9 ^4 G5 H( \; r, A9 A: _  L
看了楼主的WME学习笔记,感觉WME的脚本也不会难到哪儿去,但
" H" W) z# u+ c看懂是一回事,写起脚本来又是另一回事了……
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2010-9-18 19:29 | 只看该作者
只要了解编程的基本知识, 浏览一下wme脚本提供一堆方法,初步的应用是很简单的。
' J3 Z1 [6 U) y& x. c之后就是不断练习、遇到问题Google之。8 `; d% u% A0 o' d$ u
6 W4 k' ?: V# n3 w$ [
不知道有没有必要把文档里脚本的内容拿出来讲- -
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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