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

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

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

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

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

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

两章内容比较少,合在一起。8 \5 s* H; l* A8 e: Z: G

+ Q! b; [! ?; s0 ~' w7 W! I3 e, i$ d( j0 [2 ~4 N  [. C3 a8 t
[层]
9 x7 @" u$ {/ K) a, l$ H$ ^2 d- R. F
这一章我们将实现多层卷轴(原文parallax scrolling貌似是平行卷轴,个人认为多层卷轴更贴切)的效果,就像你坐车时看窗外,近处的树和远处的山川向后退的速度是不一样的,wme可以通过添加层实现场景分不同部分卷动的效果。在步骤一中我们知道如果场景所用图片尺寸大于游戏窗口,场景就会在必要时卷动,并且场景越大,卷动速度越快,假设你有三个层,分别存放三张场景图片(比如天上的月亮、远处的高山、近处的公路),并且每张图片宽度都不一样,就会分别以不同的速度卷动,实现多层卷动的效果。1 ^6 {6 T4 L2 f! U

, R& G6 g0 x6 a- \每个场景可以拥有多个层,数量不限。
; O# Y' }7 u6 k* q1 }( w
5 ~6 b5 P3 L& O4 \3 `& R7 w! V在本章我们将为场景添加一个层作为窗外的天空。9 g4 `) c6 o7 U3 {9 Z
* [7 U$ t7 H# A6 x
天空的图片已经在 “data\tutorial\gfx”文件夹下准备好了,在PM 中为MyScene导入sky.bmp。
0 i5 w1 B3 `: x% E. O
$ k  T6 c) b. h. ^在SceneEdit中打开MyScene.scene。
5 N) A2 k0 M1 V8 h6 u8 }, T- v2 [ 
/ ^) i4 p# z% }! R, @' |在Layer栏中点击Add layer按钮添加新的层。) ^4 ^9 U) o- m; i5 [9 R
7 P7 d7 }$ a" L

& x3 H: }3 s8 B# m% o$ D3 f) T9 V 8 ~5 t/ V$ l% i9 E8 C3 W5 e3 \
3 C0 k! N! H1 t0 _' V; v/ Z$ m
SceneEdit会弹出一个窗口填写层的信息(新版本里多出了一个close up选项,我没搞懂是干什么的- -大家研究研究),将名称改为sky,并将尺寸改为800,716。由于长度和窗口长度一样,这个层在水平方向不会卷动,而main层会卷动,就达到了我们想要的效果,而宽度为716,与main层相同,这样在纵方向上该层就会与main层同步卷动。
* E2 L5 z. V+ K- D# e7 U/ M# l3 ]6 z4 M" B! k* _3 K) n
, n( f2 s% [2 M2 b2 i3 X% R

7 q. M  u. x% }7 L2 z8 E点击OK。使用上下箭头将sky层移至main层上方,层的顺序影响绘制的顺序。
  I1 {7 @' k8 P& Z$ a6 z
7 n  i6 Z) J6 O4 @3 j
" I+ h/ ~  E) q. Y3 G
& a" T( r: Q# l8 e接下来要做的就是添加一个实体来放置天空的图片,如下图选择Add sprite entity,将新建的实体改名为sky并将图像改为之前导入的sky.bmp。/ e: j+ T% v) p2 K
( L7 g4 h9 h; O" L1 f
注意:新建的层可以添加实体,但只有main层可以添加区域。5 }! U. X6 }8 m
4 v7 ]" `+ U! w. G
3 t" O6 V' G: J( d0 a4 G: r

: _, ?) U: I" v% a! o% \如下图移动到合适的位置。4 p; L3 B" W$ u. J6 @
0 z- L& _# [$ I; T7 V( S
' F/ N; V6 x. ]  E1 F7 t
8 F1 j' v6 K4 @2 }' x$ S1 J0 Z& z4 ?; J
保存并测试一下效果。* ^+ r" l3 o5 T) \. o
% f# t0 h. u# c/ Y. x) C5 f
[场景设置 ]
" m4 z4 e- [; n& i) I
  E( r& O) Y" D- ]; A. V; y# F引擎可以自动保存场景中物体的状态,并在下次角色来访时还原,还可以使场景中的对象记住它们所使用的sprite(你可以使用脚本改变)。2 F0 Z- x0 F! P& G+ ]$ k
在SceneEdit左边工具栏中找到Properties选项卡,下图中红框勾选的两个选项可以决定是否开启场景自动保存的功能。7 E  p$ y4 Y! m( c/ W7 F

$ u  U, G: C' ^5 J6 q2 V; j. ^4 J  ]  r$ }/ N: |9 w) V

/ d: y) E, Z8 P
: G6 q# f; B$ a$ K9 v$ c0 l. i6 C/ n注意:保存场景的功能与你场景中对象的名称有关系,所以你的场景中不应该有重名的对象,否则可能出错。
1 d+ e- P9 n! ~' i0 K+ y . q* [0 z' Q* b: T0 T# C; H) _
[场景转换]; A3 X( L) F; j7 a, P
, B9 ?4 w& X$ N6 {
你的游戏一般不会只有一个场景,使用脚本可以把各个场景连接在一起。我们在步骤7种已经把门做成了一个可以互动的区域实体,按之前所教的,给门添加一个脚本door.script并编辑。4 C0 t, R4 Y) w1 }$ k" A7 H

) z. ~! N4 Q# ~: o: c/ v& V; Q" t( a* y; k3 m' U. I  o% g* k
 
) o5 N4 g0 J* K& D4 g5 d  z; V我们只需要门在左键点击后能进入下个场景,所以只需要有以下的内容
/ T" e1 H3 N6 Q, J5 U8 u6 ^- E) b0 o5 [. D

" B% j. K. K- M0 v+ m% ^# b
#include "scripts\base.inc"
[/table]
"LeftClick"
{
actor.GoToObject(this);
Game.ChangeScene("scenes\menu\menu.scene");
[table=100%,#66ffcc]}
' T/ g7 n* S% |6 b& d( a  B+ u
* H" q& i* w) E0 O$ N# |8 w
大括号里一共有两句命令,第一句使角色在左键点击门后走到门旁边,第二句Game.ChangeScene("scenes\menu\menu.scene")使场景转换,目标场景由括号里的内容决定,你只需要改成其他文件夹里的场景文件就可以转换到别的场景了。+ c! U& I/ {( D# N
See the WME demo project for a finished example.5 [! }7 A( Y0 ?

2 S4 W& b& w- K% R6 g: d保存并测试。
; ?4 o3 B' {, ?
) G4 q# N  {6 z: E9 v% {7 n0 w7 ]2 V% y$ J
这样,你就完成了一个场景的搭建~Congratulations!( T7 ~! B8 ~" g
0 ~% b1 l3 g' x4 f6 {

, X5 G0 Z. K- E$ K) H- Z# ~& P, p1 _) d* y! Q
6 A% ]4 |2 t; ^. x

3 c3 b2 }7 t+ \  N+ G- Y9 Q8 j  p* W  s5 Y8 j
搭建场景是使用wme制作游戏耗费时间最多的内容之一,剩下的难点也只有对脚本的理解和运用了吧。5 z( v$ S2 `5 m( D/ _; l
这九个步骤大致按照帮助文档写的,感觉有很多表达不是很好的地方,也有一些问题没有搞明白- -希望大家一起讨论研究下。2 o* v0 A3 `% e& ^) K
$ m3 j7 m$ s( N1 l1 l
% M8 G, ~8 Q: V7 h
下一章是关于sprite的。  W1 T& @" i; c" t
: g5 t$ N* Q2 @  x

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

使用道具 举报

沙发
发表于 2010-9-18 17:39 | 只看该作者
本人几乎没学过编程,但看了python的源码,感觉这是门简单易懂的语言;( Q& U  w5 _. u3 ^
看了楼主的WME学习笔记,感觉WME的脚本也不会难到哪儿去,但. x$ i( k; l7 o* s; p
看懂是一回事,写起脚本来又是另一回事了……
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2010-9-18 19:29 | 只看该作者
只要了解编程的基本知识, 浏览一下wme脚本提供一堆方法,初步的应用是很简单的。
) F* a  D: T+ t: n4 s5 G之后就是不断练习、遇到问题Google之。
$ k6 ~# F" q$ i& X* _1 A' v$ y* }0 d% Z
不知道有没有必要把文档里脚本的内容拿出来讲- -
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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