トレーディングカードアプリを作る~デッキ構成機能(実装その1)~

昨日の続き。

 

UICollectionViewを使って、カード一覧表示部分を作ってみた。

まだ、完全にできあがっていないができた部分まで。

 

カード一覧表示部分については、以下の通り

 

カード一覧表示
 -所有しているカードを一覧(絵、所有枚数)で表示する。カードをタップすると詳細を確認することができる。

 

plistでカード情報を管理(今のところ)

-カードNO (Dictionary)

  -カード名 (String)

  -image画像名 (String)

  -カードクラス (String)

  -HP (Number)

  -技 (Array)

    -技NO (Dictinary)

      -技名 (String)

      -攻撃力 (Number)

      -コスト (Number)

    ・・・

  -表示フラグ (String)

-カードNo

・・・

-カードNo

 

コードはgit準備でき次第あげます。

 

簡単にどんな感じかというと、

■下準備

  1. StoryBoradからUICollectionViewControllerを追加
  2. クラスファイルの追加(CollecionViewと命名)
  3. 1で追加したUICollectionViewControllerと2で追加したクラスファイルを紐付け
  4. 表示用画像の追加(大英博物館様の史料)
  5. plist作成

<key>1</key> ➡ カードNO

 <dict>

  <key>image</key> ➡ image画像名

  <string>c1.gif</string>

  <key>class</key> ➡ カードクラス

  <string>servant</string>

  <key>name</key> ➡ カード名

  <string>兵士</string>

  <key>life</key> ➡ HP

  <integer>10</integer>

  <key>special</key> ➡ 技

  <array>

   <dict> ➡ 技1

    <key>attackname</key> ➡ 技名

    <string>special1</string>

    <key>cost</key> ➡ コスト

    <integer>1</integer>

    <key>attack</key> ➡ 攻撃力

    <integer>2</integer>

   </dict>

   <dict> ➡ 技2

    <key>attackname</key> ➡ 技名

    <string>special2</string>

    <key>cost</key> ➡ コスト

    <integer>3</integer>

    <key>attack</key> ➡ 攻撃力

    <integer>5</integer>

   </dict>

  </array>

 </dict>

 

 

■実装

 

  1. viewDidLoad内でplist読み込み及び、CollectionViewへCellの登録
  2. numberOfSectionsInCollectionView:(UICollectionView *)collectionViewでアイテム数(列)の指定
  3. collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)sectionでセッション数(行)の指定
  4. collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPathでセルの生成

という感じで、できあがった様子は、

f:id:like-milk:20140117084156j:plain

です。

 

 

要は、読み込んだ画像を単純に並べているだけです。

 

もっとちゃんと作り直しますが、ここから画像をタップされた際に詳細(カード名など)を表示する機能や、デッキへ入れるかの選択機能などを追加していく予定です。

 

参考にしたページですが、色々見ましたが、こちらのページを見ながら大体やりました。

[iOS6] Collection View 基本的な使い方 - iOS 開発ブログ Natsu's note

ありがとうございました。