2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

俺の日記帳 第二冊目

1 :login:Penguin:2007/05/03(木) 12:29:53 ID:CbgoHqlv.net
批判は受け付けない。

241 :login:Penguin:2008/06/25(水) 00:53:52 ID:/vl90Pvn.net
なぜか日本語を10文字以上書くと空のメッセージボックスが出て
反応が無くなってしまう
何が原因なのかを探るため、まずはLuaから調べる事にした
Luaのドキュメントを読むが2章でうんざりしたので
気晴らしに動画を流しながら読むことにした
一通り眺めた後、ググったサンプルコードを元にして
LuaからCの関数を呼び出すスクリプトを書き、動いた
これを元にKQの文字表示の処理を真似てプログラムを書くことにした

関数を追いかけて書くうちについに問題の原因がわかった
書き込んだ文字列は最終的に4行の文字列を格納するmsgbufにコピーされる
この際に英単語が改行で分割されないようにする仕組みがあった
英語の場合は単語がスペースで区切られているのでいいが
日本語の場合は全てつながっている
そのため日本語一文全部が単語と認識されてしまっておかしくなっていた

解決するには関数を書く必要がある
単に一行の文字列を複数行に分けてコピーするだけだから
そんなに大変ではないと思ったがユニコードが気がかりだった
ユニコードは今まで面倒臭そうで避けてきた
とりあえず明日にしよう

242 :login:Penguin:2008/06/28(土) 09:16:20 ID:TacoorJh.net
とにかく日本語対応の関数に書き直すには、
utf8の一文字の先頭バイトが判断できればいい
ググってみるとさくっとわかった
一番気になっていた事が簡単にわかってしまったのでテンションがあがる
元となる関数はスペースをチェックして改行の際の単語分割を避けていた
ならそれをutf8の先頭バイトをチェックするようにすれば文字コードの分割を避けられるだろう
そして与えられた文字列がutf8か否か判別する関数を作り振り分ける事にした
ついでに一行の最大文字数も上げておいた
出来上がった関数をKQのソースに移してコンパイル、おk
複数行の日本語も問題なく表示される
しかし日本語を表示する吹き出し部分の大きさがまったくあわない
そこで簡単な先頭バイトの数を数えるだけのutf8対応のstrlenを作成し置き換え
こんどはきっちりうまく表示された
その後同じようにあちこちをutf8対応の関数に置き換えていく
翻訳しながらプレイしてバグ取りでもしていこう
エキサイト大先生出番でやんす

243 :login:Penguin:2008/06/28(土) 09:33:33 ID:TacoorJh.net
エキサイト大先生に一括翻訳してもらおうかと思ったが
よく考えたらフォントがひらがなだけなので、漢字もカタカナも使えない
それに直訳はやっぱり意味不明だ
結局自分で翻訳する事にしたが、かなりの意訳になってしまう
それに自分の手打ちフォントなだけあって見にくい読みづらい
なんとなく、マザーのどせいさんのフォントを思い出す
フォントを手直しすることにし、上下左右のマージンを合うようにするが難しい
ついでにカタカナのフォントも作成する
動画を流しながらぼけーっとぽちぽちドットを打ち出来上がった
少し慣れてきた気もする
これでひらがなとカタカナが表示できるようになった
こうなったら漢字のフォントも欲しくなるが、それはさすがに無謀か
もう一つ気になることがある、glyph_lookupだ
文字一つ表示するたびにglyph_lookupの中から対応ユニコードをwhile文でぐるぐる探す
もし対応ユニコードが増えて行ったらさすがにまずい気がする

244 :login:Penguin:2008/06/30(月) 13:03:38 ID:OAI41DEd.net
gcc-4.3でqt4をコンパイルしてたら、
5日くらい経ったことろでICEで死んだ orz

245 :login:Penguin:2008/07/01(火) 01:30:31 ID:s8Sfhzh5.net
poファイルの使い方がわかった
自動の場合は、まずkq.potからja.poを作り
次にpoフォルダの中のLINGUASのファイルに"ja"を書く必要があった
そしてautoreconfからやり直す事によってmake installで
/usr/local/share/locale/ja/LC_MESSAGES/kq.moとしてコピーされる
その後は手動でja.poをコンパイルしたja.gmoを上のファイルに上書きすればいい

そしてKQを進めながら翻訳をする
そもそも英語を翻訳しながらプレイするのが嫌で色々やり始めたのだけど気にしない
さすがに洋ゲーかつ素人ゲーだけあって序盤は結構死ねる
二人目を仲間にすると全体回復の特技が使えるので楽になった
でも回復値がランダムらしくて、1しか回復しない場合もあり時々死ぬ
さらに進めていくともう一人仲間になり3人パーティーだ
と、思ったら前の仲間が抜けていなくなった、どうやら二人までらしい
その後すぐにMAXHPの5割近くを削る全体攻撃をするボスが二匹同時に出てくる
どうするんだよこいつら

また、気になっていたglyph_lookupを置き換えるために、木構造っぽい物を作成してみた
utf8のコードを4分割した物をIDとして持たせて探索に使う
できたプログラムを見直してよく考えてみると、高速化になってない気がする
あばばばば

246 :login:Penguin:2008/07/02(水) 15:46:20 ID:15uy4jBz.net
コテハンつけてよ。

247 :login:Penguin:2008/07/03(木) 23:05:07 ID:d5oO7Lqj.net
>>246
別につけなくてもいいんじゃない

glyph_lookupの高速化の為に
手軽なハッシュライブラリを探してググってみると
”「ハッカー」と呼ばれる程のプログラマならば、
使いなれた自作ハッシュライブラリを持っていて当然である。”
と、いきなり出てきた
そんなどえらいものでもないし、目指してもいないが
そうか!じゃあ作るか!という気分になってしまった
まずぶらさげるリストを作り始めるが
汎用性を持たせようとしてポインタに苦しむ
とりあえず動いてはいるが不安だ
やっぱglibとか使うべきなんだろうか

気晴らしにKQの続きをやる
橋の建設を妨げていたボス2匹を3度目の挑戦で倒す
大技が一度しか来なかったのが大きい
辿り着いた新しい街の住人に挨拶をしながら翻訳をする
その中に何人か何も喋らない住人がいた、バグがでてきたかな?
そしてさらに次の寺院に行くといままでの街の3倍位の住人が居た
俺はそっとKQを閉じた

248 :login:Penguin:2008/07/03(木) 23:09:01 ID:JPJvrQG8.net
ざんねん、ななしのぼうけんは ここまでだ

249 :login:Penguin:2008/07/05(土) 23:01:55 ID:OHYGUo3X.net
>248
なーんちゃって...。こんなことでへこたれるぼくじゃないヨ!

と、ハッシュにとりかかるも
gcc&glibc「またエラーっすかwwwwwwwww」
などと、メモリ関連のエラーが出まくりで早くも手詰まりを感じる
一通りはまった後どうにもならなくなりググると原因判明
見よう見まねで使っていた可変長配列(ググって名前を知った)が原因だった
可変長配列を含んだ構造体を使う場合には,
構造体と配列分のメモリを初めにまとめて割り当てるようだが
後から割り当てようとしていた
そこらへんを直しglyph_lookupの中身を読み込ませてみると
どうやら一応動いているようだ

そして、こりずにKQの続きをやる
異常に人口の多い寺院だったが、同じ事を話したり
会話が短かったりと思っていたより楽だった
なかなか手強いボスとの戦闘中に途中で拾った攻撃アイテム
を使用するといきなりKQが落ちた
CUIから起動して再度試してみるとfloating exceptionと
エラーメッセージが出る
これはソースをいじったせいなのか元からなのかわからないが
とりあえず先に進むことにした
その後新しく三人目の仲間が入るもやっぱり二人パーティー
雑魚が手強くなり、次はレベル上げをする事にして終了

250 :login:Penguin:2008/07/08(火) 00:19:30 ID:WARXyChY.net
hashが一応出来上がったので、KQに入れる前にテスト
以前作ったKQの文字表示処理を真似たプログラムに組み込むことにする
また、今までは日本語フォントを元からあったmpcx.datに
入れていたが、それとは別のmpcx_ja.datを作成し入れてみる
glyph_lookupに追加していた日本語用の対応表も一緒に突っ込む
とりあえず、フォントと対応表を読み込んでハッシュに入れて
Luaから渡された文字を画像で表示するようにしてみよう
扱うファイル数が増えてきてMakefileを書き直したり
依存関係でヘッダーを書き直したりとやや嵌まる
とりあえず全部まとめてコンパイルが出来たが
きちんと表示するにはまだまだだ

KQを進めていくと、
途中のイベントをすっ飛ばしたようで微妙に話がおかしい
気にせず進めていくと、どこかの街に飛ばされて一人になってしまった
しかも敵も強くなっている&帰れない
お金があったので防具と全体魔法が買えてしのげるが
お金がなかったらかなりきつい気がする
この街では家が買えるらしいのでお金を貯めることにする

総レス数 984
445 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★