Volcanoscar / emo-framework

Automatically exported from code.google.com/p/emo-framework
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

スプライトにスケールをかけた場合のcontainsについて #3

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
スプライトでボタンを作ろうと思ったのですが画像が小さ��
�ったので
スケールを掛けました。その場合containsで押されたか判定す
ると
スケール分が考慮されておらず元の画像の範囲でしか押せ��
�せんでした。
containsがスケールを考慮しないのは仕様となりますか?

Original issue reported on code.google.com by sat...@gmail.com on 31 Aug 2011 at 3:30

GoogleCodeExporter commented 9 years ago
そうですね、contains は scale と rotate 
を考慮しません。collidesWith も同様です。

Original comment by infosia...@gmail.com on 31 Aug 2011 at 3:59

GoogleCodeExporter commented 9 years ago
textのほうはスケールを掛けてもうまくタッチ出来たのでス�
��ライトの
問題かと思いましたが仕様という事で了解しました。
ちなみにtextのほうはSTARTと拡大表示させボタンとして使用��
�せてもらっています。

Original comment by sat...@gmail.com on 31 Aug 2011 at 6:08

GoogleCodeExporter commented 9 years ago
TextSprite も同様に scale と rotate 
を考慮していないのですが、うまくいきましたか?
そちらの方が想定外の動作になるので、サンプルコードを��
�けますか?

Original comment by infosia...@gmail.com on 31 Aug 2011 at 7:09

GoogleCodeExporter commented 9 years ago
このコードは本来ブロックのスプライトをタッチするとText�
��変化するものですが
Textをタッチするようにしてあります。
iPhoneのエミュでしか動作テストはしてません。
すこし分かったのはscaleやsetTextの実行タイミング次第でう��
�くいったり
いかなかったりします。また時々moveが反映されない時もあ�
��ます。
現在Lineを使うとBADアクセスが出る問題が発生したためそち�
��を調査中なので
この件に関しては暫くこちらで調査する時間が取れません��
�

Original comment by sat...@gmail.com on 31 Aug 2011 at 8:31

Attachments:

GoogleCodeExporter commented 9 years ago
Line使用時のBADアクセスはLineが原因ではなくonDrawFrame内でText
Spriteを生成し
load()を使用していたのが引き金になっていたようです。onLoa
dに移して解決しました。
念のため報告しておきます。

Original comment by sat...@gmail.com on 31 Aug 2011 at 9:26

GoogleCodeExporter commented 9 years ago
確認しました。TextSprite の contains は setText と scale 
の実行順序によって、scale 
が考慮されてしまう場合があります。ここは修正し、scale 
を考慮しない仕様に統一します。また現在 TextSprite/MapSprite 
の getWidth, getHeight は scale 
を考慮するようになってしまっていましたので、getScaledWidth
/Height 
を実行するとさらに無効な幅/高さが返ることになっていま�
��た。ちょっと影響範囲も大きそうなのでもう少し調べてか
ら修正します。

Original comment by infosia...@gmail.com on 31 Aug 2011 at 10:12

GoogleCodeExporter commented 9 years ago
TextSprite の contains と collidesWith が scale 
を考慮しないようにしました。getWidth/getHeight 
が間違った値を返していたものの、getScaledWidth/Height 
は正しい値を返していました。MapSprite は元々 scale 
非対応なので影響がありません。

iOS 版の更新は libs/emo/*.m, libs/emo/*.h を更新してください。 

http://code.google.com/p/emo-framework/source/detail?r=1158

大きな修正なので近いうちにメンテナンスリリースを出そ��
�と思います。

Original comment by infosia...@gmail.com on 31 Aug 2011 at 11:01

GoogleCodeExporter commented 9 years ago
スプライトの load で落ちる件のコメントは下記 Issue 
の方に移動しておきました。

http://code.google.com/p/emo-framework/issues/detail?id=2#c5

Original comment by infosia...@gmail.com on 31 Aug 2011 at 10:35

GoogleCodeExporter commented 9 years ago
>iOS 版の更新は libs/emo/*.m, libs/emo/*.h を更新してください。 

更新してみました。containsがscale非対応になった事を確認し�
��した。
scale対応containsが欲しい場合もあるのでその場合はcontainsを
オーバーライドしてこちらで対応させる事にします。

Original comment by sat...@gmail.com on 1 Sep 2011 at 1:20

GoogleCodeExporter commented 9 years ago
確認ありがとうございます、新しいバージョンをリリース��
�ました。

Original comment by infosia...@gmail.com on 1 Sep 2011 at 2:41