とうとう最終章です!このチュートリアルではサンプルコード無しで敵のクリープを全滅させるのが目標です。今までのチュートリアルを駆使して自分なりの攻撃方法で挑戦する必要があります。著者はクリープを2個生成して、rangedAttack()
でゴリ押ししたらクリアできましたwww 362 ticksもかかってしまったのでもっと効率的な方法は山ほどありそうです。
前回までの記事は以下になります。
- Loop and import(ループとインポート)
- Simple move(単純な移動)
- First attack(初めての攻撃)
- Creeps bodies(クリープの各パーツ)
- Store and transfer(エネルギーのストアと転送)
- Terrain(地形)
- Spawn creeps(クリープを生成)
- Harvest energy(エネルギーの採取)
- Construction(工事・建築)
公式のサンプルコードはありませんが、著者のゴリ押しコードを最後に掲載していますので良かったら参考にしてみてくださいね。
Final test ー最終試験ー
これでクリープを制御する方法、敵を攻撃する方法、エネルギーを操作する方法、新しいクリープを生成する方法、新しい構造を構築する方法を学びました。 最終テストの準備ができているようです。
このチュートリアルのステップでは、エネルギーのあるスポーンとソースがあります。 マップの反対側からすぐにあなたを攻撃しようとしている敵のクリープのパーティーがあります。あなたは労働者のクリープをスポーンし、いくらかのエネルギーを収穫し、さらにクリープをスポーンし、それらを倒す必要があります。 今回はサンプルコードも提供しません!
このチュートリアルを終了したら、実際のPVPアリーナに移動してマルチプレイヤーモードで他のプレーヤーと戦ってみてください。 頑張ってScreeps Arenaを楽しんでください!
目的:攻撃をかわし、すべての敵のクリープを倒してチュートリアルを完了します。
ゴリ押しで倒すサンプルコード
import { getObjectsByPrototype } from '/game/utils';
import { Creep, StructureSpawn } from '/game/prototypes';
import { MOVE, RANGED_ATTACK, ERR_NOT_IN_RANGE } from '/game/constants';
var creep1, creep2;
export function loop() {
var enemyCreep = getObjectsByPrototype(Creep).find(creep => !creep.my);
var mySpawn = getObjectsByPrototype(StructureSpawn)[0];
if(!creep1) {
creep1 = mySpawn.spawnCreep([MOVE, RANGED_ATTACK]).object; // クリープ1が無ければ生成
} else {
if(creep1.rangedAttack(enemyCreep) == ERR_NOT_IN_RANGE) { // 攻撃範囲にあれば攻撃(1)
creep1.moveTo(enemyCreep); // 攻撃範囲内まで移動
}
if(!creep2) {
creep2 = mySpawn.spawnCreep([MOVE, RANGED_ATTACK]).object; // クリープ2が無ければ生成
} else {
if(creep2.rangedAttack(enemyCreep) == ERR_NOT_IN_RANGE) { // 攻撃範囲にあれば攻撃(2)
creep2.moveTo(enemyCreep); // 攻撃範囲内まで移動
}
}
}
}
サンプルコード内にコメントを書いたので参考にしてみてください。ただ単にクリープを2機生成して範囲攻撃しているだけです。時間があったら他の方法も掲載しておきます。
長々と全10回のチュートリアル、お疲れ様でした!