- UID
 - 9701
 
- UCC
 -  
 
- 声望
 -  
 
- 好评
 -  
 
- 贡献
 -  
 
- 最后登录
 - 1970-1-1
 
 
 
 
 
 
 | 
 
玩转游戏-制定你自己的游戏规则(简单地形) 
 
 
今天我们要讲的是传说中的浮云。 
传说中的浮云不但具有遮蔽视线的作用,更能当作烟花使用-.- 
关于尘云的基本性质我们就不多加讨论了。 
我们真正的目的是利用尘云来实现一些更为离奇的地形效果。 
 
作为地图中近乎装饰的存在,浮云一直扮演着偷渡蛇头的勾当。 
而我们今天要做的就是让这个蛇头更加的湿搭搭粘忽忽。 
首先我们按照个人喜好完成一张地图,其中有比较大量的尘云存在。 
(具体地图的制作在此不做详细阐述,有需要的同学请自行翻阅相关教程。) 
 
我们将云分为两类: 
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离开了云而速度没有还原的情况发生。 
最后将此函数加载为规则,一张拥有加速和减速云效果的地图就完成了。 
同样也可以制作其他的地图,只要遵循最初对云的命名规范,就可以在无限张地图上运用这样的地形规则。 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |