River Rescue

24 views
Skip to first unread message

たろサ

unread,
Sep 23, 2011, 3:07:00 PM9/23/11
to luarida-...@googlegroups.com
 AXISさん、

 たろサです。
 こんにちは。

 River Rescueですが、私のXPERIAだけの症状かもしれませんが、最初、川に入
るときに、左に5キャラ分くらいズレて、岩にぶつかると、船がクルクル回る場
所が右に5キャラ分くらいズレます。

 もし、LifeTouch NOTEで正常に動いているのであれば、Luaridaのバグかもし
れません。よければ、状況を教えてください。


 よろしくお願いします。 

--
山本三七男 (Minao Yamamoto) ---------------- ハンドル:たろサ -----
E-Mail: taro...@gmail.com

AXIS

unread,
Sep 23, 2011, 8:26:52 PM9/23/11
to Luarida Fun Club
たろサさん

ご確認どうもありがとうございます。
うーん、やっぱりそうなってしまいましたか。。。

実は固定幅フォントを期待した作りになっています。
最初はそうならないように細かく座標を指定したのですが、
描画速度が得られなかったので、あきらめてしまいました。
当初まさか公開するとは考えていなかったので、
エイヤで作っちゃったのがいけなかったですね。
明らかな手抜きです。

これを回避するには、文字描画ではなく画像にする、
というか、間違いなくそれが正攻法だと思いますが、
私はオジサンなので、ついついアスキーキャラを動かしたく
なってしまうのです(笑)。

一旦公開を取り下げましょうかね。
固定幅じゃないほうが多いのかも知れないですし。

AXIS

unread,
Sep 23, 2011, 9:35:46 PM9/23/11
to Luarida Fun Club
たろサさん

折角ブログのほうに大々的に(?)ご紹介いただいたのに取り下げるのも
これまた失礼と思い直し、暫定対応版を上げ直しました。
といってもキャラを差し替えただけです(笑)。スミマセン。
少なくともXPERIAではマシになったのではないでしょうか・・・?
LifeTouch NOTEでは確認のしようがないので、
ご確認いただけると幸いです。

しかし、河岸が見づらくなったので難易度が上がったかも知れません。
大体1000点前後の争いになるかなあと思っているのですが。。。

たろサ

unread,
Sep 23, 2011, 11:03:30 PM9/23/11
to luarida-...@googlegroups.com
 たろサです。

> 実は固定幅フォントを期待した作りになっています。
> 最初はそうならないように細かく座標を指定したのですが、
> 描画速度が得られなかったので、あきらめてしまいました。

 描画速度・・すいません。
 Androidって、機種によって標準フォントが違うんでしょうか?固定フォントとというのは、余り気にしていませんでした。

 下記が、私が普段使うスクロールプログラムです。ご参考になれば。
 draw系命令は内部でputflushするので、draw系命令を最後に入れると、putflushが省略できます。
------------------------------------------
--スクロールするテキスト表示
-- 文字, サイズ, 色, 背景色
------------------------------------------
function print(...)
local t={...}
local str = t[1]
if( str==nil )then str = "" end
local fontsize = t[2]
if( fontsize==nil )then fontsize = 18 end
local fcolor = t[3]
if( fcolor==nil )then fcolor = color(0,0,0) end
local bcolor = t[4]
if( bcolor==nil )then bcolor = color(255,255,255) end
--一度、見えないところにテキストを書いて、改行数を求める
local sc = canvas.putTextBox( str, 0, Gheight+1, fontsize, fcolor, Gwide )
--画面の絵をワークエリアに取り込みます
canvas.getg( 0, fontsize*sc, Gwide-1, Gheight-1, 0, fontsize*sc, Gwide-1, Gheight-1 )
--取り込んだ画面をY座標をずらして描き戻します。
canvas.putg( 0, 0, Gwide-1, Gheight-fontsize*sc-1, 0, fontsize*sc, Gwide-1, Gheight-1 )
--書き出す部分をバックカラーで塗り潰します
canvas.putRect( 0, Gheight-fontsize*sc-1, Gwide, Gheight, bcolor, 1 )
--スクロールしたところにテキストを書きます
canvas.drawTextBox( str, 0, Gheight-fontsize*sc, fontsize, fcolor, Gwide )
end

> 当初まさか公開するとは考えていなかったので、
> エイヤで作っちゃったのがいけなかったですね。
> 明らかな手抜きです。

 いえいえ、公開していただいてありがとうございます。

--

sin cat

unread,
Sep 23, 2011, 11:09:06 PM9/23/11
to luarida-...@googlegroups.com
>  Androidって、機種によって標準フォントが違うんでしょうか?固定フォントとというのは、余り気にしていませんでした。

そういえばAndroidのフォント切り替えはメーカカスタムなので、標準フォントを期待・・・は期待はずれになると思います。
IS01もSharpが独自に差し替えててAndroidアプリでもレイアウトで文字がはみ出したりします。


2011年9月24日12:03 たろサ <taro...@gmail.com>:

> --
> このグループにメールで投稿: luarida-...@googlegroups.com
> このグループから退会する: luarida-fun-cl...@googlegroups.com
> その他のオプションについては、次の URL からグループにアクセスしてくださ
> い。 http://groups.google.com/group/luarida-fun-club?hl=ja?hl=ja
>

たろサ

unread,
Sep 23, 2011, 11:18:57 PM9/23/11
to luarida-...@googlegroups.com
 たろサです。

(2011/09/24 10:35), AXIS wrote:
> たろサさん
>
> 折角ブログのほうに大々的に(?)ご紹介いただいたのに取り下げるのも
> これまた失礼と思い直し、暫定対応版を上げ直しました。
> といってもキャラを差し替えただけです(笑)。スミマセン。
> 少なくともXPERIAではマシになったのではないでしょうか・・・?

 おお、感動です。こんな動きだったのですね。
 今まで、船がずっと左右にブレながら走っていました。これは意図した動きで
はなかったのですね。フォントピッチズレのせいで船が左右ブレしていたのですね。
 何かすごくゲームが簡単になった気がします。

 すいません、ブログもいったん取り下げてもいいですが、どうしましょうか。
嬉しくて、つい、ブログに書いてしまいました。


> LifeTouch NOTEでは確認のしようがないので、
> ご確認いただけると幸いです。
>
> しかし、河岸が見づらくなったので難易度が上がったかも知れません。
> 大体1000点前後の争いになるかなあと思っているのですが。。。
>

 1000点は難しいです。
 XPERIAの画面を添付しました。

 いろいろとお手数をおかけしまして、すいませんでした。

device.png

たろサ

unread,
Sep 24, 2011, 12:26:08 AM9/24/11
to luarida-...@googlegroups.com
 たろサです。

 描画が多少速くならないかと、失礼ながらソースをいじってみました。

repeat
psec=system.getSec()+0.04
--canvas.putRect(0,0,559,15,color(0,32,96),1)
...省略
-- for vy=1,30,1 do
-- line=""
-- for vx=1,35,1 do
-- line=line..vram[vx][vy]
-- end
-- canvas.putText(line,0,(vy-1)*16,16,color(146,208,80))
-- end
canvas.getg( 0, 0, 559, 479-16, 0, 0, 559, 479-16 )
canvas.putg( 0, 16, 559, 479, 0, 0, 559, 479-16 )
canvas.putRect(0,0,559,15,color(0,32,96),1)
line=""
for vx=1,35,1 do line=line..vram[vx][1] end
canvas.putText(line,0,0,16,color(146,208,80))
line=""
for vx=1,35,1 do line=line..vram[vx][21] end
canvas.putText(line,0,20*16,16,color(146,208,80))
line=""
for vx=1,35,1 do line=line..vram[vx][22] end
canvas.putText(line,0,21*16,16,color(146,208,80))
...省略
canvas.drawText(string.format("%6d",score),560,16,20,color(255,255,255))
...省略
--canvas.putflush()
while psec>system.getSec() do
--Wait 40ms
end
until gameover==1

 とりあえず、putText()が3回になりました。

 文字だからこれだけ速く動くんですね。
 逆に、文字だとこんなに速く動くって考えて無かったです。
 グラフィックでやろうとすると、putの回数が増えるので遅くなりますね。

 勉強になります。

たろサ

unread,
Sep 24, 2011, 12:29:22 AM9/24/11
to luarida-...@googlegroups.com
 たろサです。

 忘れていました。

--initialize
 system.setScreen(0)
 canvas.setMainBmp(640,480)
 canvas.setWorkBmp(640,480) --追加しました

AXIS

unread,
Sep 24, 2011, 4:57:39 AM9/24/11
to Luarida Fun Club
たろサさん

拙作のソースまで見ていただき、お手数おかけしました。
なるほど、ワーク画面を利用すればまだまだ最適化できるということですね。
参考になります。ありがとうございました。

XPERIAの画面を見る限り、本日打ったフォント対策?は一応狙い通りでした。
本来、機種依存部分で挙動が変わるようなものは公表に値しないかと思いますが、
これに触発されてLuaridaでリアルタイムゲームを作ってみようと考える人の
悪い見本としての価値くらいはあるでしょうから、これでもう完成版にします。

というわけで、おジャマでなければこのままブログに乗せておいていただけませんか。
私自身、この手のものを紹介する場を持っていませんので、助かります。

> おお、感動です。こんな動きだったのですね。

船がブレて走っていたとは・・・そりゃ難しすぎです(笑)

あと、あらためて思ったのはXPERIAの画面サイズになると、かなり厳しそうってことです。
フォントの件もそうでしたが、LifeTouch NOTEだけで考えてしまうと、
ユーザーアンフレンドリなものしかできないなあと。
Reply all
Reply to author
Forward
0 new messages