Androidでの相対座標

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
taskerd

Androidでの相対座標

#1

投稿記事 by taskerd » 11年前

現在Androidでゲームを作成しているのですが、座標の指定が機種によって変わってしまうことに気づきました。

例えば画像を指定した位置に描画したいときに今までは

image.createScaledBitmap(image,100,200,false);

というようにしていました。
しかし、これでは、機種によって画像が描画される位置が変わってしまい思ったとおりの動作をしてくれません。

どうすればよいのかまったく分からず、質問してしまいました。

検索をかけると、絶対座標ではなく、相対座標で指定するなど書かれていますが、肝心の絶対座標から相対座標に変換する方法が書かれていません。

どうすれば、機種に依存することなく、正しい位置に描画されるのでしょうか?

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: Androidでの相対座標

#2

投稿記事 by ISLe » 11年前

ゲーム画面が、左上(あるいは左下)の隅に寄ってしまうので、解像度に依らずデバイス画面全体に表示したい、ということですか?

Bitmap#createScaledBitmapは描画命令ではないですし、状況が分かりません。
↓この部分がどういう状況なのかを具体的に説明していただけますか。
Androidでの相対座標 さんが書きました:しかし、これでは、機種によって画像が描画される位置が変わってしまい思ったとおりの動作をしてくれません。

tasukerd

Re: Androidでの相対座標

#3

投稿記事 by tasukerd » 11年前

ご返信有難うございます。

image.createScaledBitmap(image,100,200,false);

ではなく

image.drawBitmap(image,100,200,paint); 

でした。申し訳ございません。

>>しかし、これでは、機種によって画像が描画される位置が変わってしまい思ったとおりの動作をしてくれません。

この部分ですが、

普通に背景を描画するだけでは、右、下が黒くなってしまうので、 bitmap.createScaledBitmap() を使用して、
背景を拡大してフルスクリーンで描画しました。

そして、背景画像の「電球がある箇所」に画像を描画させました。
すると、 機種によって、背景画像が拡大したり縮小したりするので、「電球がある箇所」より若干ずれて描画されてしまいます。
このずれをなくしたいのですが、どうすればよいでしょうか?

例(10X3)
   ↓適切な位置
・・・・●・・・・・
・・・・・・・・・・
・・・・・・・・・・

(12X4)
     ↓ずれてしまう
・・・・●・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
・・・・・・・・・・・・
●=画像 ↓=電球の位置

説明不足で申し訳ございませんでした。

tasukerd

Re: Androidでの相対座標

#4

投稿記事 by tasukerd » 11年前

すみません自己解決しました。

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: Androidでの相対座標

#5

投稿記事 by ISLe » 11年前

解決したときはどのようにして解決したのかを書いてください。


Bitmapに画像が読み込まれるとき、端末解像度に合わせて勝手に拡大縮小されます。

res/drawable-nodpiに置いた画像ファイルは常に自動的に拡大縮小されません。

BitmapFactory.Optionsを引数に取るBitmapFactory.decodeResourceを使い、inScaledをfalseに設定したBitmapFactory.Optionsを与えると一時的に無効化できます。

閉鎖

“C言語何でも質問掲示板” へ戻る