にゃろいち。 -20ページ目

にゃろいち。

2019年9月生まれの娘の父親目線での育児記録、幼児教育記録などが中心です。世の中で見かけるにゃろいちはほぼ私です。

今日はアトラスと戦ってきました。
PTはパラ、魔法、魔法、僧侶
戦う前に記念写真w

アトラス

5回行ってみたんですが、今回はバトルチョーカーはゲットできずorz
コイン相場が高止まりしてるので、これ以上は断念。。

パラ一人前衛で食い止めていてくれたので、自分含め魔法使いは安全なところでひたすらメラゾーマしてました。パラが死ぬと一気に陣形が崩れて、復帰までかなり時間かかってました。

昔はパラディンなんかやることなかったのに、いまではすっかり魔法部隊の必須要素に。。自分もパラディン上げてみようかなーと思う今日この頃ですが、まだ先に上げておきたい職があってなかなか順番が回ってきません。

皆さんはプリンといえば、どこのプリンを食べるのでしょうか。
どこかお気に入りのプリンがある方、コンビニのプリンくらいしか思いつかない方、いろいろいらっしゃると思います。

とりあえず「プリン ランキング」でググってみると、いろんなプリンが出てきます。
こういうので1位になってるのを食べてみたりしたんですが、それでも結局一番美味しいなと思うのが、大学時代からずっと食べてる、京都の北山に本店のあるマールブランシュのフレッシュプリン。

 

マールブランシュ

画像は公式から。
http://www.malebranche.co.jp/index.html

ざっくり言うと、なめらかプリン系で、上に乗ってるカラメルがぷにぷにしていて、これがかなり美味しいのです。
2019年 追記:久々に食べたらカラメルのぷにぷに感は少し無くなってました。仕様なんですかね。

東京にお店がないので、たまに京都まで行ったときは必ず大量に買って食べてたんですが、最近は郵送もあるみたいで、どうしても食べたいときは何とかなりそうです。

西の方はお店もかなり増えてきたみたいなので、関西圏にお住まいの方などはぜひ足を運んでみてください。プリンは人気商品なので、だいたいどの支店(?)にも置いてあると思います。

 

初ドラクエ記事。

クエスト中にかっこいい扉を見つけたので、並んで写真撮ってみた。

時の王者

クエストでもらった称号がかっこ良かったので、つぎからこれつけようかなw

今までのキーボスを全部倒していくって感じのクエだったけど、正直弱すぎて、魔力覚醒してる間に戦闘が終わりそうになることもしばしば、、
せめて強モードのボスがでないと、まったく手応えがなかったです。
しかし天魔だけはそれなりに強くて、さすが(?)といったところでしょうか

全部過去ボス倒した後は、この扉の向こうであっけなくクエ終了。ここからこそ作り込むとこじゃないの?っておもったけど。。

扉のたくさんある間だけ妙に立派な作りでした。

個人的には王者の剣もらえなくて残念。
 

シングルトン (Singleton)、という概念をなんとなく覚えました。

前々から悩んでた、異なるViewController間の変数の共有とか、ゲーム全体で使いたい変数をどのクラス、どのファイルからでも参照できるようにするのに役立ちます。
もちろん一部のViewControllerやクラスのみで使う場合は直接受け渡したほうがいいとも思いますが。
感覚的にはグローバル変数みたいな感じになると思います。

やり方は、まず新しいクラス用にファイルを作ります。NSObjectのサブクラスでいいと思います。
GameData.h
GameData.m
名前は何でもいいです。

まず.hのほうで、共有したいプロパティを宣言します。インスタンス作成のためのuseSharedDataメソッドも、他のクラスが使用することになるので、h.に宣言しておきます。
ここではレベルと位置を保存する変数を作りました。

(GameData.h)

@interface GameData : NSObject
{

}
@property int playerLevel;
@property CGPoint playerLocation;

+(id) useSharedData;

@end

最近は.mのほうに@ synthesize とかいらなくなったみたいです。


次は.mの方で、他のクラスからインスタンスを作るクラスメソッド+(GameData* ) useSharedDataをつくります。いつものallocの代わりに使う用です。

(GameData.m)


@implementation GameData

static GameData* sharedData = nil; //nilで初期化したsharedDataというインスタンスを実装

+(SharedData* ) useSharedData
{
if(sharedData == nil){
sharedData = [[sharedData alloc] init]; //sharedDataがnilなら新しくメモリを確保
}
return sharedData;
}


このメソッドを、他のクラスから、

GameData* sharedData = [GameData useSharedData];

という感じでつかうと、初めての呼び出しのときはallocで新しいメモリが確保されて、2回目以降の呼び出しでは既にあるsharedDataが返されます。
つまり、毎回これさえ呼び出せば、sharedData.playerLocation と sharedData.playerLevel がどのクラスでも同じ変数として使えるということに。


さらに自分は毎回書くのが面倒なので、prefix.pch ファイルのなかに、

#define SHAREDDATA GameData* sharedData = [GameData useSharedData];

という感じにマクロ定義しておきました。


ちなみに、sharedData.playerLocation.x = ~~ と書こうとするとなぜかエラーがでます。なぜか考えてみたんですが、多分最初のドットはplayerLocationに対してのアクセサメソッドの簡略表記、後のドットはxはplayerLocationのインスタンス変数だよという表記で、「sharedData.playerLocation.x =」という書き方ではsharedData.playerLocation.xに対してのセッターになっていないからではないかと(適当)。
まあ表記の問題なので、ポインタ使って
CGPoint* sharedPlayerLocation = sharedData.playerLocation;
sharedPlayerLocation = ~~ ;
とかすればできました。
ちなみにゲッターとしては普通に使えました。

これでいちいち受け渡さなくてもいいし、ゲーム作りがはかどりそう!


2015/12 追記
練習で作っていたアプリを遊べるように改良してリリースしてみました!よかったら遊んでみてください。
DodgingRabbit

{21B4190E-2BFA-4B36-B70F-8453F6C78AB3:01}







関連書籍
cocos2dで作る iPhone&iPadゲームプログラミング
Steffen Itterheim
インプレスジャパン
売り上げランキング: 24615


独習C 第4版
独習C 第4版
posted with amazlet at 12.09.29
ハーバート・シルト
翔泳社
売り上げランキング: 102761














cocos2dの本継続中。
引き続き楽しくやっています。まだ長い中の120ページくらいしか進んでないですが、
AppleのUIKitに入ってるクラス使うよりも、cocos2dのほうがゲームに必要なシステムに直結するクラスやプロパティがそろってて、勉強自体が面白い。
練習で模倣してみたいゲームができたので、それのイメージももくもく湧いてくる感じです。

いまは本の内容に沿ってシューティングゲームを勉強中。
出てくる敵専用のクラスを作ったり、動き方を決めたり、あたり判定を決めたり、楽しすぎるw

早く自分のつくりたいゲーム作りたいけど今は我慢して基礎練しなければ。





適当に買ったわりに大当たり。初めの一冊にはきついと思いますが、ゲームを作りたい気持ちにうまく応えてくれました

cocos2dで作る iPhone&iPadゲームプログラミング
Steffen Itterheim
インプレスジャパン
売り上げランキング: 35139



初めはこれをやりました