A Day In The Life

とあるプログラマの備忘録

OpenGL ES入門 その2 -三角形の描画とシェーダーの仕組み-

OpenGL ES入門 その1 -描画の仕組みとバッファ-の続きです。今回は OpenGL ES を使って三角形を描画してみます。三角形を描くだけなら簡単そうな気もしますが、三角形を描くにはシェーダーを用意しきゃいけないという少し面倒くさい作業があるのでその辺の説…

OpenGL ES入門 その1 -描画の仕組みとバッファ-

最近 Cocos2d-x を触っているとどうしても細かいところで OpenGL の知識がないと理解できないみたいなことが多いです。いままで避けてきた感がある OpenGL の勉強をそろそろ始めてみようかなと思い少しづつ日記的にまとめていこうと思います。OpenGL と言っ…

オフスクリーンレンダリングを使って画像を動的にアトラス化する

オフスクリーンレンダリングという手法があります。この手法をつかって動的に画像をアトラス化してスプライトフレームキャッシュ(SpriteFrameCache)に乗せることができると、必要最小限の画像をアトラス化して効率よくキャッシュできるのではないかというこ…

【Swift1.2対応】プロの力が身につく iPhone/iPadアプリケーション開発の教科書 Swift対応版

iOS が8.3にバージョンアップしたのに伴い Xcode が6.3に Swift が1.2にバージョンアップされました。Swift 1.2ではシンタックスエラーとなりビルドできなくなるコードがあります。本書で記載しているコードだけでなく、サンプルの自動生成コードにも変更が…

Cocos2d-x でネイティブ連携する方法

Cocos2d-x でゲームを開発していると広告を表示させたり、ランキングを追加したり、課金を入れたり、SNS や Twitter と連携したり、アクセス解析をしたり、など iOS や Android の機能を使わないと実現できない機能があります(このようにプラットフォームと …

【正誤表】プロの力が身につく iPhone/iPadアプリケーション開発の教科書 Swift対応版

「プロの力が身につく iPhone/iPadアプリケーション開発の教科書」をお買い上げの皆様、ありがとうございます。 読者様からご指摘を頂き、誤りがありましたので訂正させていただきます。 2-3テーブルビューとコレクションビュー 148ページ、プログラム2つ目…

Androidでui::ScrollViewの背景が緑色になる時の対処方法

Cocos2d-x(3.4 Final) の ui::ScrollView クラスを使うとAndroidで背景色が緑色になる現象が発生しました(iOS ではこの現象は発生しません)。 こちらのページに載っている方法で解決することができました。 Problems with UIScrollView: Green Background an…

Cocos2d-xのゲームの構造がどのようになっているか紐解いてみる

Cocos2d-xでゲームの開発を始めてそろそろ5ヶ月たちます。とにかく作ってみるといった感じで基礎知識があるかもも怪しいまま(Scene と Layer の違いがわからんとか)開発を続けていました。最近になってiOS/Androidとのネイティブ連携ではまったり、iOSだと問…

Cocos2d-xでTwitterプラグインを使ってみる

Cocos2d-xにはプラグインという仕組みがあり、それを使えばTwitter連携やら広告表示なんかが割と簡単に使えるようになります。 Cocos2d-xのプラグイン導入の方法は以下のサイトが参考になりました。 Cocos2d-x Plugin-XでObjC/Java連携 自分の環境だと上記の…

ストーリーメーカー 創作のための物語論

結構前に読んだストーリー作りのための本です。 ストーリーを作るためのテクニックについて書かれています。著者はただ闇雲に物語を書くのではなく、セオリーに則ってストーリーを組み立てると未経験者でもそれなりのストーリーを作ることが出来ると主張して…

プロの力が身につく iPhone/iPadアプリケーション開発の教科書が発売されました

1月17日に「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」の改訂版が発売されました。改訂内容は以下の通りです。 iOS 8.1とXcode 6.1に対応 内容をすべて見直し文章を大幅に修正 新プログラミング言語 Swift に対応 よろしくお願いしま…

Isometric MapのZオーダーの指定方法

Cocos2d-xでIsometric Mapを使ったゲームのサンプルを作成していたところz-order(zorder, zindex, z-index)の指定で結構ハマったのでメモです。 Isometric Mapというのはよくある2.5D的な1マスが菱形になっているマップのことです。こんな感じのやつです。 I…

特定のスプライトすべて削除する

最近 Cocos2d-x で2Dゲームを作ってます。 スプライトに名前つけて追加したあと、その名前のスプライトを検索して削除する時にハマったのでメモです(Cocos2d-x のバージョンは3.3です)。 まずはダメなコードから bool HalloWorldScene::init() { // nameとい…

SpriteKitではじめる2Dゲームプログラミング

先日こちらの記事にも書きましたが「Hedgehog Drive」というゲームをリリースしました。このアプリのゲーム部分は SpriteKit を使って実装しました。初めて SpriteKit を使ったので備忘録的にこのフレームワークの使い方をまとめてみました。 2D ゲームで使…

ゲーム開発初心者がはじめて2Dゲームを作ってみてわかったこと

こちらの記事にも書きましたが先日「Hedgehog Drive」という2Dのゲームをリリースしました。 ハリネズミと遊ぼう!指でなぞるだけのシンプルな2Dゲームをリリースしました アプリと違ってゲーム開発は初めてということもあり、苦労したところが多かったので…

ハリネズミと遊ぼう!指でなぞるだけのシンプルな2Dゲームをリリースしました

先日、iOS向けの2Dゲーム「Hedgehog Drive」をリリースしました。 画面を指でなぞって丸いセルを消していくシンプルなゲームです。アプリは無料で広告表示もありません。 4才の娘がルールを理解して遊べるようにゲームのバランス調整をするのが大変でした。…

Autolayout に対応した画面で UIScrollView を使う時のコツ

iOS 6から導入された Autolayout(オートレイアウト)を最近になって本格的に使うようになりました。 4-inch の iPhone が主流になりつつある中、アプリを Autolayout に対応させるのはほぼ必須といっても良いと思います。Storyboard と格闘してなんとかコツは…

東京転勤になりました。

本日付けで東京勤務になりました。 京都で暮らせたのが1年半と短いだけに少し残念ですが心機一転頑張りたいと思います。

iPhone/iPadアプリケーション開発の教科書が増刷されました。

皆様ご購入ありがとうございます。 このたび「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」が増刷されました。 本当にありがとうございます。めちゃくちゃうれしいです。 増刷分では以下の記事に掲載した訂正箇所が修正されています。 …

ジェネラティブ・アートが面白い

久しぶりに Processing でコード書いてます。なんでかと言うと、たまたま本屋さんで見つけた「ジェネラティブ・アート」という本がめちゃくちゃ面白くてそれがきっかけです。 個人的にはChapter 6の「創発」、Chapter 7の「自律性」、Chapter 8の「フラクタ…

ポスチュアとユーザインターフェースから見る iOS アプリのトレンド ー iOS7 の登場で変わるアプリのトレンド ー

最近読んだアラン・クーパー氏の著書『About Face 3』ではソフトウェアを「使われ方」と「見た目」の2つの視点で分類していました。拙著『プロの力を身につける iPhone/iPadアプリケーション開発の教科書』の第3章では iOS アプリを実装面から分類しました。…

アフォーダンスとシグニファイア

最近デザイン系の本を読んでいて「アフォーダンス」という言葉の使われ方が変わってきたなと感じています。 アフォーダンスはD・A・ノーマン氏の著書「誰のためのデザイン」がきっかけに広まった言葉で、もとはアメリカの知覚心理学者のJ・J・ギブソン氏が提…

【訂正】プロの力を身につける iPhone/iPadアプリケーション開発の教科書

「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」の中に誤りがありましたので訂正させていただきます。 3-3 データを活用したアプリの作り方 235ページ下から4行目 訂正前 次のように、UILabel と UITextField オブジェクトを配置します。…

NSManagedObjectでTo-Many関連を使用したときにコードの自動生成がされないバグの解決方法

Core Data の NSManagedObject クラスで以下のように To-Many(One-To-Many) 関連を使ったときにコードの自動生成をすると実装コードが生成されない場合があります。 通常の To-Many 関連では問題が起こらないのですが以下のように Ordered(順序) を指定して…

本日発売!プロの力を身につける iPhone/iPadアプリケーション開発の教科書

ついにこの日がやってきました。 「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」本日発売です。 先ほど職場近くの「MARUZEN & JUNKUDO」さんに行ってみたらバッチリ置いてありました。感無量です。読者の皆様のアプリ開発助けになれば幸…

iOSアプリ開発の本を書きました

ご無沙汰しております。約半年ぶりの記事です。 この間、ずっと iOS アプリ開発の本を書いていました。タイトルは「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」です。 出版社様から書籍執筆のお話を頂いたのが約1年半前でした。やっと…

iCloud プログラミング入門

「iOS データ設計入門」でデータはメモリ、フラッシュドライブ、iCloud に保存することができると説明しました。今回は iCloud にデータを保存して複数端末でデータを共有する方法について説明していきます。 iCloud って何? クラウドと聞くとなにやら難し…

iOS データ設計入門

ios

「iOS アプリの画面開発の基礎を理解する」でアプリの画面と画面遷移について説明しました。アプリの見た目はとても大切ですが同じぐらい大切なこととして、データの活用方法があります。 ユーザに必要なデータは何か、そのデータに価値を持たせて情報にする…

SenTestCase で非同期処理のテストをする方法

今年の2月ごろから iOS 用の HTTP 通信ライブラリの開発をしていています。 シンプルで簡単に HTTP 通信が出来るライブラリを公開しました 非同期で HTTP 通信をするだけの簡単なライブラリなんですが、ユニットテスト(Unit Test)をする時に少しコツが必要だ…

近況のご報告

私事で誠に恐縮ですが、5月21日付けでグリー株式会社に入社しましたことをご報告させていただきます。次の仕事を探すにあたり Web サービス系の会社も受けたのですがソーシャルゲームの仕事からたった1年半で離れてしまうのはなんかもったいなぁと感じていま…