操作方法・Controls|タップとProcessorの使い方
操作はプレイヤー入力と、ユニットや建物を命令するために使うフゲーム内ロジック制御システム(Processors と制御命令)を含みます。適切な操作はマイクロマネジメントを高速化し、コンベアや機械の自動化を可能にし、Logic processor を介して高度な挙動を引き出します。
プレイヤー操作(PC とモバイル)
プレイヤーユニット
- 移動: PC では WASD / 矢印キー;モバイルでは画面をドラッグ。
- インタラクト: 左クリック(PC)/タップ(モバイル)で射撃または建物の設置。
- 採掘: 鉱石を左クリック(PC)/タップ(モバイル)で採掘。
- 所有(Possess): Ctrl + 左クリック(PC);モバイルではユニットをタップして所有。
- リスポーン: リスポーンキーを押すと最寄りの core に戻る。
- ブースト: ブーストキーを押してユニットをダッシュ/ブースト;モバイルではユニットから画面を引くとブースト。
- 積荷(Cargo): ピックアップ/ドロップキーで積荷を拾ったり落としたりする;モバイルでは長押しで拾う/落とす。
建物と建設
- 建物を置く: 左クリック(PC)またはタップ(モバイル)。
- 削除/選択解除: 右クリック(PC)またはモバイルのハンマー/削除 UI を使用。
- 建築の一時停止/再開: ビルド一時停止キーを使用。
- 範囲選択/再構築: 範囲選択キーと再構築キーで複数ブロックや設計図を操作。
- ブロック設定: 多くのブロックはタップ/選択で設定可能;一部のブロックはタップ時にタッチイベントを消費し、直接設定 UI を開く。
ユニット命令と表示
- ユニット命令 UI をユニット命令キーで開く。
- グループ選択: Shift + 左クリックでユニットの範囲選択。
- すべてのユニットまたはすべてのユニット工場をそれぞれのホットキーで選択。
- 複数のウェイポイントを指定: Shift + 中ボタンクリック(PC)。
- ズーム: マウスホイール。
- UI 表示切替、フルスクリーン、メニュー、コンソールはそれぞれ専用のホットキーあり。
- マルチプレイヤー: プレイヤーリストとチャットに専用キーあり;スクロールホイールでチャット履歴をスクロール。
ロジック概要(ゲーム内で「controls」が意味するもの)
Logic は Processor によって実行されるゲーム内スクリプトシステムです。アセンブリに似た決定論的な低レベル命令を提供します:各命令はプロセッサの命令カウンタに基づいて評価され、プロセッサはその速度/クロックに従って毎ティックごとにプログラムを巡回します。
Processors は世界と相互作用できます:センサーを読み取り、Memory ブロックを読み書きし、ブロックの状態を制御し、メッセージを出力し、条件付きでジャンプします。ビジュアル編集モードとテキスト編集モードが利用可能で、ビジュアルエディタは初心者に優しくモバイル利用やクリップボードのインポート/エクスポートをサポートします。
よく使う命令カテゴリ
- センサー: ブロックの性質や、switch などのブロックの @enabled のような特別タグを読み取ります。使用例: sensor active switch1 @enabled はその
スイッチの有効状態を active という変数に割り当てます。
- 制御(Control): ブロックの状態を変更します。例: control enabled conveyor1 1 ... はコンベアを有効にし、control enabled conveyor1 0 ... は無効にします。
- ジャンプと比較: 条件付きフロー制御。比較が一致したときにジャンプするには jump
を使用します。比較一覧には strictEqual や always などの演算子が含まれます;always は常に true を返して強制的にジャンプします。 - メモリ読み書き: read var = cell at index は MemoryCell や MemoryBank から数値を読み取って変数に格納します。MemoryCell はインデックスアクセスをサポートし(セルはゼロ始まり)。
- 表示と出力: print は表示するテキストを保存します;printflush target は保存されたテキストを
メッセージブロック ブロックや
ロジックディスプレイに出力します。
- getlink / content アクセス: Processor はリンクされた特定の建物(例えば特定の sorter インスタンス)を取得し、それを対象制御や読み取りのための building content として扱うことができます。
例パターン
スイッチでコンベアを切り替える:
- sensor active switch1 @enabled
- jump 4 strictEqual active true
- control enabled conveyor1 0 0 0 0
- end
- control enabled conveyor1 1 0 0 0 このスクリプトはスイッチを読み取り、コンベアを有効化または無効化するためにジャンプし、無限ループします。
メッセージブロック ブロックにメッセージを書く:
- print "Hello world!"
- printflush message1 Processor を メッセージブロック ブロックに接続してください;print は保存し、printflush は指定された message ブロックに出力します。
メモリセルの内容を読み取る: read value = cell1 at 2 これは cell1 のインデックス 2 にある数値を変数 value に入れます(インデックスは 0 から始まる)。
UI と使い勝手のヒント
- 開始時はビジュアルエディタを使うとよい:変数やジャンプのフローが見え、モバイルでも使いやすい。
- デスクトップとモバイルのエディタ間でスクリプトをコピーするにはクリップボードのインポート/エクスポートを使う。
- リンクされたブロック(router1、conveyor1、switch1、message1 など)にわかりやすい名前を付けて、ロジックを読みやすく再利用しやすくする。
- Processor はカウンタ/クロックに従って毎ティック一命令を実行することを覚えておく;ループやジャンプはそのタイミングを考慮して構成する。
ブロック相互作用の細かい点
- 一部のブロックはインスタンスごとの「building」リンクを公開します(content/class ではなく)。getlink はリンクされた建物インスタンスを取得し、それを検査または制御できます。
- ブロックはタップ時の設定可能な挙動やタッチイベントを消費するかどうかを公開することがある;設定可能なブロックはタップして設定 UI を開ける。
この文書は操作レイヤー、つまりプレイヤー入力とユニットやブロックをプログラム/自動化するために使われる Logic システムを説明します。Processors を使ってセンサーを読み、ブロックの状態を操作し、メッセージを扱い、複雑な工場やユニットの挙動を調整してください。