すくりぷとっぽいやつ@シューティング
今日は、スクリプトっぽい奴を画面に反映させてみました。
敵を配置したり動かしたりするスクリプトです。
例えば、下のスクリプト
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で外部参照することに。
弾、撃ってます。
次の課題は敵の移動です。