ラベル enchant/tmlib の投稿を表示しています。 すべての投稿を表示
ラベル enchant/tmlib の投稿を表示しています。 すべての投稿を表示

2014年10月7日火曜日

gl.enchant.js

私の作っているゲーム作成フレームワーク「enforce」にWebGLを使ってゲームを作れるように「gl.enchant.js」を組み込もうとしているが、このgl.enchant.jsによる3Dオブジェクト同士の当たり判定がうまいこと使えない。


例えば半径3.0の球(Sphere)同士の当たり判定を行っても、半径1.0の球として判定されてしまう。


この話をすると「そういう時は、コライダー*1というのを用意して(ry」という話がよく出るのだが…………私の困っているのはコライダーでの話なんですよね(汗)


 なので、実際にゲームに使えるオブジェクトのサイズというのが、すべてサイズが「1.0」のものだけになってしまう。


これはプリミティブだけではなく、Colladaデータでも同様になっている感じ。


gl.enchant.jsのソースを覗いているが、これを修正するのは………キツそうだなぁ(汗)


*1:ゲーム等において画面上に表示されている絵(ビジュアル)とは別に当たり判定を行う専用のオブジェクトのこと(らしい)



2014年9月28日日曜日

enforceにbox2d

enforceのenchant版のほうで、box2dを使った物理演算スプライトを使えるようにした。


とは言っても、使う時は通常のスプライト生成と変わりはなく、生成する時のオプションで「rigid: true」を渡すと物理演算スプライトになる。


サンプルを作った。


カーソルキーで白いクマが動いて、Zキーかスペースバーで茶色いクマが生成される。


物理演算されているので、ぶつかると跳ね返るし、回転する。


2014年9月12日金曜日

enchantとtmlibのタッチイベント

enchant.jsと、tmlib.jsのスプライトでは、発生するタッチイベント名が違う。


 


enchant.js


タッチ開始:ontouchstart


移動:ontouchmove


終了:ontouchend


中止:ontouchcancel


 


【例】



sprite.ontouchstart = (e)->


    console.log('x='+e.x+', y='+e.y) 



 


 


tmlib.js


タッチ開始:onpointingstart


移動:onpointingmove


終了:onpointingend


中止:onpointingcancel


 


【例】 



sprite.onpointingstart =(e)->


    console.log('x='+e.app.pointing.x+'y='+e.app.pointing.y)



 


2014年9月2日火曜日

tmlib0.3で音楽再生

tmlib0.3では、それまでの0.2までとは音楽の再生方法が変わっているようなので備忘録。


アセットリストに「sound」という名前で登録されているファイルを再生する場合



org = tm.asset.Manager.get('sound')


sound = org.clone()


sound.volume = 1.0


sound.play()


sound.loop = false



 


cloneしてからでないと重ねての再生が出来ないので注意。


QMK開発環境構築メモ

## Ubuntuコンテナイメージ取得 ```bash docker pull ubuntu:24.04 ``` --- ## コンテナ作成 ```bash docker run -it --name qmk_dev -v [マウント元ディレクトリ]:[マウント先ディレクトリ]...