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

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

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

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

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

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

两章内容比较少,合在一起。/ W% U# h5 ?) A& h
- b( @) e* a, o4 P( U5 [, B0 S

  o2 o1 d; J. H[层]# I6 o$ F! ?( \* X# d

7 b# E( m0 l9 }* H) Z: n9 t  X2 @5 |这一章我们将实现多层卷轴(原文parallax scrolling貌似是平行卷轴,个人认为多层卷轴更贴切)的效果,就像你坐车时看窗外,近处的树和远处的山川向后退的速度是不一样的,wme可以通过添加层实现场景分不同部分卷动的效果。在步骤一中我们知道如果场景所用图片尺寸大于游戏窗口,场景就会在必要时卷动,并且场景越大,卷动速度越快,假设你有三个层,分别存放三张场景图片(比如天上的月亮、远处的高山、近处的公路),并且每张图片宽度都不一样,就会分别以不同的速度卷动,实现多层卷动的效果。
. e# k' _- Q6 L" u3 F2 q
! _% d$ k  T$ j! }* E每个场景可以拥有多个层,数量不限。
$ I& F1 k" R( w3 K) N& s# {7 _) G1 d3 o; Q/ w( J  a. l4 G
在本章我们将为场景添加一个层作为窗外的天空。
! a3 h# s6 F5 P2 A- n  s8 u, }0 T& X* f7 m3 J! s0 h* O$ V3 v# b! z
天空的图片已经在 “data\tutorial\gfx”文件夹下准备好了,在PM 中为MyScene导入sky.bmp。
0 M3 J4 Z' e7 n7 X; O4 e) |1 M$ ]! d% k, x" \. T
在SceneEdit中打开MyScene.scene。
4 ^; f: c( m3 z( v# K$ \ 8 N' W' d( {; X- f1 ~# ~% I
在Layer栏中点击Add layer按钮添加新的层。/ y, G" n- C5 p

2 j  a, w1 a) F! B1 i  j" F, a0 Y) {8 S3 a: |" R5 t% M

  Z$ u3 \4 B- F* a! u; F" k# _; l4 O1 \1 {
SceneEdit会弹出一个窗口填写层的信息(新版本里多出了一个close up选项,我没搞懂是干什么的- -大家研究研究),将名称改为sky,并将尺寸改为800,716。由于长度和窗口长度一样,这个层在水平方向不会卷动,而main层会卷动,就达到了我们想要的效果,而宽度为716,与main层相同,这样在纵方向上该层就会与main层同步卷动。$ h9 h3 f: Y: [: ?9 I7 a  r# y& W1 O
1 `2 N& _/ A2 L( u" }6 Y- N

7 u+ Q5 n1 S. h, a
# J3 r+ Z4 w; v; c. v点击OK。使用上下箭头将sky层移至main层上方,层的顺序影响绘制的顺序。% k$ Y3 `& M' }7 O
/ a+ t2 u! ^7 A" v2 t; \
: d( }) v* g6 M2 j

: m* |# N, y9 o8 f/ v! O+ F接下来要做的就是添加一个实体来放置天空的图片,如下图选择Add sprite entity,将新建的实体改名为sky并将图像改为之前导入的sky.bmp。' J6 ^9 J1 G: K* p2 c
) H" n. M" n) T* n
注意:新建的层可以添加实体,但只有main层可以添加区域。2 ~5 `4 }; j7 E- p' r7 _  m% g

4 O" f) M" t) Q: L+ ^( k8 }
9 ?' S% j; _  B: b3 t; g 5 }5 G& k1 i7 @  V
如下图移动到合适的位置。
% `7 u% p( E" A7 z4 |4 F
( G) w7 n: I0 {! d) f/ `& G" S  j4 _- C  Z. ?; w

# H( N* B# G8 E7 |% f, t保存并测试一下效果。
0 G# ^5 t$ c/ u/ K
, i0 X0 q8 [) n7 Q. X[场景设置 ]- T) |- w1 ?' G3 t& L
1 P8 I8 b" C7 ^# ~# C0 r
引擎可以自动保存场景中物体的状态,并在下次角色来访时还原,还可以使场景中的对象记住它们所使用的sprite(你可以使用脚本改变)。7 s/ Q' j2 w+ O+ N" [; s
在SceneEdit左边工具栏中找到Properties选项卡,下图中红框勾选的两个选项可以决定是否开启场景自动保存的功能。
! D* K6 ^7 U& ]: t% M5 B5 F- N& d; I! J, X9 P

1 j, ]+ o0 V0 P" |
  t. r+ y; l. ]3 S8 e5 @, {
/ z+ y4 `9 B0 X: N% s0 Q注意:保存场景的功能与你场景中对象的名称有关系,所以你的场景中不应该有重名的对象,否则可能出错。, Q! J/ O1 C. g5 P  w4 Y. V

" y  E  D4 `1 C[场景转换]
- i0 c4 X' J+ s. A4 K) h1 e& K% h$ @1 U9 Y' C/ z% W
你的游戏一般不会只有一个场景,使用脚本可以把各个场景连接在一起。我们在步骤7种已经把门做成了一个可以互动的区域实体,按之前所教的,给门添加一个脚本door.script并编辑。
% V( O2 E" s5 H( T1 v6 |+ }* \
% u6 f+ t/ J" A* [* ]5 K8 Q! x" B4 J7 D
 + Q) h0 V# A3 c. E" R
我们只需要门在左键点击后能进入下个场景,所以只需要有以下的内容
4 H1 n6 B3 b" B) O% p, Q7 S7 m2 i  K% U( _) Z' Z) l
/ M) i6 Y: N. A
#include "scripts\base.inc"
[/table]
"LeftClick"
{
actor.GoToObject(this);
Game.ChangeScene("scenes\menu\menu.scene");
[table=100%,#66ffcc]}

/ s! \' o  b0 ^" v0 Z4 j, E0 D7 V7 I" q9 a/ m! k
大括号里一共有两句命令,第一句使角色在左键点击门后走到门旁边,第二句Game.ChangeScene("scenes\menu\menu.scene")使场景转换,目标场景由括号里的内容决定,你只需要改成其他文件夹里的场景文件就可以转换到别的场景了。
' f/ ?7 \5 I! t% e2 s! R: J* z& n5 FSee the WME demo project for a finished example.
& a, K9 {8 q$ q. ?# n: L' e# c1 X$ E2 a1 a3 Z1 b  v  O
保存并测试。
% l- s8 U* c- Y6 @, u! j& s5 A# |) ?! h0 Q( t7 V- u
" _0 H3 E& J5 w$ y) z
这样,你就完成了一个场景的搭建~Congratulations!
: @0 _" X- o# L' p2 J7 N0 q9 q7 S( y

) t0 w9 K- G. ]3 M3 i; t6 ~* A, f; I0 o! S/ ~( y/ w3 S; r
. L- r0 }( f0 S3 n0 g6 }# @

' T0 t5 `) X% g% @7 Y) l  Y, ^3 [$ h* U7 s
搭建场景是使用wme制作游戏耗费时间最多的内容之一,剩下的难点也只有对脚本的理解和运用了吧。. A- b7 \8 ]  r, e* M+ r3 \4 e
这九个步骤大致按照帮助文档写的,感觉有很多表达不是很好的地方,也有一些问题没有搞明白- -希望大家一起讨论研究下。0 ^) ?) V8 p% w, L

8 r' z5 z2 n( E" v/ |  Q& Q4 J2 w. o9 [& |4 p$ {) Z" A  J- i9 P
下一章是关于sprite的。
+ }: b, m; C5 G" [9 D
9 x, N& G4 d/ g* W/ D! u' P0 }
- M  l3 }, w1 [9 x7 a: S" A5 t$ g这里要和各位讨论一个问题,就是脚本的教学,之后有很多内容涉及到脚本,帮助文档的也就是放一段代码在那,没有详细的说明。而帮助文档除了关于场景搭建的教学,另一大块内容就是脚本,不过关于脚本并没有什么教学,只是象说明书一样,其中大量的函数更是没办法一个个讲解。有编程基础的人一看就大概明白,不懂编程的人要从头学起。我的想法是没有基础的人找一门语言入门(python、lua,或者你感兴趣的语言),我只学过python,个人感觉找到一本好的教材后(我看的是简明python教程),只需要不长的时间就可以大致了解,只要能写个简单的小程序,知道编程的基本知识,理解wme的脚本就不是问题了。之后大家多交流,我会翻译一些网上的教程,或者做一些demo,希望论坛上有更多有能力的人参与到游戏制作中来~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-18 17:39 | 只看该作者
本人几乎没学过编程,但看了python的源码,感觉这是门简单易懂的语言;
$ C0 z0 ]1 O: d5 d5 X3 [+ [看了楼主的WME学习笔记,感觉WME的脚本也不会难到哪儿去,但2 i! M  H( G4 H# K
看懂是一回事,写起脚本来又是另一回事了……
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2010-9-18 19:29 | 只看该作者
只要了解编程的基本知识, 浏览一下wme脚本提供一堆方法,初步的应用是很简单的。
0 \; Y7 I( d* D8 s' T) }6 s之后就是不断练习、遇到问题Google之。* @, p" ~' z: S& @

' V- Y  `' {; F2 C不知道有没有必要把文档里脚本的内容拿出来讲- -
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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