すげえ
時を超えて日記を更新できた。
ほぼ7年ぶり?ぶりぶり?そんなかんじ?
2015-09-02
なんか書かないとなーとか思うと特になんもないよねー。
なんかjavascriptで動的にformのinputとかをcreateElementしてappendするみたいな事をやってると大声だしそうな精神状態になってくる訳なんだけども、jqueryがなかった時代を考えると、いちいちdocument.getElementByIdとかsetAttributeとかやってたんだなーっていうかさすがに業務コードでは毎回フルに書くんじゃなくてオレオレフレームワークとか作って時短時短!対応してたんだろーなーとは思うのですが、なんか昔のjavascriptのライブラリとかフレームワークってなんかコッテリ系が多いっていうか、あれもコレもそれも出来るしplugin式で追加できるしむしろ出来ない事あったら募集してるし即実装しますしみたいな印象があって、気軽に導入し辛い雰囲気があったのでjqueryは偉大だなーと思うんですけど僕はattrとpropの違いあんまわかってないです。
「結局DOMじゃん?」みたいな話をしなくていいっていうだけでjqueryはすげーなーと思う。
でもそうなると、htmlに対してjqueryのfilterかけられるけど、xmlに対しては無理って思い込む人続出っていうか、続出はしないけど多少いますみたいな空気感があって、そういう人に「なんで出来るか」を説明するのは結構大変なんだけども、「あっ動きましたあざす」みたいなノリのプログラマが多いのでまあ別に問題にはなっていません。なにそれ。
疲れたなーとか口に出るのが最近多くなっていてあまり良くない!と思うので、疲れたの代わりに口から垂れ流す単語を探しています。無意識に出るので自分と馴染みが深い言葉がよいでしょう。
ありがたいなー。
これやな。
2015-09-01
なんかmacbookを放っておくと画面暗くなってスリープしてんのかな?と思いきや起きててバッテリがすごく減っている状況になっているのですごく困ります。
雨の音がすごいので外見に行ったら普通に晴れてる。これがあれか、あの、狐の嫁入りか。多分違う。
最高に眠まってしまったので今日は早めに帰宅。
家近くの駅前の広場がタイルになってるんだけど、スケボー少年たちのおかげでバリバリにひび割れては修繕工事されてまたバリバリにひび割れてをここ2年ほど繰り返している。
なんか色々考えてしまったけども、マッチポンプという形で納得しておこうと思います。
ティル・ナ・ノーグVはSteamのホームストリーミングで無事に動作しました。ただ重すぎてゲームにならないだけで問題はないです。
こないだのjsリズムマスィーンは作る前に飽きちゃったので保留に。
代わりになんかクマがペンギンをバットで打って飛距離を競うっていうFlashゲームっていうかこれあれだな文字に起こしたらダメな奴だな。
まあそれのHTML5版というかpixi.js版にしようと思います。
ただ横スクロールで作っちゃうと「えっなんで作ったんですかね」感出ちゃうので、奥スクロールにしようと思う。
前作ったこれっぽい奴っていうかほぼこれ。
ええんや。たまには楽するんや。
2015-08-31
受託開発してると、素材だとか、仕様だとか仕様だとか、クライアントからもらうしかない情報っていうのが出てくるわけだけど、まあ遅れる。遅れるっていうのはちょっとじゃなくて、リリース前日にポンとメール来てよろしくとか、さすがにそこまで酷いのは多くはないけれども、少なくもない感じ。
で、素材とか仕様の提供ってまーギリギリになりますよねーハハハていう話を容認するかどうかっていうと、容認したくはないけどするしかないっていうか、「やだもん!僕やらない!」と言ったら普通にクビになるだけなので「ハハーありがとうございます!確認させていただきます!」となる。
誰が困るかっていうと僕が困るので勘弁してくださいっていう話なんだけれども、会社全体というか業界全体にそういう空気が流れていて、「あーあれまだ来てないですよねー。確認した方がいいねー。」で確認したいけどパイプが上のレイヤー同士でしか繋がってないから遅いとかあれまた何言ってるのかわからなくなってきた。
ケーキはバナナ味が好きなんですけど、バナナ自体は好きじゃないんですよ。
ゼリーのメロン味(果肉入り)も好きなんですけど、メロン自体は好きじゃないんですよ。
でも嫌いでもないんですね。
それでまあそういうギリギリに来てしかもひっくり返ってる仕様とかと戦って戦って、疲れるんですよね。家帰っても、あー疲れたなーって言っちゃう。
でも成し遂げてる感覚が薄いから、ちぎって投げて、ちぎって投げて、体力的に参っちゃって、その次に俺なにしてんだろ的な精神的な疲れが来ちゃう。
グレープは本物もグレープ味もどっちもそんな好きじゃないんだよなー。
ティル・ナ・ノーグV
を折角買ってきたのにWindows10では動作せず、VMに入れたXPでは起動時に
「しばらくお待ちください」みたいなダイアログが出たままフリーズする憂き目にあっていました。
フリーズした時に、ゲームディスクを入れているUSBのドライブも固まってしまう(イジェクトできなくなる)ので、USBドライブとの相性?ですか?今どき相性?ですか?などとなっていた訳で、ヨドバシカメラに出向いて外付けのドライブを探そうと思ったんですけどDVD-RとかCD-Rとかメディアが大量に売られている場所の近くには置いてなかったので「ああ〜Amazonでいいかも〜」などとなって帰ってきました。
帰ってからふと部屋を眺めてみると、IDEのHDDを外付けドライブ化するUSBのガワが転がっていて、IDE接続のDVD-Rドライブも転がっていたのでものは試しとつないでみたら・・動いた!
けどドデカイUSBの外付けドライブがくっついてないと起動できない!(let's noteをXPリカバリした奴で動かしています)フオオオオ!となって考えたところ
「それってSplashtopStreamerでいいかも?」という風になりまして、let's noteにSpla(ry)をインストールしてmacbook airから接続して起動してみる・・と・・
「なんかDirectXのソフトのフルスクリーンはこのPCだと無理っぽい。からウィンドウモードで起動したらいい」などと仰るので調べてみたらティル・ナ・ノーグVはフルスクリーン起動しかできないらしい。ので調べてみたらhttp://www.geocities.jp/menopem/こういうものをお作りになられている方がおられたので早速導入!起動!おお!ウィンドウ化した!・・・けどなんだこれ重たい。というか起動に成功したり失敗したりする。タスクマネージャを見てみるとSplashtopStreamerさんが40%くらい食ってる。そのせいなのか、ウィンドウ化のせいかわからないけども、このままでは使い物にならない事が判明しました。おはり。
ああ、今気づいたけども、SteamのホームストリーミングってSteam製ソフト以外もいけるんだよね。帰ったらそっちで試してみよう。
2015-08-29
久しぶりに梅田までお出かけ。
奥さんがすげー分厚い犬の図鑑が欲しいってんで、梅田の紀伊國屋書店まで。
実機に触れるのは初めてだったけど、あれはイカンですな。触ってしまうともう、なんかスペック低いとか、ファンレスの弊害で底が熱くなるとか、16:9解像度じゃないとか、もうそういうことはいいんです!これ下さいすぐ包んでください!えっ日本語キーボードモデルしかない?じゃあこの実機でAppleストアから買ってもいいすか?みたいな勢いになってしまう。
モノとしてあれほど所有欲をくすぐるのはlet's note R9以来だ(なんかおかしい)
let's note R9は誘惑に耐え切れず買ってしまったのでmacbookもやばいのかもしれない。
横にいる奥さんの冷ややかな視線がなければATMと言う名のエデンからお札という名のグロリアスをフィードしていたかもしれない。
何を言ってるのか自分でも一切わからないのかもしれない。
それはそれで、会社で月初めに何かをプレゼンしないといけない場があるんだけども、今回は何にしようかな〜と思っていたところに
がヒット。
こ・・これや!ワイはHTML5でリズムマスィーン(サンプリングもしたい)を作るんや!5日で!
「5日で作るjsリズムマシン」や!本のタイトルみたい。
ていうか既にネット上にはごまんとjsリズムマシンがあるのでいまいちモチベーション出ないっていうか処理よりも画面作るのめんどくさいっていうかウリがないっていうか。
・・そうや!スマートフォンで使えるやつや!スマホで簡単にその場でサンプリングもできて簡単タップでリズムが作れるやつや!
アウトプットできないけどな。ていうかそれアプリでよ(ry
2015-08-28−2
で、Wizardryなんだけども、戦闘の処理って↓のことを全部しないといけないみたい。
えー無理とか思うけどもすごい量だ。ひでまるの内容をコピペしたらガタガタになったけど直す気力も起きない量だ。問題は行動順のソート処理だ。普段jsとかphpとかのスクリプト言語しか触ってないと、アルゴリズムを使うって感覚が抜け落ちていくので、こんな簡単なこともよくわからなくなってくる。イカンですよ。いかんね。
戦闘開始手順
1.参加メンバーの確定
1.PT内でステータス異常にかかっていない者のLV合計算出
2.ステータス異常にかかっていない敵のLV合計算出
3.PT生存者数算出
4.敵グループの生存者数算出 unsigned char[4]
5.敵グループのMAGE呪文LV算出 unsigned char[4]
6.敵グループのPRIEST呪文LV算出 unsigned char[4]
7.メイン敵ID決定(画像を表示するモンスター)
8.敵グループのモンスターID決定
9.PTキャラのタイプ別打撃防御フラグ決定 int[6]
10.PTキャラの命中力決定 unsigned char[6]
11.PTキャラのクリティカルフラグ決定 unsigned char[6]
12.PTキャラのヒーリング値決定 char[6]
13.PTキャラの攻撃回数決定 unsigned char[6]
14.PTキャラの属性抵抗 unsigned char[6]
15.PTキャラのステータス unsigned char[6]
16.敵のステータス unsigned char[4][9]
※存在しない敵は0xFF
17.味方/敵のHP int[42]
18.味方/敵の最大HP int[42]
19.味方/敵のLV unsigned char[42]
※0xFFを超える場合は0xFFに補正
20.戦闘時の行動ID unsigned char[42]
21.戦闘時の行動順位 unsigned char[42]
22.敵のAC char[36]
23.PTキャラクタの攻撃対象グループ番号 unsigned char[6]
24.運勢値1 unsigned char[6]
25.運勢値2 unsigned char[6]
26.運勢値3 unsigned char[6]
27.運勢値4 unsigned char[6]
28.運勢値5 unsigned char[6]
29.PTキャラのタイプ別倍打 int[6]
30.PTキャラがドレインを受けたかどうかのフラグ unsigned char[6]
0 = 受けてない、1 = 受けた
31.PTキャラレベル int[6]
32.PTキャラのPOISON値 unsigned char[6]
33.PTキャラのキャラデータアドレスの上位バイト(0x60 + 訓練所内ID)
34.エンカウント種類: 0:徘徊(廊下), 1:徘徊(室内),2:玄室
2.先制パーティの決定
3.プレイヤーパーティの行動決定
4.行動順決定
5.敵行動(1体ごと処理)
1.攻撃対象決定
2.PT先制(モンスターを驚かした)の時は処理しない
3.敵先制(モンスターに驚かされた)でない場合、呪文を唱えるかどうかを決定
1.唱える場合、どの呪文にするかを決定
2.所属グループのMAGE LVを調べ、0でなければMAGE呪文を唱えるかどうかの判定を行う
1.モンスタータイプが魔術師なら100%、それ以外の場合は75%の確立でMAGE呪文を唱える
3.MAGE呪文を唱えない場合、所属グループのPRIEST LVを調べ、0でなければPRIEST呪文を唱えるかどうかの判定を行う
1.モンスタータイプが僧侶なら100%、それ以外の場合は75%の確立でMAGE呪文を唱える
※先にMAGE呪文判定を行うので、僧侶タイプでもMAGE呪文を唱える可能性がある!
4.使用呪文の決定
1.呪文LV低下判定を行う。
(呪文LV低下率)=1 / ((グループ生存者数)+2)
2.判定に引っかかった場合、対応する種類(MAGE/PRIEST)の呪文LVが1減少する。この結果呪文LVが0になった場合は、LV1に補正し、
ブレス判定に移る(そのターンでは呪文を唱えない)
3.使用する呪文LVを決定する
(使用呪文LV)=(所属グループの呪文LV)とし、77/256の確立で使用呪文LVをデクリメントし続ける。LV0になった場合はLV1に補正する
4.使用する呪文を決定する
MAGE呪文
LV 呪文1 (85/256) 呪文2 (171/256)
1 KATINO HALITO
2 DILTO SOPIC
3 MOLITO MAHALITO
4 DALTO LAHALITO
5 LAHALITO MADALTO
6 MADALTO ZILWAN
7 TILTOWAIT TILTOWAIT
PRIEST呪文
LV 呪文1 (85/256) 呪文2 (171/256)
1 BADIOS BADIOS
2 MONTINO MONTINO
3 BADIOS BADIAL
4 BADIAL BADIAL
5 BADIALMA BADI
6 LORTO MABADI
7 MABADI MABADI
上記の確立によって決定する.
4.ブレスを吐くかどうか決定
1.ブレス属性が0でない場合、153/256の確立でブレスを吐く
5.仲間を呼ぶかどうか決定
1.仲間を呼ぶフラグを持っていて、所属グループの生存者数が6以下の場合、75%の確立で仲間を呼ぶ
6.逃走するかどうか決定
1.逃走フラグを持っていて、
・(敵の合計LV) < (PTの合計LV)
※グループごとではなく、固体単位での合計
※ステータス異常の者のLVは加えない
ならば、166/256の確立で逃走する。
7.打撃攻撃を行うかどうかを決定
1.グループ内後方に位置する敵は攻撃しない可能性がある
敵第 1 グループの 5~9 体目は 5/10 の確率で攻撃しない
敵第 2 グループの 4~9 体目は 4/10 の確率で攻撃しない
敵第 3 グループの 3~9 体目は 3/10 の確率で攻撃しない
敵第 4 グループの 2~9 体目は 2/10 の確率で攻撃しない
2.攻撃対象を決定する。乱数で決定してあるが、後衛には攻撃できないので、後衛n人目は前衛n人目に読み替える
3.タイプ別打撃防御判定を行う。攻撃対象がモンスタータイプに対する打撃防御を持っている場合、50%の確立で攻撃を行わない。
攻撃対象者の全装備品(呪い、アライメント不一致含む)のタイプ別打撃防御のORとなる。
8.ここまでで行動が決定しない場合はPARRYを行う