03_04_30 はい、どうも。間に合わなかったんで手でHTML書いて手でftp上げてます。 続きの作業はまた明日ということで。 明日にはなんとかなってるでしょう。 最初記念に四は一挙にみっつも公開。疲れた。 四 前回の経験を活かしてどうでもいい部分は絵ではなく文章で進めていく方向で。 こうやってバックグラウンドストーリとかを考えて描くとネタを思い付くのは 楽になるんだけど、適当に描くのができなくなる。このへんも前回の経験より学んだこと。 まあ、この方法で続けるのが無理だったら、やっぱり以前の形に戻るんでしょう。 なんだかんだ言っても以前のような適当な四を描くためのノウハウだけは無駄にあるし。 あとこっち側に移動した理由としては、前のJをログ化するのが面倒とか、そんなん |
03_05_01 今日二回やって二回とも2-1行った最近調子良い。昨日も二週目行ったし。 でも、ボスに勝てねぇ。最初の攻撃が難しい。 まだftpは手動で上げてます。 もうちょっとかかりそう。 新しく言語を学んでいる時というのは結構楽しい。 四 最初のうちはだるい展開になっても仕方無い。とか言ってみる。 |
03_05_03 トレードオフっていう言葉がある。何かを得ようとすれば何かを失う。そんな感じだ。 自転車置場に毛虫がいっぱいいた。 なんでかってゆーと、自転車置場のとこに桜があるからだ。 桜はきれいだ。それで、なんかトレードオフっていう言葉が浮かんだ。 ただそれだけのはなし。 大往生、今日は調子良かった。 2-2, 1億9978万 9978万って何よ。あと22万。自己新。 プロギアが2-3まで行った。 ここでは大往生の話が多めだが、実はプロギアの方が好きだ。 ただ、学校の帰りにプロギアできるところが無いので、 なんとなく大往生をプレイすることのほうが多くなってしまう。っていう話。 式神IIで、前にデモで選択肢が出てくるとか書いたけど、あれは見間違い。 デモとかボタン連打だからねぇ。OFFにすりゃええんだろうけど、それはなんか勿体ない。 なんじゃそりゃ。 未踏ソフトウェアって千万円ももらえるのか。 税金使ったマネーの虎だね。 年70人っていうのが多過ぎるんだよねぇ。 一週間に一人が数人のPMに囲まれてその提案について 議論するの。本物のマネーの虎みたいに。 んで、提案が適当だったり詰めが甘かったりしたら没。 手間がかかるかもしれないけど、千万もの金が動くんだし、 週に数時間くらいの時間を割く価値はあると思う。 とか思うけど、僕が何とかできる話でもないのでどうでもいいや。 税金なんて適当に使われたぐらいが税金らしくていいと思う。 国にしたらたかが千万だもんね。 四 プロローグだけで一週間くらいかける予定だったが、やる気無くなって適当。 このペースで大丈夫なんだろうか。自分。 できた。 使えそうなftpユーティリティー群を作ろうとしたが、ftpコネクション作るのに思ったより時間がかかることが判明し、 何回も接続するわけにはいかんと思って作り直したら結局ただのftp同期ツールに。 パスワード直打ちだし。 #!/usr/local/bin/ruby if ARGV.length<3 puts "usage host user passwd" exit 1 end find = open("| find") $files = {} ACCEPT_EXTS = ["html", "htm", "png"] find.readlines.each{ |name| name = name.strip next if name =~ /\/\./ # . で始まるファイル next if name =~ /^\.$/ # . if File.ftype( name ) == "directory" $files[name] = File.mtime name next end ext = name[/[^.\/]*$/] ACCEPT_EXTS.each { |ex| if ext == ex $files[name] = File.mtime name break end } } $waste = [] # FTP上にだけあってローカルに無いファイル require 'net/ftp' $con = Net::FTP.new(ARGV[0], ARGV[1], ARGV[2]) def traversal( path ) fdata = $con.list( path ).each { |line| fdata = line.split( /[\s\/]+/ ) fname = path+'/'+fdata[8] if fdata[0][/^d/] # ディレクトリ $files.delete fname traversal( fname ) else if $files[fname] if $con.mtime(fname) >= $files[fname] # アップしなくていい $files.delete( fname ) end else # ftp 上にしか無い $waste << fname end end } end traversal( "." ) $files.keys.each { |fname| $con.putbinaryfile fname, fname } waste消すようにするのは必要になったらでいいか。 perlとrubyなんて大差無いと思ってたけど、実際ruby触ってみると perlなんてもう二度と触りたくない。とか思った。 |
03_05_04 で、リニューアルしてから5日ぐらい経ったんですが、「リニューアルしたら文章は全部シューティングかプログラムのことでいいや」 と以前から決めてたので、まあ、ネタが偏りまくりなわけです。 別に偏るのは構わないと思うのですが、問題はその偏り方が ここの読者と殆ど重ならないというところでしょうか。 でも、そんなに読者の数もいないので気にしない。 シューティングとかプログラムとかがテーマだと毎日書いても苦にならないっていう話。 で、なんとなく"X-Window"について調べてみる。 たとえば、「RPGを作ろう」とふと、考える。 考えるだけで実際に作ったりはしないのだが、何故か、 「SDLはフォント周りが弱いから日本語でRPGが作りにくい。だから X 直書きしないと」 っていうような感じになって、気がついたら調べてた。 Xでゲームを作る時に大きな問題となるのが、ピクセルを直接触るとかなり遅くなってしまうということである。 pixmapをpixmapにblitとかだったら、サーバー内で済むからまあ、オーバーヘッドは少ないんだが、 pixmapのピクセルを何かしたいと思ったら、そのpixmapをまるごとクライアント側へsocketを通じて落としてきて んで、「何か」をしたあとに、pixmapをまたsocketを通してサーバーへ返してあげないといけない。 まあ、このへんはXが大昔に生まれたことが原因で…… とか思ってたら、今のXは拡張がかなりされていて、かなり何とかなってるみたい。 ということが勉強になってよかったと思った。 四 主人公の顔がしょっちゅう変わりすぎ。 同じ絵を何回も描くっていうのができないんだよね。 ヘボい。 |
03_05_07 自動ログ化ツールが出来るまで下へ伸び続けます。前回に引き続き X について。 これ。 あんまりXlibは知らないので嘘があるかもしれない。 適当に書いたし。
大体 pixmap と shm_image が同じくらいで、普通の ximage がそれの二倍ちょっとくらい。 ループバックなソケットの実装がどうなってるか知らんけど、コピーが一回分増えて、 あと、I/Oがからんでくるオーバーヘッドがあるかもとか考えたら二倍ちょっとっていうのは 妥当かもしれない。 xf86dgaとかとの比較もやってみたらいいかもしれない。面倒だからやらないけど。 で、これで、当初の目的であるGCで描画を行いつつ、プレーンなビットマップの操作っていうのができるわけ。 ただ、これだと X-Window の利点であるネットワーク越えができなくなって。windows使いに 「X-Windowって使いにくいねん」 とか馬鹿にされた時に 「でも、Windowsにはネットワーク越えとかできねぇだろ」 とかっていうふうに応戦できなくて困るかもしれない。別に困らないけど。 で、xshmについて調べてる時にgdkのソース見てたら、内部で「shmできたらshm、できなかったら普通のimage」 っていうふうに使い分けられてたんで、gtk+使うっていうのが一番賢いかもしれない。 ただ、gtkはゲームとかみたいに「windowいっこあって、キーボードとマウスのイベントさえ取れれば いい」っていうような状況で使うにはちょっと「なんだかなぁ」って感じがしたので。 X拡張について調べてたらまあ、面白そうなのがいくつかあったので、次回はXRenderの話の予定。 今日のコマの曲がり具合はいつもよりひどい 四 |
03_05_08 自転車修理したんですよ。自転車。調子の悪かったブレーキも効くようになりまして、うるさかったチェーンも静かになったんですよ。 でですね、その調子いい自転車で学校行きたくなるんですよ。わかりますかね。 なんとなく、気分がいいというか、なんていうか。 それで、今日は天気予報で雨だとか言ってたんですけど、家出た時は雨降ってなかったし、 自転車に乗って行きたい気分だったし、 「まあいい、自転車で行こ」 って、思ったんですよ。 そしたら、なんか、豪雨だった。折り畳み傘しか持ってなかった。久し振りに絶望した。 なんか、そういう話 で、Xの話 まだあまり調べてないからよくわからん。 また明日か明後日にでも。 四 なんか汚いと思っても面倒だから放置。 |
03_05_09 なんか、昨日は血肉とか書いてて姉 にかなり馬鹿にされた。で、仕返しに晒したりしてやる。 昨日気になった自機狙い弾について考えてた。 Xrenderは無視。まだ調べてない。 自機狙い弾、ようするに、ある座標に向かって進んで行く物体である。 x方向の弾の速さがdx、y方向の速さがdyとしようや。 で、どうするか。 普通に考えられるのは、アークタンジェントで求めた角度(θ)と弾の速さ(V)で極座標でベクトル表現して、 dx = cos(θ)*V dy = sin(θ)*Vで、いいでしょう。 でも、自機狙い弾というか、ある座標に向けて放たれる弾っていうのは大昔のゲームでも出てくるんですね。 昔のゲームのCPUだったら一回アークタンジェント呼んだらそれだけでフレーム落ちしそうなんですよ。 メモリとか数KBだし、テーブル引きなんてもっての他。 で、次。 (dx',dy') = (自分のいるところの座標)-(目標の座標)とかして、それの長さを L = √(dx'^2 + dy'^2)とかして求めるんですね。 すると、 L:V = dx':dx = dy':dyってなるんですよ。 これで三角関数無しで、自機狙い弾のできあがり。 ただ、これだと sqrt 使うのでやっぱり大昔のCPUでは無理っぽいです。 で、ここまでが昨日考えた分。 それで今日は卒研の時間を費やして二点の距離を近似するアルゴリズムとか 調べてたんですよ。でもどれもぱっとしないので、距離をテーブルによって大体で求める ルーチンとか実装。 あ、けっこう、それっぽく動くやん。 テーブル化によって生じる誤差は速度だけで、方向はほぼ正しくなるはず。 あんま関係無いけど、コンパイル時に -DAIOHJOH ってオプション付けたら大往生の雑魚のショットみたいな感じに。 でも、これだとway弾が撃てない。やっぱway弾は三角関数使ってるんかなぁ。 誰か知ってる人いたら教えて下さい。 ただ、sin、cosはテーブル化できるので、少し前のCPU,メモリくらいだったら耐えられるか。 問題はアークタンジェント。5wayでも3wayでも2wayでもアークタンジェントは一回。それは耐えられる物なのか。 そもそもアークタンジェントなんか使ってないのか。どうなのか。わからん。 で、way弾をどうやったらいいか考えてたら、ばらまき弾を思い付いた。 オーバーヘッドは乱数によって生じるだけ。んで実装してみた。 BUL_SCATTERがそれ。大きい弾でばらまき弾やるとギガウィング2っぽい。とか思った。 レーダー法っていうのがあるみたい。 ちょっとしたアークタンジェントテーブル。でも、 二件しか無いので名前がレーダー法なのかは謎。 四 やる気なくなってきた。血肉とか書いてるし。 |
03_05_10 水曜にp/eceのスプライト触ってみたんだけど、結構気に入ったので libpceに実装。 っつても、p/eceに付いてくるpclsprite.cのconvframいじっただけだけど…んでこれにスプライトで保存できるようにした。 さて、p/eceでスプライト使ってるのは見たことない(ちゃんと調べたわけじゃないけど) けど、スプライトを使って得られるものっていうのは結構大きいんじゃないかと思う。
コメントいっこも書いてないから全然わかんないかもしれない。 でも僕はわかるようになったから大丈夫。 で、Xrenderはまだ調べてない。と。 なんかもう書かないような気もするので適当に説明しておくと、 まず、Xの描画は古臭いっていうことで、なんか新しくしようということで生まれたのが このXrender。 これまでの描画方法との違いは形を線や四角等で表現するのではなく、アルファチャネルによって 表現しようというもの。(多分) まあ、実際に「アルファチャネルばりばりだぜ!」なXのプログラムって見たことないけど、 この「アルファチャネルによる切り抜き」というのはフォントのアンチエイリアスに もってこいだね。という感じで、Xftに利用されてるの。で、KDEのアンチエイリアスが このXftを使ってるっていう話。 詳しくは、最近XFree86を抜けたとかで話題の人Keith Packard氏のサイトとかで まあ、僕はXLFD(Xのフォント名)を使いたくないと思って、ひょっとしたらXftはこのへん の問題をなんとかしてくれるかもしれない。と、思って「調べてみよう」ってなった。っていう話。 四 漫画七大不思議のひとつ。(嘘) |
03_05_11 コード書きたい時期に入ったので、四はしばらく描かないと思う。なんか絵描きたい時期とコード書きたい時期とだらだら時期がそれぞれあって、 「絵が描きたいし、コードも書きたい。」 というような感じになることはあまりない。 あと、だらだらな時期に入ったら、ゲーセンばっか行く。 まあ、「コード書きたい」っていうのははいつも一週間くらいで終わるし そのくらいにはまた元に戻るのかと。 Xft大体わかった。 つか、 Xftぐぐったら、mozillaとかkdeとか設定の話ばっかり出てきてへこむ。 明日くらいには何か書けるかも。 マルチバイトがUtf8限定。 Utf8も使えるようにならなあかんな… RPGとかADVGとかでもシナリオファイルとかは中間形式にコンパイルするという名目で その時にUtf8に変換するのがいいかもしれない。 僕がUtf8嫌いな理由は編集が面倒(なんかemacsでうまく扱えない…)だからであり、編集がEUCで行えるならば別に何とも思わない。 ていうことで、そうやったら、windowsとかのShift-JISな人達とも仲良くやれるかもしれない。と、思った。 |
03_05_14 来た。大往生2.6億。 まあ、残機5設定だったけど、-2000万しても2.4億。好調。 ただ、今日は自分パターンがほぼ完璧だったので、今の調子で行くとこれ以上 スコアアップが望めないんだよなぁ。 なんとかしてstage 4, 5を繋げられるようにならないと。 あと、エスプも調子よかったけど、なんかガラさんにやられまくった。むずい。 前回utf8とか言ったけどUnicodeまわりをあんまり理解してなかったので それ調べてた。 ようするに、 「JISに対する符号化にSJISとEUCがあるようにUnicodeも符号化の方法がいくつかあって、 そのうちのひとつがutf8」 っていうことなんだろう。多分。 んで、ISO10646とUnicodeの違いもわかった。 ISO10646とUnicodeは別物だけど、ISO10646の第一面とUnicodeの範囲が同じ。 ややこしいねん。 p/eceで遊んでます。今こんな感じ。 |
03_05_16 特に無し。じゃあ書くな。 |
03_05_18 しばらく更新はだらだらで。だりー。 stage5はけっこう繋げるようになってきた。2.3億。 ただ1000hit越えたあたりで緊張してくる。→ミスる。 こんな感じはちょくちょく更新。 |
03_05_21 内定もらえた。てなわけで、まあ、面接には新幹線で行ったもんで東京も通るんですね。 なんか最近現実がやたら夢に影響を与えるというか、まあ、授業中に寝てたら授業 の夢見るとかそんなん。 それで、東京行き新幹線で寝てたら東京に着く夢を見たんですよ。 で、なんか駅に着くと同時に苦しみはじめる自分。 「どうしたん」 誰かが聞いてくる。 「漢字コードが違うから慣れるまで時間がかかるんですよ…」 答える自分。 なんか東京はShiftJISだけど僕の漢字コードはShiftJISじゃなかったみたいです。 意味わからん。 P魂(http://zurachu.net/pkon/)出そうと思って書いてたけど間に合いそうにないから、 コード書く気激減。また絵の練習でもするかなぁ。大往生も調子出ないしなぁ。だらだら。 式神の城楽しい。最初やった時はなんか弾幕のやる気なさ見て「なんだかなぁ」 とか思ったけど。慣れてくるとあのげんなり弾もたまらなくなってくる。 espradeとかガンバードとかはなんで人が飛んでるかというのがなんとなく説明できるけど、 式神の城はなんで人が飛んでるかがわからない。あと、式神の城の前作は飛ぶ速さが速すぎ。 ヘリぐらいの速さで飛んでるのと違うかなぁ。とか、今なんとなく思った。 それと、このサイトのメニューをもうちょっとなんとかしないと。 気付いたらBBSしか無かった。 |
03_05_22 Xftはなんかよくわからなくなってきた。サンプルになる物が見つからないんだよなぁ。 mozillaとかqtとか読めということか。絶対やらんけど。 pango見たけどよくわからん。 XLFDのラッパ書いたほうが早いかもしれない。 なんか意味無いような気がするけど… 昨日調子悪いとか書いたけど今日は調子良かった。けど、stage4でやられまくった。 stage5がもうちょっとよくなれば3億行くかも。行かないかも。 espradeクリアできた日は気分が良い。30円で30分。超お得。 |
03_05_23 むむ、Xのフォントは奥が深い。ほとんど理解できないんですが。 つか、Xのフォント周りを完璧に理解してる人とかっておるんか。無理。
Xクライアント側から見ただけでこれ程の種類が。 さらにXサーバー内も見るとpcfフォント、bdfフォントx-tt、xfs-tt、複雑なfonts.dir、fonts.alias等々 理解しなければならないことが山盛り。無理だって。 今日見つけた資料色々。
もう何が何だかわからないので、FontSet使おうと思う。 日本語だけだったら十分だと思うし。 |
03_05_24 プロギア3000万いけた。けど、2-3はクリアできる気がしない。 2-2までは危ないところが限定されるが、2-3はなんかずっと危ない。死ぬ。 XmbDrawString版できた。思ったより簡単。configure使ってみた。 …だが、ここからが問題。 まあ、このままでもええねんけど、やっぱり、PCにのっかってるOSの大半がwindowsであることを 考えると、X上でしか動かないライブラリというのもあんまり気分の良いもんじゃない。 やっぱり、windows上でも動くような感じがいい。 いまはフォントは大きさしか指定できないので、windows用のを書くのは問題無いと思う。 が、やっぱりそれっていかがなもんか。 で、そうなってくると、フォントの名前が問題。 windowsのフォント名は"MS ゴシック","HG ゴシック"みたいな感じで、 名前にフォント作った(?)会社の名前が含まれるが、Xではそれが別々(foundryとfamily)だし。 gtk-windowsでは確かwindowsのフォントを無理やりxlfdに対応させて全部xlfdで管理してると思う。 昔gimp windows触ったときにxlfd見たことあるような気がするし。 とか考えてたら、なんか面倒になってきたので、やっぱり今のままでいいや。 フォントの指定とか列挙とか無し。もうハードコーディングべったり。 どうせみんなゴシックしか使わないし。手抜き。 それと、X上では13pt-18ptあたりではTrue Typeではなく見やすいpcfを使いたいというのもある。 今はサイズとか考えるの面倒だからresx,resyを0にしてスケーラブルフォント指定してるけど、 なんとかしたい。でも、フォント名で'*'使いまくると、フォントの大きさによって全然違う フォントが選ばれる状態になってしまって、それもまた見苦しい。 どうしようかなー。 やっぱりこのままでいいかな。面倒だし。 なんか意見あったらBBSにでも。つかBBS見てる人いるのか? で、次回はXIMとIMEについて考えるかもしれない。次回じゃないかもしれない。 あと、前回の訂正。 XOM使ってないとか書いたけど、XCreateFontSetとかが内部でXOM使ってた。 |
03_05_25 今日はだらだら。そろそろ四でも描くかな。やっぱり前みたいに適当な方がいいや。 漢字コード問題。 windowsはロケールとかあんまり無いけど、Xはロケール対応あるから XのほうでShift JISにすれば全部Shift JISで扱えて幸せなのではないか。と考えてみる。 locale -a したら、japanese.sjis含まれてるように見えるけど、setlocale( LC_ALL, "japanese.sjis" ) が失敗するようにしか見えない。どうなってんの? Unicodeを使えば全部解決というのはあるかもしれない。けどUnixではUtf-8エンコードを基本に してるような気がする。WindowsではUCS2エンコードのように見える。 これってjisxがUnixではEUCで、windowsではSJISでエンコーディングされてた状態と一緒のような気がするんだけど。 どうなの? 誰に聞いてるの? あと、レポートとか課題とかしないといけない。 |
03_05_27 む、課題があと評価とるだけというところでやる気消失。大丈夫なのだろうか。 また終わったら続き書こ。 (続く) |
03_05_28 昨日の「続く」っていうのは嘘。3時には終わらせて更新するはずが朝5時になってた。 てなことで、課題もほとんど終わったしだらだらしようと思ったけどもうすぐテストだった。 おとといくらいに電撃大王とか立ち読みとかしてみる。 「宇宙のステルヴィア」っていうのがプログラマ漫画なんかもしれない。 プログラマ漫画の必要性については昔書いたような気がするので 過去ログ漁ってみるのもいいかもしれません。別に調べなくても問題ないけど。 これで、ポストヒカルの碁かもしれない。 これを見た小学生とか中学生とかが 「僕も将来はしーぽんみたいな立派なプログラマになるねん」 とかってなるかもしれない。 「プログラマを志す小中学生が急増。アニメの影響で」 とかみたいなことが新聞に載る日も近いかもしれない。ありえないけど。 XCreateFontSetはけっこう遅い。内部でどうやってるかわからんから 何で遅いかわからないけど。フォントのロードをやってるんだろうか。 でも、ディスクアクセスは無かったような気がする。 まあ、遅いっていっても、Pentium 150MHzだし、今のCPUだったら無視できるかもしれない。 なんか自分メモみたいな感じになってきた。 |
03_05_29 例えば、ネットワークゲームである。ネットワークゲームに欠かせないものがチャット機能である。 そのためにはやはり漢字入力が欠かせないであろう。 ということで、前々回かその前くらいにXIMとか書いたけどやっぱりやめとこう。 というか、Xのネタばっかり書いてたら、見てる人が引いていくので少し控えめにしとこう。 もうちょっとまとまってからまとめて書こうと思う。 で、Windowsでどうするかと調べてたら、CreateDIBSectionていうのが見つかった。 これで十分だと思う。 そんなことしなくてもDirectDraw使ったらいいのかもしれない。なんか前にDirectXな所ではIME使えない とかあったような気がする。気のせいかな。 IMEなんか使わないから別にええねんけど。 とか書いてるけど、昨日今日全然コード書いてない。口ばっかり。 |
03_05_31 プロギアの横に置いてある式神の音量が大きくて プロギアやってても式神やってるみたいな気分になる。なんか主に式神の曲が聞こえてくる感じ。やりにくい。 ゲーブリエル・ハンマー大使倒したときに「一張羅なのにー!」とか。 いや、それはフィクションなんだけど。 ここんとこなんかだらだらしすぎ。 今日更新2回目。 やる気ないときは更新頻度が若干増加。これ基本。 最近どうも絵が上達しないというか、半年前と比べて絵は変わってはいるのだが、 レベルアップしたかといえばそうでもない感じで死にそう。 四を描こうと思っても、なんか絵がうまくならないと描く気がおきないし。困った。 ってなわけで気持ち変えたらなんとかなるかもしれない。とか思ったので、適当に晒しておくことにしよう。 あと、色の使い方とか全然わからんのでその辺の練習とかもかねて。 ![]() で、こうやっていくうちに、またクラスの人に教えにくいサイトへとなっていくのです。 まあ、別に問題ないと思うけど、なんか、ねぇ… |