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

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

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

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

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

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

两章内容比较少,合在一起。
/ [5 K& f9 T2 \% ?: p8 u
) H' K% Y3 M5 r- `
3 g' {1 L3 z1 a- a, ^$ s- Q[层]
* V0 j' \0 h! g
5 |/ V, ]" [2 T: I这一章我们将实现多层卷轴(原文parallax scrolling貌似是平行卷轴,个人认为多层卷轴更贴切)的效果,就像你坐车时看窗外,近处的树和远处的山川向后退的速度是不一样的,wme可以通过添加层实现场景分不同部分卷动的效果。在步骤一中我们知道如果场景所用图片尺寸大于游戏窗口,场景就会在必要时卷动,并且场景越大,卷动速度越快,假设你有三个层,分别存放三张场景图片(比如天上的月亮、远处的高山、近处的公路),并且每张图片宽度都不一样,就会分别以不同的速度卷动,实现多层卷动的效果。9 l) \/ e- p8 T2 o0 b# H& K5 `

; A3 _  X0 g+ P5 _每个场景可以拥有多个层,数量不限。& M' h9 D1 J  E; F6 D3 q. }0 v

+ ~0 A$ Y/ b1 H5 ^% P在本章我们将为场景添加一个层作为窗外的天空。
* h, G( R) n5 R, O6 o6 U( A- r2 u( t) `) M% c
天空的图片已经在 “data\tutorial\gfx”文件夹下准备好了,在PM 中为MyScene导入sky.bmp。( A% S+ k( N) G1 H6 _, t
7 g+ H1 K7 u" \
在SceneEdit中打开MyScene.scene。
" s6 b$ v# g+ H- Y6 ^2 v) G1 b 
1 _0 C% ^  d9 i. q" Y7 l) d+ C) s在Layer栏中点击Add layer按钮添加新的层。4 E3 G) ]* m/ H+ ^* e; ?

( k% @0 m7 j" ^  A0 c4 m
9 v7 g6 ]" a/ I4 n 8 M1 F; @& W. F) w8 @) [! N) R

! L, X1 U( `. H1 ]/ X" }8 Y1 DSceneEdit会弹出一个窗口填写层的信息(新版本里多出了一个close up选项,我没搞懂是干什么的- -大家研究研究),将名称改为sky,并将尺寸改为800,716。由于长度和窗口长度一样,这个层在水平方向不会卷动,而main层会卷动,就达到了我们想要的效果,而宽度为716,与main层相同,这样在纵方向上该层就会与main层同步卷动。
3 e; V. q8 j. p$ P8 @3 j
3 W5 n2 G+ [* A* \* ^9 x+ V; a4 O
5 l2 a! j# K' O! l2 a
点击OK。使用上下箭头将sky层移至main层上方,层的顺序影响绘制的顺序。
$ W4 _3 H4 r4 j( x4 f0 e4 L
# ]3 }! o" G1 V2 N; I8 S4 b) r4 p
  z% j' f( n; L% N$ r( r8 ]$ r* n+ l* p0 L
接下来要做的就是添加一个实体来放置天空的图片,如下图选择Add sprite entity,将新建的实体改名为sky并将图像改为之前导入的sky.bmp。
4 s; y5 v' S8 ~) p6 s0 x' W) {
3 N) Q' r- }& p注意:新建的层可以添加实体,但只有main层可以添加区域。
. Q% R6 h& F1 S' Q% {4 n3 f) f
6 }& l/ p5 S; _1 y: Y2 F: F
! `/ ]& Z3 a: G) i/ V8 I. x . J; _) u8 d4 G5 d9 T" B3 q
如下图移动到合适的位置。
" `) C0 |$ B5 l: Y/ x3 k6 T
2 F, k9 Y& s. _6 V, G; `% ^/ I9 [0 W& Y4 p

1 c- |4 D7 |& ]* }/ w: N( n保存并测试一下效果。( G$ w* p: m. p& m+ u3 Q
; x0 Y( D, D& K& [% ?
[场景设置 ]# {: o( H4 {. a! s- {# O- f# u/ n

" I! \9 Z' v* H3 ^6 h( t引擎可以自动保存场景中物体的状态,并在下次角色来访时还原,还可以使场景中的对象记住它们所使用的sprite(你可以使用脚本改变)。
( e+ c& X" B: L2 Z7 \( w在SceneEdit左边工具栏中找到Properties选项卡,下图中红框勾选的两个选项可以决定是否开启场景自动保存的功能。3 o! u9 T( ?3 B5 m3 D, {1 N

; a# k# ?0 j/ {4 s, v- W5 }  r' }- c5 S  [$ t

& }6 A, C1 e/ T8 H
8 i& j; Q) U/ |1 S: b注意:保存场景的功能与你场景中对象的名称有关系,所以你的场景中不应该有重名的对象,否则可能出错。
6 G# }5 e; j, V; a6 Z& V+ k! e, P
; Y2 R0 \' L( K) p; y[场景转换]
; X! s( ]) R+ T  ^' H  {9 Z( O( F3 P; |, R8 K( r  |0 ?% g" B5 f
你的游戏一般不会只有一个场景,使用脚本可以把各个场景连接在一起。我们在步骤7种已经把门做成了一个可以互动的区域实体,按之前所教的,给门添加一个脚本door.script并编辑。
# D- x. B! ^: u# U& Q) d3 X3 H, }- T& u3 Y# O+ @2 p
- z1 Y* j' t: G4 a2 P
 
' u4 u! O; l5 ~1 i& M我们只需要门在左键点击后能进入下个场景,所以只需要有以下的内容
6 ^/ ~5 e/ Y  h+ i$ t6 z- r8 E
  `& \6 @0 c- J5 w( b$ e, n5 y7 G1 `) H
#include "scripts\base.inc"
[/table]
"LeftClick"
{
actor.GoToObject(this);
Game.ChangeScene("scenes\menu\menu.scene");
[table=100%,#66ffcc]}
' U: y) O8 ~+ n* g* K9 J0 {
) B0 L5 \9 q: K* R8 R) r
大括号里一共有两句命令,第一句使角色在左键点击门后走到门旁边,第二句Game.ChangeScene("scenes\menu\menu.scene")使场景转换,目标场景由括号里的内容决定,你只需要改成其他文件夹里的场景文件就可以转换到别的场景了。" ~) ]! T" J( g0 m
See the WME demo project for a finished example.4 F7 O* w- a/ c& ]
: P) [! ^0 f% W1 X; i
保存并测试。
9 G' c. @8 N. ?, c7 Q8 J# h9 G" X: o% R* C, L$ o

! `6 T1 x; h" `  s" T; |9 B" s' z这样,你就完成了一个场景的搭建~Congratulations!
2 W/ j3 U" U6 {# g# d7 M  Q) k' m0 ~

: ~. `$ f5 _, |# p/ f
6 n5 i4 r# D8 R$ K
1 V5 n2 B4 @/ q" K  |. C1 B) z) E% S+ I7 `8 ?- n$ X. Z5 U
6 z, o  n; S4 [  ?0 M9 ^# t
搭建场景是使用wme制作游戏耗费时间最多的内容之一,剩下的难点也只有对脚本的理解和运用了吧。
  @! D$ T. n$ i* T' n$ \这九个步骤大致按照帮助文档写的,感觉有很多表达不是很好的地方,也有一些问题没有搞明白- -希望大家一起讨论研究下。
) `+ h, U+ ^+ n( i
( n- ]# C! i  ?& }
2 Y9 Z5 B" a9 B: C下一章是关于sprite的。
0 d( `1 k9 z1 s7 p8 A- H) I0 Z( }' ^& i( O$ g" u2 K+ y- T
0 @5 D% w1 l' L, \# Y
这里要和各位讨论一个问题,就是脚本的教学,之后有很多内容涉及到脚本,帮助文档的也就是放一段代码在那,没有详细的说明。而帮助文档除了关于场景搭建的教学,另一大块内容就是脚本,不过关于脚本并没有什么教学,只是象说明书一样,其中大量的函数更是没办法一个个讲解。有编程基础的人一看就大概明白,不懂编程的人要从头学起。我的想法是没有基础的人找一门语言入门(python、lua,或者你感兴趣的语言),我只学过python,个人感觉找到一本好的教材后(我看的是简明python教程),只需要不长的时间就可以大致了解,只要能写个简单的小程序,知道编程的基本知识,理解wme的脚本就不是问题了。之后大家多交流,我会翻译一些网上的教程,或者做一些demo,希望论坛上有更多有能力的人参与到游戏制作中来~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-9-18 17:39 | 只看该作者
本人几乎没学过编程,但看了python的源码,感觉这是门简单易懂的语言;1 z  y! {' R3 E8 l
看了楼主的WME学习笔记,感觉WME的脚本也不会难到哪儿去,但
! S; z6 z! b( C% k看懂是一回事,写起脚本来又是另一回事了……
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2010-9-18 19:29 | 只看该作者
只要了解编程的基本知识, 浏览一下wme脚本提供一堆方法,初步的应用是很简单的。
1 z3 e/ }9 z8 u5 C' T! f* u& y之后就是不断练习、遇到问题Google之。
. D# \6 p/ S; w$ N/ k5 u
: A) I. U) x: j; Y不知道有没有必要把文档里脚本的内容拿出来讲- -
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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