三角端。

Δ-sphere管理人三角区也による絵日記/ゲーム開発日記。コメントは右側のweb拍手からどぞー。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

フォント吐き出し

そろそろ旅に出たい

当分旅してないとなんだか無性に旅したくなりますね。


◆ゲーム制作
そんなこんなで今回の作業。

前回の続きでフォント吐き出しツールを作ってました。

テキストデータを受け取り、使われているフォントを下の画像のように吐き出していくツールです。
screen_246.png

ゲームに読み込むためにBMPだと透過データを扱えないのでPNGで出力できる形にしたい、と。
そこでlibpngを導入することにしました。
ダウンロードしてビルドしてlibを作ってフォントコンバータに読み込んで・・・ビルド・・・

ビルドできない・・・!?

なぜかリンクエラーが出てビルドできなかったので、
ちょっとばかし解決方法を考えたのですが、
そこまでlib化することにこだわりはないのでlibpngのファイルをフォントコンバータのプロジェクトに突っ込んで一緒にビルド。
うまく動いたので問題なしw

フォントコンバータは前回の記事の手順で
GetDIBits関数でビットマップを取得してPNGに書き出してます。
ただGetDIBitsだとアルファ情報がなくてうまくいかないので、

白でフォントを描いて、GetDIBitsのカラービットを透過度に、カラーは白にするという方法を取りました。
GetDIBitsのカラービットは半透明部分がグレーになるみたいなので(?)これでうまくいってる感じ。
背景色と描画色の関係で決まるのかもしれませんが。

そんなこんなで次はようやくゲームでのフォントの描きだしです。
スポンサーサイト

Windosプログラミングェ・・・

4週間ぶりの休みでございます。

久々の買い物とか掃除とかなんやら家のことをしていたらあっという間に日曜日です(´・ω・`)
作業進んでねえ!


◆ゲーム制作
フォントを画像データに書き出すツールを作成中。
フォントをそのまま使ってゲームの中で書き出してもいいのですが、
それだと描画負荷かがかかったりするので
あらかじめフォントを画像化してそれを表示しようという魂胆です。

以前も似たようなツールを作った気がするのですが、
GetGlyphOutline関数を使っていたのでUnicode文字が使えないという問題がありました。
それとこの関数は直接アルファ情報つきの画像データを参照できて便利だったのですが、色々とバグ?もあるみたいなので別の方法で作り直すことにしました。

新しく使うのはTextOut関数です。
Windowsプログラムの手順を踏まないといけないのでちょっと面倒なのですが、標準関数だけあって安定しているらしいです。
大まかな流れとしては
1 GetDC関数でデバイスコンテキストハンドル取得
2 1にCreateCompatibleDCでメモリ割り当て
3 CreateCompatibleBitmapでビットマップ割り当て
4 2の領域に対してSelectObjectで3を選択。あとフォント指定も。
5 TextOutWでテキスト書き出し
6 GetDIBitsでビットマップ取得
7 DeleteObject、ReleaseDC

自分でも何言ってんだかわかんないんですけれども、
いやそもそもデバイスコンテキストがなんなのかはっきりと分かっていないんですけれども。
とりあえずこれでできそうなのでやってみます。

調べてテストを動かすだけで丸一日使ってしまった・・・
明日はちゃんと動かせる形にしたいです。

Windowsプログラムはハンドル値しかないから、
デバッガを見て中のデータが正しくなっているのかを見づらいから嫌だよね。



まー技術的な話ばかりしてもアレなので、最近やってるゲームの話題でも。
トライエースの新作、ラビリンスの彼方をやってます。

どんなゲームかというと、
女の子と一緒にダンジョンを最下層から外まで連れて行くゲームです。


このゲームはバトル中にできることが非常に限られていて、
他のゲームのシステムで言うMPを消費して行う行動がないのです。

回復方法も特殊で、
属性的に有利な相手を攻撃するとエネルギーが外に放出され、
その放出されたエネルギーと同じ属性のキャラが攻撃をすると攻撃したキャラが回復します。
これは敵側にも当てはまるので味方のの不利属性のキャラが殴られたあとでその属性の敵のターンが回ってしまうと敵が回復してしまいます。

攻撃の強さを選べて強い攻撃ほど次のターンまでの時間が増えるという仕組みなので、
回復のターンや、守る時間を考えつつプレイしないといけません。


操作が単純で分かりやすいのですが、
1回攻撃するにしても考えることが多いので、
ルールを把握するまで少し難しいかなという印象です。
慣れてきたら強攻撃のタイミングだとか戦略を立てつつプレイできていい感じに面白いです。

あと移動中の4人のやりとりとかも実際にありそうなやりとりでニヤニヤしたりしなかったり。

ネットでは移動がもっさりだとかなんやら叩かれていますが、
個人的には当たりです。
好き嫌いが激しく分かれそうなゲームだとは思いますが・・・



クルケパンジェ!!


◆拍手返答
>>200超えは完全に繁忙期!やばいww ファイトー! あと、誕生日&サイト8周年おめでとう!!
ありがとう!
200超えはつらいよねー(280近かったなんて言えない・・・

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。