screeps所遇到的難題

2022-05-13 20:24:57 字數 3542 閱讀 5534

首先記錄一下遇見的問題:

1.使不同的小兵分別移動到不同的目的地——已解決,sources陣列改下標就好。

每個mode中的**中,以roleupgrader教程**為例:

1

var roleupgrader = creep **/4

run: function(creep) 10}

11else15}

16}17};

1819 module.exports = roleupgrader;

2.使它們自動補充兵力——已解決,照著教程按著自己兵的名字進行修改

以我修改的教程**為例,複製第15~23行,然後根據自己命名修改,後面24~32,33~41,44~51,都是根據這樣的原理修改,會暫用一點cpu,但考慮先跑起來,以後再來提高效率:

1

var roleharvester = require('

role.builder');

2var roleupgrader = require('

role.upgrader');

3var rolebuilder = require('

role.upgrader');

4var rolebiger = require('

role.biger')

56 module.exports.loop =function () 13}

1415

var harvesters = _.filter(game.creeps, (creep) => creep.memory.role == '

harvester');

16 console.log('

harvesters:

' +harvesters.length);

1718

if(harvesters.length < 2

) });23}

24var builders = _.filter(game.creeps, (creep) => creep.memory.role == '

builder');

25 console.log('

builders:

' +builders.length);

2627

if(builders.length < 2

) });32}

33var upgraders = _.filter(game.creeps, (creep) => creep.memory.role == '

upgrader');

34 console.log('

upgraders:

' +upgraders.length);

3536

if(upgraders.length < 6

) });41}

4243

var bigers = _.filter(game.creeps, (creep) => creep.memory.role == '

biger');

44 console.log('

bigers:

' +bigers.length);

4546

if(bigers.length < 1

) });51}

5253

if(game.spawns['

spawn1

'].spawning) );60}

6162

for(var name in

game.creeps)

67if(creep.memory.role == '

upgrader')

70if(creep.memory.role == '

builder')

73if(creep.memory.role == '

biger')

76}77 }

3.建築物的建造方法找了很久——已解決,照著教程的game.spawns['spawn1'].room.createconstructionsite( 23, 22, structure_tower );

對藍色部分更改成自己想修改的建築,有關建築介紹,看這個**:

當時教程直接就建造好了5個擴容器,到我自己入手時,一直找怎麼建擴容器extension,找的十分久。

game.spawns['spawn1'].room.createconstructionsite( x, y, structure_extension );

4.小兵工作內容同步——已解決

每個小兵的工作內容,是根據模組來控制的。

在主函式中,開頭要接入這些模組

同時在主函式中,讓小兵工作時,呼叫模組

我記得我當時修改的時候,直接複製,忘記修改紅字,使得兩種小兵幹同乙個工作,我愣了很久,以為它們太相親相愛,放著沒管,下圖是當時誤認為它們相親相愛的**,可以比對上面:

for(var name in

game.creeps)

if(creep.memory.role == '

upgrader')

if(creep.memory.role == '

builder')

if(creep.memory.role == 'biger'

) }

5.小兵對建築工作的優先順序——已解決

以我修改的教程**為例:

var rolebiger = creep *

*/run: function(creep) });}}

else

});if(targets.length > 0

) });}}

}}};module.exports = rolebiger;

紅色的區域就是要讓小兵去補充資源的**,放在第一行,為targets[0],放在第二行,為targets[1],按照自己覺得的優先順序,照著格式,把建築名稱加上就好,有關建築的名稱記得大寫,有關建築介紹,看這個**:

6.給控制器送資源的小兵,一次只給它乙個能量——未解決

我看了下判斷條件,第五行

當他有資源的時候,它就會送貨,等於0時才會**。

我想讓它和其他小兵一樣補充完再去送,所以更改了條件,然後它變成補充50,送1個,再去補充。。。我傻眼了。後續再來更改這個地方的條件。

只能週末玩一會。

7.建不了人工牆,塔,大兵,等等。——未解決。

我猜想,可能2級控制器不能建吧。可能要公升級控制器才行。

8.安排目標不合理,浪費了很多時間。——正在改進每個小兵的計畫安排

9.只有週末能玩,比不過其他玩家,可能被侵占。——覆盤重來

遇到的難題彙總

布局裡可能有很多層級的子元件,在子元件沒有完全載入之前,沒法知道容器的高度,因此很難正確設定左側導航的高度。另外,在互動過程中,容器的高度也會改變,還有當瀏覽器寬高改變或者螢幕解析度改變時,這些情況下也需要動態設定左側導航的高度。有沒有辦法在布局裡知道是否所有的子元件均已載入完畢?或者有沒有辦法知道...

今天所遇到的問題

首先,昨天晚上做完了xenomai與linux核心編譯的任務,今天交付了 問題一 虛擬機器解除安裝 虛擬機器在安裝的時候目錄不太對,受不了就想把目錄改了,改的時候發現改不了,我就在任務管理器裡面把有關程序刪了,刪完發現,嘿果然能改目錄了,結果改完後虛擬機器裡面的linux不能用了,重啟電腦都不能用,...

List,grid view所遇到的坑

在專案中我們可能會用sqlite儲存使用者的一些記錄,比如記事本就要儲存每次記錄,然後在首頁及時的將改變後的item顯示出來,但實際上可能存在各種各樣的坑,比如資料確實寫入了,我也呼叫notifydatasetchange 了,但是為啥你不變!這裡我遇到的是兩個問題 你可能會說是啊,我在記錄資料on...