月別アーカイブ: 2010年10月

毛糸のカービィ

子供が生まれて数ヶ月、一番忙しい時期なのに、やっぱり買ってしまった「毛糸のカービィ」。

たまに一緒にゲームをしていた嫁(現在お母さん)は、最近はなかなか時間がとれず、ゲームをすることもなくなった。元気な子供は、夜は思いっきり寝るのに、昼間は思いっきり起きていて夜更かし。まだ2ヶ月ちょいだからしょうがないけど、早く夜9時頃に寝るようなぐらいになるか、Wiiのコントローラーが握れるようになってほしい。 「毛糸のカービィ」は後者の方が強いかな。

その名のごとく、毛糸になったカービィ、私はカービィシリーズは今までプレイしたことがなかったので、これが初めて。布やボタンやファスナーや糸の世界、材質のリアルな感じは徹底されている。アナログテレビで見ると、昔子供向け番組でよくあった、糸とかボタンで顔を作ってコマ撮りしていたアニメーション、あの世界だ。

ジャンプはとてもふわっとした感じ、重力がちょっと弱い。糸だからか。軽い感じ。でも、「糸だったらこんな感じだろうなー」と思わせる重力感。また、いろんなものに最初から変身できる。ジャンプ中に再度ジャンプボタンを押しっぱなしにすれば、パラシュートに変身してふわふわ落下。楽しい。

毛糸のカービィ」のステージルールは、とにかくビーズ?を集めること。敵に当たると衝撃で持っているビーズを周囲にばらまいてしまう。すぐに集めるとある程度は回復できるけど、しばらく掘っておくと消えちゃいます。なるだけ敵に当たらずに、連続してビーズを手に入れるといいみたいです。最初説明書を見ないでやっていたので、そのあたりを全く知らずにやっていました。でも画面内のキャラクターの動きがおもしろいのでやってて楽しい。

毛糸のカービィ」 の大きな特徴の1つが、2人で同時に楽しめること。1コンがピンクのカービィ、2コンがカービィもどきの青いの(名前忘れた)を操作する。操作方法はほとんど一緒。糸なのに重ならない。上に乗って運んでもらったり、放り投げられたり、「マリオWii」のような感じだろうか、ま、二人できゃっきゃきゃっきゃ言いながら楽しめるたぐいです。

うちも発売日当日、たまたま買ってきた日は子供が早く就寝して、ちょっと嫁の手も開いたので、一緒に2人プレイをやってみましたが、すんなり入り込んで楽しんでいました。嫁は謎を解くのが好きなスタンスなんで、いろいろ考えながら楽しんでいたようです。マリオWiiのように、二匹の距離が離れたら、画面が広がるのではなく、カービィが優先されて画面がスクロールします。画面から外れた青いカービィもどき(名前調べろよ<自分)は、ぱたぱた何かに運ばれてふわふわと現れます。マリオWiiのシャボン玉と同じです。

ステージに入るたびに、一人か二人か聞かれます。また、ステージで遊んでいる最中も、途中から二人目が入ることだってできます。ゲームオーバーってどうやったらなるの?おそらくないんじゃないのかな。だから片方が居なくなって見てるだけ、なんてこともない。これはとってもうれしい仕様だと思う。ずーっと最初から最後まで二人で遊べる、これはいいことです。

まだ2つのワールドしか進んでいませんが、やはり子育てが優先なので、仕方がない。でもゆっくりゆっくり少しずつ楽しんでいけるゲームだと思う。 嫁も子供も寝ているときに一人で遊んで、嫁の機嫌がよければ一緒に遊んで、そしてゆくゆくは子供と遊びたい、遊びたい!と思わせるゲームです。親と子(特にアクションゲームがあまり得意ではない女の子)が遊ぶととっても盛り上がるはず。カービィは子供に譲ってあげてください。

AS3でのフルスクリーン時の座標その後

AS3でのフルスクリーン時の座標」でハマった件、実は中途半端だったことがわかりました。ということで追加のメモ書き。

気づきの発端は、せっかくオプションscaleをnoscaleにしているから、ムービーのサイズをHTMLで変更してやれ、と思って変更したことに始まります。

最初ムービーサイズを320×240で制作していたのですが、ビデオプレイヤーの作り上、サイズに依存せず、動的にstage.stageWidthなどで値を読み取って、レイアウトを可変するようにしていたわけです。よってHTMLでwidthとheightを変えれば、すんなり変わってくれるだろう、と思いました。

ところが、実際に変えてみると、640×480の領域の真ん中、320×240の領域に、640×480に拡大されたビデオの左上の320×240の部分だけが表示されてしまうのでした。

そこで、なにかオプションがあるはず、と思って探した結果、salignというオプションでTL(上端と左端にあわせる)という指定を加えることで、見事に640×480の表示がきれいにできました。やれやれ。

ではついでに、最大化も試そうと、最大化ボタンを押したところ、こんどはフルスクリーンには変わったものの、動画全体が左上からはみ出ているような格好になりました。

ピンときました。

フルスクリーン時に真ん中に来るのは、salignのデフォルトの中央配置が生きている時だけなんだ、と思いました。

HTMLでのsalignの指定は、stage.alignで読み取れます。stage.align==””のときには、無指定なので、真ん中に来ているから画面左上座標の補正をする、ってことでいいのではないでしょうか。

ということで、画面の左上、原点の座標(ox,oy)を求めるには、以下のようにする(あらかじめノーマル時のscreenWidth,screenHeightをnormalWidth,normalHeightに代入しておく)。

とりあえずTLで試したら、上記のやり方でうまくいきました。よかったよかった。他のsalignは試していません。

AS3でのフルスクリーン時の座標

またハマったわけではないけど、ちょこっとハマったので覚え書き。

Flashでフルスクリーンにするとき、通常であればステージ幅とステージ高さがそのままで、単純に全体を拡大して表示されるんですが、パブリッシュ設定で拡大縮小を無効に設定してからフルスクリーンにすると、ステージ幅とステージ高さは、最大化したスクリーンの画面サイズになる。

実はこうやって最大化したとき、画面左上いわゆるスクリーンの原点は(0,0)にならないのです。これでしばらくハマりました。で、調べてみると、オリジナルの画面を最大化した画面の真ん中に配置しようとするため、このようなことがおこるらしい。

ということで、画面の左上、原点の座標(ox,oy)を求めるには、以下のようにする(あらかじめノーマル時のscreenWidth,screenHeightをnormalWidth,normalHeightに代入しておく)。

フルスクリーンになったときや、ノーマルに戻ったときは、FullScreenEvent.FULL_SCREENイベントが発生するので、これをとらえたときに上記のように原点を求めて再配置すればよいんではないでしょうか。

なにをやってるか、っていうと、YouTubeみたいなプレイヤーを作っています。アニメーション全部を最大化すると、ボタンまででっかくなっちゃうのに、YouTubeの最大化は、ボタンの大きさは変わっていなかったので、いろいろ調べていました。