ptextの文字が表示されないバグ?
ptextにバグっぽいのを発見
overwrite=true
にすると、同じ座標のimageの上にテキストが表示できなくなります。
[image layer="11" name="outmessage" x="1660" y="105" width="200" height="100" storage="hukidashi.png" time=0 wait=false ]
[ptext layer="11" name="outmessage" x="1660" y="105" size="24" width="200" color=0x1a1a1a text='めっせーじ' overwrite=true time=1000 wait=false ]
imageで吹き出しの絵を表示させて、その上にptextで文字を表示させようとしたのですが、なぜか文字だけが表示されず・・?
おかしいなと思って調べてたら、overwrite=falseにすることで表示されました。
なんなんでしょうこれ・・??
デフォルトはfalseになってるので、あんまり使う人がいない命令なのかもしれませんが、備忘録として。
ティラノでゲームを作り続けてるとセーブができなくなる件
ティラノライダーでゲームを作っているうちにトラブル発生。
ゲームのセーブ欄は5つあるのに4つしかセーブできない?
変だな?
などと思ってたらついに一つもセーブできなくなりました。
原因はwikiを拝見して分かりました。webstorageがいっぱいになっていたのです。
webstorageをクリアするため、該当の場所を開いてみるとフォルダやファイルがいっぱい・・。wikiに書かれた情報と現在の環境と違うような感じもします。
フォルダごと消しても大丈夫な感じもしますが、なんか不安なので、自分で絞り込んでみました。
場所はここ。
C:\Users\ユーザー名\AppData\Local\TyranoRider\Local Storage
ティラノスクリプトのフォルダもありましたが、ティラノライダーのほうです。(ティラノスクリプトのフォルダは、パッケージングしたゲームのセーブデータでしょうか?)
消すファイルはこれ。
file__0.localstorage
file__0.localstorage-journal
この2つを消すとうまい具合にリセットされるようです。うちの環境ではファイルが10mbほどになって、そこでセーブできなくなっていました。
このブログは個人的備忘録なので、もし参考にするときにはご自身での検証をお願いいたします。
追記
以上はconfigsave=webstorageにした場合の話ですが、configsave=fileにした場合は、セーブデータが別な場所にできます。
ゲームをパッケージングした時にはゲーム本体.exeと同じフォルダ内にセーブデータができるのでわかりやすいのですが、ティラノライダーでゲームを製作中には、どこにあるかよくわからず困りました。
結論から言うと、ティラノライダーのフォルダ内(tyranorider.exe があるところ)に「ゲーム名.sav」というファイルができます。これがセーブデータです。(グローバル変数用っぽい sf.sav と data.savの2つ)
config.tjsをいじってセーブスロットの数を増やしたときには、すでにあるセーブデータを消去しないとスロット数の変更が反映しないので、このセーブデータを消去する手順が必要になります。
ライダーの「パッケージその他」タブから「セーブデータの全消去」をやってもなぜかセーブデータは消えないので、このsavファイルを直接消しました。
↓configsaveとはなんぞや?というときに参考になるかもの記事
ティラノのセーブ仕様にバグがあるのかも
・セーブの仕様にバグっぽいのを見つけたので書いておきます。(ver472)
config.tjsでこういった設定が用意されています。
// ◆ セーブの方式を指定
//注意:途中でセーブ方式を変更することはできません。
//webstorage :WebStorage領域に保存します。あらゆる環境で利用できますが、セーブデータが大きくなりすぎた場合に保存できなくなります
//webstorage_compress :圧縮を施したうえで、WebStorage領域に保存します。セーブ・ロードに時間がかかりますが、保存できるデータ量は大きく増加します
//file : セーブデータを sav ファイルとして書き出します。この場合PCゲームにしか利用できません。セーブデータを移動したり、容量制限の心配が不要です。;configSave = webstorage
説明通り、ティラノライダーでゲーム制作中にセーブ方式を変更すると、セーブデータが消えるのが確認できます。
つまり、ゲームをリリース後にアプデでconfig.tjsを書き換え、セーブ方式を変更したりすると、それまでのセーブデータが使えなくなります。
ということは、ゲームのセーブ方式は、リリース後のアプデで絶対に変えてはダメ・・!と思います。
セーブ方式はデフォルトでwebstorageに設定されてるので、ここをよく見ないでPC用ゲームを作ると後悔します。(ユーザー視点で見ると、セーブデータがどこにあるかよく分からないものになるからです。引っ越しとか大変ですよね)
ところがです!
windowsアプリ用としてゲームをパッケージングすると、この ;configSave = webstorage の設定は無視される模様。
;configSave = webstorageにしていても、ゲームフォルダの中にsavファイルが作られています。
ゲーム名_sf.sav
ゲーム名_tyrano_data.sav
という、グローバル変数用と、その他用の2種類のsavファイルです。
やった~!webstorageにしてPC用ゲームリリースしちゃったけど助かった~!
と一瞬思いますが、
さらに、ところがです!
パッチを作ってゲームをアップデートすると、;configSave = webstorageの設定が復活して、(つまり、本来の設定通りに webstorageにセーブデータを読み書きするようになり)、savファイルが使い物にならなくなります!
パッチの中にconfig.tjsが入っているときだけそうなるようですが、じゃあconfig.tjsをパッチから抜けばいいのかというと、config.tjsで ;game_version = というバージョン管理をやっているため、安易に抜くのもよくなさそうです。
ここで困ってしまいますが、結論から言うと、
アップデートパッチではconfig.tjsを
;configSave = file
にしておくことで解決できるときがあります。
これによって、すでにゲームフォルダ内に出力されているsavファイルを参照するようになるときがあります。なぜ書き方が曖昧かというと、解決できないときもあるからです。原因はよく分かりません・・
・まとめ
PC用ゲームを作るときには、config.tjsを ;configSave = file にしておくこと。
うっかり;configSave = webstorage でPC用ゲームをリリースしてしまったら、アップデートパッチをリリースするときに、;configSave = file にしておくと、解決するときもある。(しないときもあるので信用はできない)
なお、このブログは自分用の備忘録なので、参考にするときにはご自身での検証をお願いいたします。筆者の勘違いの場合もありますので・・。