ICUの演習WiiSnow・背景の高速化

9 views
Skip to first unread message

shi...@mail.com

unread,
Oct 21, 2009, 8:09:55 PM10/21/09
to wiir...@googlegroups.com, William Akihiro Sayama
しらいです
(Cc:ボランティアスタッフのウィリアム君)

ICUの授業『コンピューターゲーム』の演習で、木村さんが作ったゲームをベースに『WiiSnow』というシンプルなゲームをWiiFlash経由でWiiremote化しています。
(2時間の講義2-3回の内容)

<講義資料置き場>
http://akihiko.shirai.as/projects/lecture/ICU2009/
週末のワークショップでもGr3,Gr4はこの内容でいこうと考えています。

木村さん、
背景画像の高速化については、ロードするタイミングを間違えなければ、それが最高速だとは思います。が、
ウィリアム君、関連のソースコードをグループ宛に送ってもらえませんか?みんながはまるところかもしれませんので。


----- 元のメッセージ -----
差出人: William Akihiro Sayama
送信日時: 2009年10月22日 木曜日 8:25
件名: WiiSnow

白井教授

昨日急遽バイトが入ってしまったため、思ったよりProcessingの方に力を入れることができませんでした。
WiiSnowは一通りプログラムをちょくちょくいじりながら検証し、理解したつもりでいます。dx、dyを使ったBallとプレイヤーの位置特定は自分では思いつかないですが(汗)

ちなみにこのプログラムjpgのバックグラウンドをつけたらものすごく遅くなりますが、改善することは可能ですか?

今日はまたバイトですが、家に着き次第、Gameoverの画面をいじくってみます。


William Lidderdale

Hidetaka KIMURA

unread,
Oct 21, 2009, 11:49:56 PM10/21/09
to wiir...@googlegroups.com, William Akihiro Sayama
木村です。

背景画像を表示することで重くなる問題ですが、
それだけで重いということは考えにくいですね。
プラットフォーム固有の問題に思えます。

他の環境でも重いなら対策したほうがいいと思いますが、
いずれにしろ再現できる環境がほしいところです。

-------
木村秀敬 - hide....@gmail.com

William Akihiro Sayama

unread,
Oct 21, 2009, 11:55:09 PM10/21/09
to wiir...@googlegroups.com
白井さん

バックグラウンドは以下のサイトにある

http://processing.org/reference/background_.html
を参考にして追加しました。

ソースコードは
PImage b;
b = loadImage("urara.jpg");
b.resize(width, height) // <---画像が画面のサイズと同じではないとエラーが出るので追加しました
background(b);
( WiiSnow に入っている background(200) というコードを上記のコードと入れ替えています)  

白井さん、これでよろしいでしょうか?


William Lidderdale



2009年10月22日9:09 <shi...@mail.com>:

Hidetaka KIMURA

unread,
Oct 22, 2009, 12:06:55 AM10/22/09
to William Akihiro Sayama, wiir...@googlegroups.com
ウィリアムさん、

はじめまして、WiiRemote本のProcessing部分を担当しました木村です。
ボランティアとしてワークショップに参加していただけるとのことで、
今後とのよろしくお願いします。

ソース全体が無いので推測になりますが、
loadImageを描画のたびに呼んでいるのではないでしょうか。
それだと非常に重くなります。

最新のソース一式を添付しますので、
これで試してみてください。


2009/10/22 William Akihiro Sayama <will.a...@gmail.com>:
-------
木村秀敬 - hide....@gmail.com
dcexpo2009a.zip

William Akihiro Sayama

unread,
Oct 22, 2009, 7:46:06 AM10/22/09
to Hidetaka KIMURA, wiir...@googlegroups.com
木村さん

はじめまして
僕からもよろしくお願いします!

実は試しにvoid drawに入れてみたのですが、ボールが落ちてくるときに画像にボールの跡がついてしまって(一回しか描画してないため)失敗しましたので、毎回描画しなくてはいけないのかなと思ってしまいました。

木村さんのソースコードを拝見させていただきます。ありがとうございます。


William Lidderdale


2009年10月22日13:06 Hidetaka KIMURA <hide....@gmail.com>:

dandelion

unread,
Oct 22, 2009, 10:17:12 AM10/22/09
to wiir...@googlegroups.com, Hidetaka KIMURA
ウィリアムさん

はじめまして,ボランティアスタッフとして
一緒に参加させて頂く吉村です.

帰宅してからメールの流れにようやく追いつきました。。。

ソースコード読ませて頂きました.>木村さん
処理高速化の件ですが,void draw()でsin, cosを
毎回計算している下記の箇所もボトルネックな気がします.

> float cosa = cos(angle);
> float sina = sin(angle);

対処法としてはベタですがvoid setup()であらかじめsin, cosを
必要な精度分だけ計算して配列に入れておき,
void draw()でsin, cosの値が必要になったら,その配列の値を
参照するようにすれば多少速度改善できそうです.

速度向上がさらに必要な場合は参考下さい.
以上です.

2009年10月22日20:46 William Akihiro Sayama <will.a...@gmail.com>:
---------------------------------------------------------------
Yasuhiro YOSHIMURA

mail: dandel...@gmail.com
blog: http://www.atinfinity.info/blog/
twitter: http://twitter.com/dandelion1124
---------------------------------------------------------------
Reply all
Reply to author
Forward
0 new messages