0
    平和な大地に突如あらわれた危険
    しかし、危険は嵐のように立ち去っていきました...

    [今回の内容]
    ■ライオンさんの座標と座標変化の確認
    ■ライオンさんの瞬間移動
    ■ライオンさんの移動後の座標

    今回は、走り去ってしまったライオンさんを
    再び大地に呼び戻したいと思います

    さてそれでは、どうやってライオンさんを呼び戻せばいいのでしょう?

    ■ライオンさんの座標と座標変化の確認

    まずは、ライオンさんのスタート位置から確認してみましょう
    lionIV = [[UIImageView alloc] initWithFrame:CGRectMake(140.0, 0.0, 40.0, 40.0)];
    lionIV.backgroundColor = [UIColor colorWithRed:0.9 green:0.7 blue:0.5 alpha:1.0];
    [self.view addSubview:lionIV];

    赤い数値がライオンさんの初期座標で、
    X座標が 140.0、Y座標が 0.0、

    そして、このライオンさんを移動させるために、
    - (void)drawFrame の中でY座標を変化させました
    CGRect frame = lionIV.frame;
    frame.origin.y += 1.0;
    [lionIV setFrame:frame];
       
    NSLog(@"LION:%.1f", frame.origin.y);

    Y座標を1ピクセルずつ変化させています

    それでは、ライオンさんが消える瞬間はいったいいつなのでしょう?

    実際には、見えていませんが、
    下の画像の位置に来たときに、ライオンさんが見えなくなります

    y480

    その見えなくなった瞬間の座標は(X, Y)=(140.0, 480.0)になります

    なので、この瞬間に最初の座標に戻してあげると
    ライオンさんが再び画面にあらわれます
    キリンさんは、たまったものではありませんが...

    ■ライオンさんの瞬間移動

    ということで、if を使ってプログラムに追加しましょう
    -(void)drawFrame に青い行を追加してください
    CGRect frame = lionIV.frame;
    frame.origin.y += 1.0;
    if(frame.origin.y >= 480.0) frame.origin.y = 0.0;
    [lionIV setFrame:frame];

    y=0

    内容を確認すると、
    1行目:ライオンさん(lionIV)の座標とサイズを取得し frame に代入
    2行目:frame のY座表を、1ピクセルずつプラスする
    3行目:もし Y座標が 480.0 以上になったならY座標を 0.0 にする
    4行目:ライオンさんに frame の値を代入する

    ※if の中は「Y座標が480.0になったとき( == 480.0)」でいいかもしれませんが、
     世の中、何が起こるかわかりませんので「Y座標が480.0以上( >= 480.0)」
     としています

    それでは、[Run]してみましょう

    y=0

    ライオンが下に消えた瞬間、上に移動して、
    またキリンさんに襲い掛かってきます

    ■ライオンさんの移動後の座標

    いや、ちょっと待って?

    これだと、消えたと思ったら、ライオンさんの全身が一番上に出現します
    まさに瞬間移動!... これは不自然ですね

    なぜかというと、
    消えた瞬間に「ライオンさんのY座標を0.0」にしているからです
    なので、上に移動した瞬間にライオンさんの体が丸見えなのです

    ということは、
    上に移動した瞬間のY座標をもう少し上にすればいいですね
    ライオンさんの座標は、縦横ともに40ピクセルなので、
    移動後のY座標を -40.0 と変更します
    CGRect frame = lionIV.frame;
    frame.origin.y += 1.0;
    if(frame.origin.y > 480.0) frame.origin.y = -40.0;
    [lionIV setFrame:frame];

    y=-40

    それでは、[Run]!

    y=-40

    ライオンさんが消えたと思ったら、自然に上から出現します

    キリンさんの心休まる平和な日々がなくなってしまいましたが、
    プログラムはうまくいきました

    ...

    さて次回は?

    今のままでは、アプリを起動した瞬間からライオンさんが襲ってきて、
    心の準備をする時間がありませんので、スタートボタンを作り、
    ボタンを押してからライオンさんが襲ってくるようにプログラムしましょう

    それではまた!



    コメント
    コメントする








       
    この記事のトラックバックURL
    トラックバック

    Calendar
    S M T W T F S
    1234567
    891011121314
    15161718192021
    22232425262728
    2930     
    << September 2019 >>
    My Apps
    有料アプリ

    無料アプリ

    Selected entries
    Categories
    AdSense
    Sponsored Links
    Archives
    Recent comment
    Links
    Profile
    Search this site.
    Others
    Mobile
    qrcode
    powered
    無料ブログ作成サービス JUGEM