admin
This user hasn't shared any profile information
Posts by admin
CakePHP勉強中
0Webアプリケーションを作成するために、CakePHPを少し勉強することになりました。
早速ダウンロードしてインストール準備をしました。
いきなり色々エラーがでましたが、色々なサイトを参考になんとか設定完了。
さっそくチュートリアルを実行してみました。
何となく流れはわかったような気がしますが、かかれていた通りに実行しているだけで、自作で何かを作るにはまだまだ遠そうです。
基本的にコントローラーを作る。>コントローラーの関数を作成>それを表示するビューを作成
を繰り返すみたいです。View表示の拡張子がctpってのが編集しにくくてよくわからないけど。
現在問題点として
リダイレクトが上手く行かない。
表示されるページの下の方になんかデータベース情報が表示される?というのがあります。
リダイレクトはローカルでやっているし、設定ミスなきがしますのでほっといてます。
下に表示されるのはまだ弄っていないレイアウト項目を弄れば直るのかな?
enchant.jsとTwitterの連動
0enchant.jsとTwitterが連動出来るようなAPIが登場しました。
これでenchant.jsを使ってTwitterを利用したゲームやタイムラインの表示とかができるかも。
しかし、どうもjavascriptはなれないせいか、配列が使いにくかったり、正規表現がやりにくいです。
せっかくですので、以前作ったTwitterをマルコフ変換するプログラムをenchant.jsで作成しようとするも、その二つの仕様の違いによりなかなかうまくいきませんでした。
いろいろ調べてたら・・・・なんとjavascriptにマルコフ変換その他をしてくれるライブラリがありました。
JavaScriptライブラリ「Web AI」
なんか苦労してたのが馬鹿みたいでした。
さっそくこれを使って作成。作成したのがこちら
人工無能「あなた」
しかし、Twitterというのが、他のブログなどの文章と違う性質を持っているせいか、人によってはうまく表示されないようです。
まだライブラリを完全に把握してないので使い方間違っているのかなあ?
enchant.jsの3D回転を拡張するプラグインSprite3d
0以前の記事で、enchant.jsで回転軸を変えるのには成功したのですが、回転方向を変えるrotateXYZは上手く行きませんでした。
というのも、Spriteオブジェクトではレンダリングされるたびに、スタイルを書き換えているのですが、これのせいで別でスタイルを変えても上書きされてしまってたのです。
最初はSpriteのイベントリスナーを弄る予定だったのですが、無名関数で登録されていて、変更が困難だったので、新しくSprite3Dというクラスを作成しました。
enchant.jsでオブジェクトの回転軸を変更するプラグイン
0enchant.jsでは回転機能がサポートされています。
しかし、これが地味に中心軸のみの設定で、別の座標を軸に回転させることができません。
回転軸の変更にはtransform-originというCSSプロパティを設定すればいいのですが、それを簡単に設定するプラグインを作りました。
enchant.jsで加速度センサーを使う
09leapで加速度センサーを使ったゲームが投稿されていました。
すごいなどうやってやっているのだろう?と調べてみると、iOS4.2から加速度センサーをjavascriptで取得できるAPIが実装されていたとのこと。それはすごく面白そうということで、enchant.jsで使えるように色々調べてみました。
enchant.jsの画面を好きな場所に配置する。
0enchant.jsでゲームを作って公開するとき、画面が左上に固定されてしまいます。
これはenchant.jsが最初にbody要素の直下にenchant-stageというDIV要素を作るので、レイアウトの変更は難しいのかなー?
とおもってソースを覗いてみると、どうもすでにenchant-stageというIDの要素がある場合は、そこに表示してくれるようです。
(さらに…)
enchant.jsで角度と距離で衝突判定をするプラグイン
0enchant.jsには衝突判定に、短形同士で判定するintersectと、直線距離で判定するwithinがあります。
withinを使うと自身を中心に円上にある距離内でヒットした場合は判定できるのですが、ゲームを作っているうちに、自分が向いている方向の前方45度のみで衝突判定を行いたい場合がありました。
というわけで、衝突判定を円状ではなく弧状で判定できるarc_withinメソッドを追加できるプラグインを作成しました。
ダウンロード
使い方。
index.htmlのgame.jsの前に
<script type="text/javascript" src="arc_within.js"></script>
を追加
衝突判定を行いたい箇所で、withinの代わりに
this.arc_within(衝突を判定するオブジェクト,衝突までの最大の距離,角度)
角度は自身のrotationが0の時は真上を起点として、±(角度/2)度の範囲で判定します。
メモ:enchant.jsのよく使うイベントリスナー
0enchant.jsは色々なイベントを追加できるのですが、ドキュメントがまだ少ないので適当にまとめてメモ
load
Gameをロードするときにトリガーする。初期設定用?
progress
画像を一枚プリロードするたびに起動する。画像が多い時にローディング画面を出すのにいいかも?
enterframe
フレームの開始時にトリガーする。
多分もっとも使う。
added
addChild等でノードを追加したときにトリガーする。配置したときの初期設定に便利。
removed
removeChild等でノードを削除したときにトリガーする。削除した後に何か処理したいときに便利。
touchstart
オブジェクトをタッチ(またはクリック)したときにトリガーする。割と頻度高め。
touchmove
オブジェクトをタッチしたまま移動したとき(ドラッグ)にトリガーする。
ドラッグ処理に使う
touchend
オブジェクトからタッチ(クリック)が離されたときにトリガーする。
ドラッグ処理の終わりに使う。
leftbuttondown&leftbuttonup
カーソルキーの左が押されたとき&離したときにトリガー。
同上で上下右ABボタンもある。たいていの場合game.input.leftで事足りる。
Scene関連は使ったことがないのでまだよくわからないです。
GWにいろいろenchant.jsのゲームを作りました。
09leapがGWの期間限定で大会を開いていたので、いろいろゲームを作ってみました。
ミニゲームなら三時間程度で一本できるのでいいですね。作りが荒いですが、暇つぶしに遊んで言ってみてください。
作品集
イロイッカイズツ
色の少ない順番にボタンを押していくゲームです。時間内に多く点数を稼ぎましょう。
ただし、間違った色をタップすると減点されるので注意。
果物仕分け人
フルーツをタップして、そのまま下の名前の書かれたボックスまでスライドしていって、そこで離してください。
全部の果物を仕分けられたらクリアーです。
そんな餌に釣られクマ
タップした位置にリンゴが置かれます。クマたちはそのリンゴめがけて移動しますので、りんごを食べられないようにうまく誘導して
ハートを回収しましょう。クマが外に逃げてもゲームオーバーです。
おはじき
おはじきです。青いおはじきをタップして、そのままスライドして狙いをさだめて離しましょう。
あまりスライドさせすぎると画面外に飛んでいってしまうので注意。
ブロック崩され
ブロックのほうを操作して玉をよけていってください。
出来るだけブロックを崩されないように玉をよけましょう。
すべてiphoneで確認しています。可能な限りiphoneでも操作しやすいように、タップだけで操作できるゲームをメインに作りました。
enchant.jsによる大会
0現在 http://9leap.net/ でオープン記念・期間限定コンテスト「9leap 9Days Challenge!」というのをやっています。
どうも本来は25歳未満の応募資格があるようなのですが、GW中のみ年齢制限不問で、しかも商品にiPad2がもらえるらしいです。
というわけで突貫で作ってiPadなんかねらっちゃってます。
週末にもう2,3個ミニゲーム作りたいな。