使用视窗模式来实现更大地图
-
介绍
当你在创益编程平台上创建一个新项目时,舞台的默认大小是 480 × 360。如果您想使用比舞台更大的地图,那么舞台上就无法显示地图的所有部分。你可以使用“视窗”技术来解决这个问题。
使用视窗就像通过电视摄像机观看体育场里的足球比赛。足球场很大,所以摄像机只拍下了其中的一小部分并显示在电视上。随着镜头的转动,我们可以看到体育场的不同部分。
画布大小和视窗大小
在创益编程平台上,你可以使用画布工具来绘制更大的地图,然后仅通过一个窗口(视窗)显示画布的一小部分。
在代码编辑器中,在“编辑”菜单下,你可以找到 4 个相关的输入,供你指定画布大小和视窗大小。例如,我们可以将画布设置为 1000 x 1000,将视窗设置为 500 x 500:

进行这个更改后,切换到造型编辑器,你会注意到一些变化:

- 画布现在更大了,它是一个 1000 x 1000 的正方形。这允许你向游戏地图中添加更多的角色。
- 有一个由虚线组成的较小的500 x 500的正方形,代表当前视窗的位置。它一开始会在画布中心的位置。你可以使用程序积木更改视窗的位置,但要更改其大小只能使用菜单。
- 舞台窗口也是 500 x 500,所以它看起来像正方形而不是长方形。 舞台窗口将始终与视口具有相同的大小,以便它显示当前被视窗框住的画布部分。
覆盖整个画布
如果你选择使用放大的画布,就需要确保整个画布都被覆盖。例如,你可以选择舞台,然后选择某个背景图案,然后切换到“矢量”模式,并放大这个背景图案,直到它覆盖整个画布:

把视窗锁定在某个角色上
因为视窗小于地图(画布)面积,我们需要四处移动视窗才能看到地图的不同部分。最简单的方法是使用下面这个积木将视窗的中心锁定在某个角色上:

将视窗锁定到所选角色后,当你移动那个角色时,视窗就会同时移动。看起来角色似乎没有改变位置,而是背景在移动。当视窗跟随角色滑动到画布的某个边缘时,视窗将不再移动,这时你就会看到角色相对于视窗的移动。

直接移动视窗
当视窗并未被锁定在任何角色上时,你可以直接使用下面这个积木更改它在地图上的位置:

这里的 x 和 y 输入是视窗中心的位置。因此,如果将 x 和 y 设置为 0,则视窗的中心将与地图(即画布)的中心位于同一位置。
获取视窗当前的位置
你可以使用以下 2 个积木来获取地图上视窗中心点的 x 和 y 位置:

例如,当视窗位于地图中心时,两个积木都会报告 0。但是,视窗移动后,这 2 个积木就会报告不同的值。
附加到视窗上
假设你已将视口锁定到角色 A 上面,但你还需要始终显示另一个角色 B。这意味着当角色 A 移动时,视窗也会随之移动,而角色 B 也需要以相同的方式移动。到实现这个效果,你可以使用以下 2 个积木将角色 B 附加到视窗上,或反之将其从视窗上分离出来:

附加到视窗时,你可以指定角色相对于视窗中心的 x 和 y 位置。例如,把一个气球附加到视窗上 x 为 0 和 y 为 100 的位置。这个气球将与视窗一起移动,并始终出现在 x = 0 和 y = 100 的位置:

Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login