31歳から始める初心者のアプリ制作勉強ブログ

アプリ制作の勉強の経過や雑記などを書いていきます

指定の位置にランダムで出現させる

開発中に詰まった所シリーズ

前にも言いましたけど自分が始めて作ったアプリがリリースされました!

ですがその中身は所詮素人がコピペをツギハギしたキメラです。

次回に活かす自分の復習の為にもちょっと中身を見て振り返ります。

 ・検索してもなかなか見つからなかったランダム位置出現

自分の「ちんあなごをつかまえろ」では16カ所の指定の穴から飛び出てくる

ちんあなごを捕まえた数を競うゲームです。

f:id:inou-social:20140110171735p:plain

こんな感じ

 

この16個の穴からランダムに出現させる。

他の方々には「なんでそんな所で詰まるの?」って感じでしょうが

ネットで検索、コピペでキメラを作り上げていた自分には詰まる箇所だったのです。

・「xcode random」 で検索すると数字のランダムばかり

わからない所はそれっぽいキーワードでなんでも調べてたんですが、ランダム関係は

どうも数字ばかりでてきます。そんな困っていた所にあるページを発見しました。

水島企画さんのページです。

ここにあるもぐら叩きが自分の求めていたランダムの動きでした。

これを自分なりに取り込んでみたのがアプリのアナゴの動きです。

最初に自分の書いてたランダム位置コードは

 

 CGPoint randPoint = CGPointZero;

    int setpointx=arc4random()%4;

    randPoint.x = setpointx;

    if(setpointx==0){

        setpointx=30;

    }else if(setpointx==1){

        setpointx=100;

    }else if(setpointx==2){

        setpointx=170;

    }else if(setpointx==3){

        setpointx=240;

    }

 

    int setpointy=arc4random()%4;

    randPoint.y = setpointy;

    if(setpointy==0){

        setpointy=110;

    }else if(setpointy==1){

        setpointy=180;

    }else if(setpointy==2){

        setpointy=250;

    }else if(setpointy==3){

        setpointy=320;

    }

 

    int anagoIndex = randPoint.y * 4 + randPoint.x;

    UIImageView *ivAnago = [anago objectAtIndex : anagoIndex];

 

 

    ivAnago.tag = ANA_UP;

こんな感じだったんですが複数出すとなると話は違います。

 

このランダム調べと調整で1週間近くかかりました・・・。

やはり理解して使わないとオブジェクト思考は難しいです・・・。