【2D】ゲーム作成ツールGameMaker part5【マンセー】at GAMEDEV【2D】ゲーム作成ツールGameMaker part5【マンセー】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト221:名前は開発中のものです。 11/04/17 04:58:56.68 IpP4KM4S 途中送信してしまいましたが ランダムに四方八方のいずれかに移動する際の効率的な方法をご教授願いたいです。 よろしくお願いします。 222:名前は開発中のものです。 11/04/17 10:14:44.18 cJFcxO/l 効率的というのがどのような効率かわからないけど 移動量32 で 八方向にランダムだったら xm = irandom(2)-1; //もしくはround(random(2))-1 ym = irandom(2)-1; if(place_free(x+xm*32, y+ym*32)) { //移動させるコード } のように移動方向をランダムの対象にすればいいんじゃないかな 223:名前は開発中のものです。 11/04/17 12:52:54.13 5sAF/mq0 後半の判定条件見ると、毎回必ず八方向のどれかに移動しないといけない (どこにも移動しないというのはナシ)なのかな。 だとすると、まずどこが空いているか調べておいて、その中から選ぶのが良いかと。 // 空いている場所を調べて配列に入れる count = 0; for (ix = -32; ix <= 32; ix += 32) for (iy = -32; iy <= 32; iy += 32) { if ((ix != 0 || iy != 0) && place_free(x+ix, y+iy)) { vx[count] = ix; vy[count] = iy; count += 1; } } // 配列の中から移動先を選ぶ ii = floor(random(count)); x += vx[ii]; y += v[ii]; 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch