すくりぷとっぽいやつ@シューティング

今日は、スクリプトっぽい奴を画面に反映させてみました。

敵を配置したり動かしたりするスクリプトです。
例えば、下のスクリプト
1秒づつ敵を配置するスクリプトです。

ENEMY   e1,1,500,100;
WAIT    1000;
ENEMY   e2,1,500,200;
WAIT    1000;
ENEMY   e3,1,500,300;
WAIT    1000;
ENEMY   e4,1,500,400;
WAIT    1000;
ENEMY   e5,1,300,200;
WAIT    1000;
ENEMY   e6,1,300,400;

画面描画系<=>データ更新系 分離させると楽!
以下は、各コマンドを実行(?)する部分。
時間かけて実行される(移動とかディレイとか)コマンドと即座に反映されるコマンドに分かれるのでは!?って思いました。
それが、EXECUTE_WAIT or EXECUTE_SUCCESSだったりです。↓
・・・けど、移動はまた違う感じ。後で解決しませう

int execute(Command *command,clock_t *time){
    if(strcmp(command->command,"") == 0){//命令なし
        //printfDx("<命令なし>\n");
        return COMMAND_END;
    }
    if(strcmp(command->command,"WAIT") == 0){//WAIT命令
        *time += atoi(command->param1);
        printfDx("<%sミリ秒待ってね>\n",command->param1);
        return EXECUTE_WAIT;
    }
    if(strcmp(command->command,"ENEMY") == 0){//ENEMY命令
        
        printfDx("<敵出現>\n");
        int x = atoi(command->param3);
        int y = atoi(command->param4);
        PlaceEnemy(command->param1,command->param2,x,y);
        return EXECUTE_SUCCESS;
    }
    
    return INVALID_EXECUTE_COMMAND;
}

固定で敵を配置していた部分を切り取ってPlaceEnemy()関数として独立。
実体は他ファイルで宣言しているので、あちこち移しましたが、結局externで外部参照することに。


その結果がこれ!

弾、撃ってます。
次の課題は敵の移動です。