泰坦帝国

 找回密码
 加入帝国

QQ登录

只需一步,快速开始

查看: 3392|回复: 2

[教程文章] [教程]玩转游戏-制定你自己的游戏规则(简单地形)

[复制链接]
发表于 2009-8-16 19:33:50 | 显示全部楼层 |阅读模式
[教程]玩转游戏-制定你自己的游戏规则(简单地形)
玩转游戏-制定你自己的游戏规则(简单地形)


今天我们要讲的是传说中的浮云。
传说中的浮云不但具有遮蔽视线的作用,更能当作烟花使用-.-
关于尘云的基本性质我们就不多加讨论了。
我们真正的目的是利用尘云来实现一些更为离奇的地形效果。

作为地图中近乎装饰的存在,浮云一直扮演着偷渡蛇头的勾当。
而我们今天要做的就是让这个蛇头更加的湿搭搭粘忽忽。
首先我们按照个人喜好完成一张地图,其中有比较大量的尘云存在。
(具体地图的制作在此不做详细阐述,有需要的同学请自行翻阅相关教程。)

我们将云分为两类:
1.能够加快其中ship移动速度的云
2.能够减缓其中ship移动速度的云

分别命名为:
1.dustcloud_speedup
2.dustcloud_speeddown

同时,我们需要对这两种云做一些视觉上的区分。
我们将能够提高速度的云设置为红色,将能够降低速度的云设置为绿色。

最重要就是相关规则的书写,我们将死亡竞赛的相关规则拓展成一种新的规则,名称为:"地形demo"。
首先需要有能够承载这些在云中ship的集合
我们做如下处理:

function initlizeTerrain()
    SobGroup_Create("InCloudSpeedUpGroup")  --创建组InCloudSpeedUpGroup
    SobGroup_Create("InCloudSpeedDownGroup")  --创建组InCloudSpeedDownGroup
end

将所需要做的工作写成一个函数,在规则OnInit时进行调用,能够使得整体代码看上去更加的简洁。
当准备工作做完后,我们就需要开始实现真正能够使得云能拥有其相应特性的代码了。

function terrain()
    local playerIndex = 0
    local playerCount = Universe_PlayerCount()
    while (playerIndex < playerCount) do   
        if (Player_IsAlive(playerIndex) == 1) then
            SobGroup_SetSpeed("Player_Ships"..playerIndex, 1)  --重置玩家速度
            SobGroup_Clear("InCloudSpeedUpGroup")  --清空组InCloudSpeedUpGroup
            SobGroup_Clear("InCloudSpeedDownGroup")  --清空组InCloudSpeedDownGroup
            SobGroup_GetSquadronsInsideDustCloud("InCloudSpeedUpGroup", "dustcloud_speedup", playerIndex)  --汇总云dustcloud_speedup内隶属于玩家playerIndex的单位
            SobGroup_GetSquadronsInsideDustCloud("InCloudSpeedDownGroup", "dustcloud_speeddown", playerIndex)  --汇总云dustcloud_speeddown内隶属于玩家playerIndex的单位
            if(SobGroup_Count("InCloudSpeedUpGroup")>0)then
                SobGroup_SetSpeed("InCloudSpeedUpGroup", 1.5)  --设置加速
            end
            if(SobGroup_Count("InCloudSpeedDownGroup")>0)then
                SobGroup_SetSpeed("InCloudSpeedDownGroup", 0.5)  --设置减速
            end
        end
        playerIndex = playerIndex + 1
    end
end

通过函数SobGroup_GetSquadronsInsideDustCloud,我们将云内的ship实时的汇总进我们最先创建的两个组内,并使用SobGroup_SetSpeed函数对其进行速度的更改。
当然,最开始的时候不要忘了把所有ship的速度重置为1。否则会出现ship离开了云而速度没有还原的情况发生。
最后将此函数加载为规则,一张拥有加速和减速云效果的地图就完成了。
同样也可以制作其他的地图,只要遵循最初对云的命名规范,就可以在无限张地图上运用这样的地形规则。

Data.rar

10.75 KB, 下载次数: 1396

发表于 2010-8-9 22:05:01 | 显示全部楼层
你的帖子我欣赏

评分

参与人数 1声望 -8 收起 理由
先祖突击队 -8 难道不知道什么叫挖坟么?

查看全部评分

发表于 2012-1-14 20:01:57 | 显示全部楼层
很有点儿意思,原来宇宙中也有上坡慢下坡快呀
您需要登录后才可以回帖 登录 | 加入帝国

本版积分规则

小黑屋|手机版|Archiver|泰坦帝国

GMT+8, 2023-6-1 13:41 , Processed in 0.090358 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.4 Designed by 999test

© 2001-2013 Comsenz Inc.

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