こんにちわ。

外は桜が満開ですが、今日も元気にやっていきましょうp(^-^)q

前回はタイトル画面からプレイ画面へ画面遷移したところで終わりましたね。

ではプレイ画面に表示するパネルを用意しましょう。

以下のファイルを用意しました。
原寸大で掲載してます。大きさは42×42ピクセルです。

無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-9-4無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-9-5無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-9-3無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-9-2無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-9-1

左から「panel-0.png」~「panel-4.png」の5種類です。

これはいつも見たいにプロジェクトに追加しましょ。

このパネルを操作してゲームを進めていく予定。

無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-12-1

ここでこのパネルですが、移動したり消えたりと、様々なアニメーションをつけて
動かしたいと企んでおります( ̄▽+ ̄*)

こういうアニメーションを高速に処理してくれる便利な共通部品?が用意されています。

このアニメーションを使うためには、
iOSで利用できるフレームワーク(共通部品)「QuartzCore」をインポートする必要があります。

インポートは以下の方法でできます(・ω・)/
まず、左のFrameworkのフォルダで右クリック → 追加 → 既存のフレームワーク
を選択します。

無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-12-3

そしたら、こんなんがでてくるので、QuartzCore,Frameworkを選択します。

無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-12-2

はいこれで追加できました。

無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-12-4

で、次は実際にさっき追加したパネルを画面に表示させたいと思います。

いきなりここで新しいコトバですが、レイヤについて簡単な説明...

レイヤとはQuartzCoreでアニメーションを行う基本的な考えらしくて、
レイヤを使ってUIImageを表示すると、簡単かつ高速に変形・移動ができるようになるらしいのです。

そーなんだ。





では画面にパネルを置きますよ!(-^□^-)
プレイ画面で使用する変数などなどを宣言するため、
PlayViewController.hを編集します。

typedef enum{
      PlayStateChoose, //パネルの選択という状態
      PlayStateChange //パネルの交換という状態
} PlayState;

@interface PlayViewController : UIViewController {

      IBOutlet UIImageView *backView;
      IBOutlet UIImageView *frontView;
      IBOutlet UILabel *scoreLabel;
      IBOutlet UILabel *timeLabel;

      PlayState state;
      BOOL isFinished;
}

@end
実装するとこんな感じ↓
無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-12-5



それでは、メソッドの内容を書くPlayViewController.mを編集しましょう。

先ほど追加したQuartzCoreは、単にプロジェクトに追加しても、コードで宣言をしないといけません。

PlayViewController.m の冒頭部分です。
赤いとこを追加しました。

#import "PlayViewController.h"
#import "QuartzCore/QuartzCore.h"


で、次に以下のコードを最後の@endの前に追加しました。
説明などは後にしてとりあえず、viewWillAppearメソッドを追加しましょう(≧▽≦)

- (void)viewWillAppear:(BOOL)animated{
      srand((unsigned)time(NULL));
      state = PlayStateChoose;
      isFinished = NO;

      for(int y=0;y<6;y++){
            for(int x=0;x<6;x++){
               CALayer *layer = [CALayer layer];
               layer.bounds = CGRectMake(0,0,42,42);
               layer.position = CGPointMake(59+(42+1)*x,53+(42+1)*y);

               int dice = rand() % 5;
               NSString *layerName = [NSString stringWithFormat:@"panel-%d",dice];
               NSString *imageName = [layerName stringByAppendingPathExtension:@"png"];
               layer.contents = (id)[UIImage imageNamed:imageName].CGImage;
               layer.name = layerName;

               [backView.layer addSublayer:layer];

               }
         }
}

実装するとこんな感じ↓
無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-12-6

はい、分けもわからず実装しましたが、とりあえず保存して実行してみてください!

タイトル画面から、プレイ画面へ移動すると下のような画面が表示されますv(^-^)v


$無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-12-7

パネルはランダムで敷き詰めているので、全く同じじゃないとおもうけど、
なんかそれっぽい!ちょっと感動!

説明は次回にしたいと思います(*^o^*)






ランキングに参加しています。下のクリックお願いしますー(*゚ー゚*)

にほんブログ村 IT技術ブログ iPhoneアプリ開発へ

にほんブログ村 携帯ブログ iPhoneへ
みなさんこんにちわ(・ω・)/

今日タイトル画面から、プレイ画面への遷移をやっていきましょう。(^∇^)

タイトル画面のGamePPoiViewController.hをいじくります。

プレイ画面を表示するためにボタンを追加するので、その変数とメソッドの宣言をします。
赤くした所の上が変数の宣言で、下がメソッドの宣言です。

@interface GamePPoiViewController : UIViewController {
    IBOutlet UIButton *playButton;
    IBOutlet UIButton *helpButton;
}

- (IBAction)showHelpView;
- (IBAction)showPlayView;

@end
]


無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-5-1


で、GamePPoiViewController.mに中身を書いていきましょう。
とはいっても、画面遷移の方法ま前と全く一緒なので、コピって使います。
こっちも赤いところが追加したとこです。最上部のインポート部分です。
これはPlayViewControllerクラスを使うための宣言です。


#import "GamePPoiViewController.h"
#import "HelpViewController.h"
#import "PlayViewController.h"


はい、次は画面を遷移するメソッドです。
ヘルプ画面に移動するメソッドをそのまま使って、部分的にかえました。
HelpViewController → PlayViewController
これだけでいいんです。(‐^▽^‐)



- (IBAction)showHelpView {

   HelpViewController *controller = [[HelpViewController alloc]
     initWithNibName:@"HelpViewController" bundle:nil];

   controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

   [self presentModalViewController:controller animated:YES];

   [controller release];
}

- (IBAction)showPlayView {

   PlayViewController *controller = [[PlayViewController alloc]
     initWithNibName:@"PlayViewController" bundle:nil];

   controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;

   [self presentModalViewController:controller animated:YES];

   [controller release];
}

@end



保存を忘れずにして、次に画面にボタンを追加しましょう。
この画面のように普通のボタンを追加して「Play」としました。
ボタンをかっこよくしようと思ったけど、また今度でイイや(・_・;)
無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-5-2

ボタンを追加したら、青い矢印で接続しましょう。
まず、「Play」ボタンからFile'sOwnerまで矢印を引っ張ってきて、
ShowPlayViewメソッドに関連づけます。


無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-5-3

無知の状態からiPhoneアプリ開発に挑んでみる-42011-4-5-4

こんどは逆にFile'sOwnerから「Play」ボタンまで矢印を引っ張ってきて、
PlayButton変数に関連づけます。

無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-5-5

ほんじゃ、保存して実行してみよう!

無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-5-7
「Play」ボタン押す↓
無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-5-8
    ↓
無知の状態からiPhoneアプリ開発に挑んでみる-2011-4-5-9

はい、画面の遷移ができました。まだ戻れないけどもね。

ちなみ新しいことはなんにもしてませんよ(゚ー゚;



ランキングに参加しています。下のクリックお願いしますー(*゚ー゚*)

にほんブログ村 IT技術ブログ iPhoneアプリ開発へ

にほんブログ村 携帯ブログ iPhoneへ
こんにちは。

今日もちょっとですが進んでいきましょう。(;^_^A

前回は、InterfaceBuilderに画像を貼付けて、なんかそれっぽくしました。

今回は、それらのアウトレットをしていきたいと思います。

前回のプレイ画面に追加したのは以下の4つ。

 マスが並んでる画像(後ろの画像)
 透明窓がある画像 (手前の画像)
 スコア表示用ラベル
 時間表示用ラベル

です。

これをプログラムから操作できる様に変数を4つ追加します。
xcodeの「PlayViewController.h」を開いて以下の様に追加しました。


@interface PlayViewController : UIViewController {

    IBOutlet UIImageView *backView;
    IBOutlet UIImageView *frontView;
    IBOutlet UILabel *scoreLabel;
    IBOutlet UILabel *timeLabel;
}
@end


しっかり保存しておきましょう。こんな感じです。
無知の状態からiPhoneアプリ開発に挑んでみる-2011-3-29-1

それでは、InterfaceBuilderで接続していきます。
File's Ownnerから右クリックでそれぞれさっき宣言した4つの変数を対応付けます。
無知の状態からiPhoneアプリ開発に挑んでみる-2011-3-29-2
このように線を引っ張って、離すと下のようなのがでるので、
ここではスコアに接続しようとしてますので、さっき宣言したscoreLabelを選択します。
無知の状態からiPhoneアプリ開発に挑んでみる-2011-3-29-3

同じように残りの3つも接続していきます。
でもここで、困ったことがおこりました∑(゚Д゚)
backView以外はできるのですが、backViewだけはどうしても選べない・・・
frontViewを選んでしまう・・・(ノ_・。)
こんな感じ↓画像の右下にfrontViewってでてますもん。
無知の状態からiPhoneアプリ開発に挑んでみる-2011-3-29-4

そこで発見したのが、下の方法。
File's Ownnerから右クリックは同じで、PlayViewController.xib内のViewの
Image View(stage_back_png)を選ぶこことができます。
無知の状態からiPhoneアプリ開発に挑んでみる-2011-3-29-5
マウスを離したときも同じ様にコレがでてくるので、backViewを選択して4つの接続は完了です。
無知の状態からiPhoneアプリ開発に挑んでみる-2011-3-29-6

次はタイトル画面からプレイ画面にいくためのボタンを追加しよーかな。



ランキングに参加しています。下のクリックお願いしますー(*゚ー゚*)

にほんブログ村 IT技術ブログ iPhoneアプリ開発へ

にほんブログ村 携帯ブログ iPhoneへ