神代クロ のすべての投稿

スポーツクラブに行く(10日目)

結局先週と同じ曜日の同じ時間帯になったけど、スポーツクラブに行ってきました。

今日はランニングマシンで10分間走ってみた。たったそれだけなのに、心拍数が170を越えて測定不能になったんでびびった。まだまだ持久力が足りないな。

そういえばランニングマシンで走りながら、新聞読んでるおばさんがいて噴いた。走りながら字が読めるんかな。色んな人がいるなぁ。

トレーニング後、シャワーを浴びてから着替えるんだけど、その時に衣服に爪を引っ掛けてしまい、爪が剥がれたよ(涙) 見事に横一直線に切れ目が入り、血が出るし痛いし。

右手の中指なんだけど、お陰でキーボードやらマウスの操作に不自由してます。ちゃんと手入れしとかないとな…

ゲーム開発28:マップデータ読み込み

今回はマップデータを読み込む処理を、CMapDataクラスとして作成しました。

Platinumというマップエディタでマップを作ってますが、このツールから書き出す形式にFMFというのがあって、これがベタデータでわかり易かったので、とりあえずこれをそのまま取り込みます。

サンプルプログラムがあったのでそれを参考に、というか多少手を入れた程度のものを作ってみました。

まずFMFのデータ形式ですが、ヘッダ部は以下のようになっています。

typedef struct FMFHeader
{
 DWORD Identifier; // ファイル識別子 'FMF_'
 DWORD Size;    // ヘッダを除いたデータサイズ
 DWORD Width;    // マップの横幅
 DWORD Height;   // マップの高さ
 BYTE ChipWidth;  // マップチップ1つの幅(未使用)
 BYTE ChipHeight;  // マップチップ1つの高さ(未使用)
 BYTE LayerCount;  // レイヤーの数
 BYTE BitCount;   // レイヤデータのビットカウント(未使用)
}FMFHEADER;

これの後ろに実データがレイヤー毎に区切り無く入ってます。なのでヘッダ内のSizeでメモリを確保し、WidthHeightから1レイヤーのサイズを計算して、任意の場所のデータを読み書きすれば良い感じです。もうサンプルのまんまだけどねw

しかしこのレイヤーという概念は便利で良いですね。1つのデータファイルにマップデータのみならず、キャラクタの配置イベント発生場所といった物を持たせられます。しかも同一のデータ形式で。

今まではキャラクタの位置情報は別形式で持ってたけど、FMFに一緒に載せてしまおうか。

次回は読み込んだマップデータを表示させます。

//-----------------------------------------------------------------------------
// ファイル読み込み
BOOL CMapData::File(char *filename)
{
 HANDLE FP;
 DWORD ReadBytes;

 // ファイルオープン
 FP=CreateFile(filename, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
 if (FP==INVALID_HANDLE_VALUE) {
  return FALSE;
 }

 // ヘッダ情報取得
 if (!ReadFile(FP, &fmfHeader, sizeof(FMFHEADER), &ReadBytes, NULL) || ReadBytes!=sizeof(FMFHEADER)) {
  CloseHandle(FP);
  return FALSE;
 }

 // 必要なメモリ確保
 LayerAddr= new BYTE[fmfHeader.Size];
 if (LayerAddr==NULL) {
  CloseHandle(FP);
  return FALSE;
 }

 // レイヤーデータ取得
 if (!ReadFile(FP, LayerAddr, fmfHeader.Size, &ReadBytes, NULL) || ReadBytes!=fmfHeader.Size) {
  CloseHandle(FP);
  return FALSE;
 }

 CloseHandle(FP);

 return TRUE;
}

//-----------------------------------------------------------------------------
// マップ情報取得
int CMapData::Get(BYTE layer_no, BYTE x, BYTE y)
{
 int  chip_no;
 BYTE *Layer;

 Layer=LayerAddr+fmfHeader.Width*fmfHeader.Height*layer_no;
 chip_no=*(Layer+y*fmfHeader.Width+x);

 return chip_no;
}

//-----------------------------------------------------------------------------
// マップ情報上書き
void CMapData::Write(BYTE layer_no, BYTE x, BYTE y, BYTE chip_no)
{
 BYTE *Layer;

 // 範囲チェック
 if (layer_no>=fmfHeader.LayerCount || x>=fmfHeader.Width || y>=fmfHeader.Height) {
  return;
 }

 Layer=LayerAddr+fmfHeader.Width*fmfHeader.Height*layer_no;
 *(Layer+y*fmfHeader.Width+x)=chip_no;
}

//-----------------------------------------------------------------------------
// マップの横幅取得
int CMapData::GetWidth()
{
 return fmfHeader.Width;
}

//-----------------------------------------------------------------------------
// マップの縦幅取得
int CMapData::GetHeight()
{
 return fmfHeader.Height;
}

ゲーム開発27:マップチップ作成中2

名称未設定 4マップチップの方向とか角度とか間違ってたので修正しました。

前のだと進行方向の先からマップを見てる事になるから、変だよね。あと俯瞰角度も広く見えるように変更しました。

何度か作り直して今のカタチにしたけど、これで大丈夫かなぁ。まぁキリが無いのでひとまずFIXとして、マップデータ読み込み処理を作ることにします。

ちなみにこの画像の構成のままプレイ出来るとは限りません。技術的に解決すべき事が色々あるからね。

先は長い。

スポーツクラブに行く(9日目)

夕方くらいにスポーツクラブに行ってきました。やはり休日の夕方は混んでるね。

既にたくさんの人が使ったせいか、汗臭い器具があったよ(汗) やはり早めに行くべきか。しかし昼間はトレーニングの効果が出にくいらしいからなぁ。

ダイエットは朝、筋力アップは夜トレーニングすると良いとか。だからホントは朝から行ければいいんだろうけどね。

次は時間や曜日を考えて行ってみよう。

横浜で打ち合わせ&飲み

今日も横浜で打ち合わせです。今日の議題は某所のクリスマスイベント用システムの開発について。

クリスマスかぁ、例年俺はひとりでケーキ2個買って来て、日本酒をかっ食らって寝るとかそんな感じだけど、今年は違うものにしたいね。

打ち合わせ後は、持ち込んだノートPCでその場で作業したり。夜になったのでみんなでご飯を食べに行こうとしたら、ちょうど他の人達が地方出張から帰ってきたので、せっかくだからと居酒屋へ行くことになりました。

居酒屋では大量の串を注文して、みんなで食べたよ。飲みながらクレーム処理について語ったり。飲食系はヤ○ザ連れて来るから困るとかそんな感じ。出来るだけ穏便に済ませたいものです。

段々仕事が溜まって来たな…うまくこなさないと。

OAチェアを買う

chairデスクトップPCを使う時用のイスを買いました。SANWA SUPPLY SNC-NET4BKN2 OAチェアです。写真の左側のがそうです。

実はイスも10年間同じものを使っていて、最近プラスチックのタイヤがボロボロと欠けてきてたんだよね。タイヤは取替え出来ないっぽいし、買い替えとなりました。

家電屋で実際にイスに座って確かめながら、値段との兼ね合いも考えてこれにしました。約13,000円也

組み立ては自分でやったけど、30分くらいで完成かな。六角レンチで各所を固定するだけの単純な作業でした。

背もたれが頭の所まであり、レバーを引けば後ろにだらんと下がるので良いです。今までのは(写真の右側)、背もたれが小さいため、猫背がちになってたけど、これで姿勢も良くなりそうです。

ただ、今までのイスより大きいため、キーを打つ時に違和感があるなぁ。まぁこれは慣れかな。

これでより一層ネットサーフィn…じゃなくて、仕事に励めます。

ゲーム開発26:マップチップ作成中

2b65fcceゲーム開発再開です。

とりあえずマップを作ることにしました。あれこれ試してみたけど、やはり立体っぽく見えるのが良いなぁと思い、微妙に見下ろし視点にする事にしました。

しかし真横からの視点に比べて情報量が一気に増えるなぁ。お陰で必要なマップチップが数倍に膨れ上がったよ。

しかも作ってて合ってるのかどうかわからなくなったり。たまにマップエディタで仮組みして確認しながら作ってはいるけど、よくかわらなくなってきた。

ちなみにマップエディタはPlatinumというフリーソフトを使っています。

とりあえずもう少しマップチップを作ったら、マップデータをゲームに取り込む処理に移ります。

2009/11/4追記
やっぱりマップチップが間違ってたので作り直し中…

冬コミ(C77)受かりました

コミケ受かりました。まだ郵送で来てないけど、まぁオンラインで確認してるから大丈夫でしょう。

12月30日(水) 東地区 “W” ブロック 44b

位置的には東2ホールの真ん中へんです。もしかして島端

夏は落ちたので1年ぶりの参加です。前回出した巫女さんゲームを、さらに作り込んで出す予定です。例によって製作過程はこのブログに書いていきます。

もう年末に向けたシステム開発の依頼とか来てるし、今後は忙しくなりそうです。いやぁそれにしても龍が如く見参!面白いなぁw

スポーツクラブに行く(8日目)

超久しぶりの超スポーツクラブです。

なんと3週間ぶりだったり。海外旅行と風邪と、あとしばらく間が空くと行きたくなくなる病のせいです(汗)

何とか頑張って行って、いつものメニューをこなしました。海外で美味いものを食べ過ぎたり、風邪で引き篭もってたりしたんで、これまでのトレーニングがリセットされた感じです。そんな訳で物凄い疲れた。

改めてスポーツクラブ通いをスタートします。

タイ旅行4日目 バンコクでの観光と交通事情

3日目はこちら

4日目は最終日です。地下鉄を使って土産物を買ったり観光したりしました。しかし地下鉄の仕組みがわからず戸惑ったり。

券売機で言語をEnglishに変更、目的地のボタンを押すとICチップの入ったコインが出てきて、それを日本のSuicaのようにタッチアンドゴーで改札をくぐります。

この券売機が面白くて、画面にマウスカーソルが見えてるw もしかしてWindows上でAccess+VBAで組んであるのかなぁ。あとタッチパネルの精度が低く、押しづらかった。

で、戸惑ったというのが乗り越しの仕方。窓口に行ってもよくわからず、係りの人に連れられて、改札に2回コインをかざし、その上で窓口に行ったら清算でき、コインの内容を書き換えてもらえ、改札をくぐれました。

091018_154758おみやげを買って一旦ホテルに戻ったら、観光に出発。王宮に向かいます。王宮までは地下鉄が通っていないため、途中から車での移動になります。

連れが「トゥクトゥクに乗りたい」というので、その辺に止まってるトゥクトゥク(三輪オートバイのタクシー)と値段交渉して乗ります。

これはわかっていたもののボッタクリで、通常のタクシーの4倍の料金を請求されました。しかも途中で止まり「ガソリンが無くなったからガソリン代を払え」と英語で言い出したり。幸い連れは英語が堪能だったので、怒鳴って追加料金を支払わずに王宮まで行かせましたが、案の定嫌がらせでかなり大回りさせられたよ。まぁタイではよくあること。

091018_154503とりあえず王宮横のワット・ポーへ。ここには涅槃仏という寝転がった巨大な黄金の仏像があります。でかいし派手だね。

しかし建物内は柱が多く、写真を撮るのには適して無いなぁ。

次に王宮を挟んで反対側にあるワット・プラ・ケオに歩いて移動。入ろうとしたら…「もう閉館だ」と言われる。入場15:30までかよ! 早すぎる。あのボッタクリタクシーに大回りされてなければ入れたかも。でもま、仕方ない。帰りはちゃんとメーター付きの普通のタクシーに乗ったw

晩御飯はホテルのラウンジで食べて空港へ移動。最終便に乗って、朝には成田空港に戻ってきました。

楽しかったですね。辛い食べ物も慣れれば美味いし。タイ人はボッタクリもいるけど、基本的に人がいいし。ただ3泊5日だと全然回りきれないな。是非また行ってみたいです。

あと海外に行った人ならみんな思うことだろうけど、もっと言葉を勉強しないとw

1日目に戻る