いよいよメインプログラムを構築していく


2017年 6月8日
 
 
 じゃあメイン画面の表示も出来た事だし、そろそろこの辺でメインのプログラムを構築して行く事にする。

 00というのがメインフォルダで、ひと段落事に 01、02のように更新していく。

 今の所中身はこんな感じで

 
 
 こんな感じでインクルード(含ませる)して使う

 syokiは初期設定、putは表示関係をほとんどまとめて、kansuは自前の関数(命令)をぶち込んである。

 mapは今までのマップ作成のプログラム、というようにオブジェクト指向とまでは行かないのだろうが、ある程度ブロック化して書ける。

 こうしないとプログラムが膨大になってくると管理が大変だし、把握が容易になるので。
 
 
 注意するのは HSPの場合、#deffuncなどで定義した命令を呼び出すには、呼び出すプログラムを先に書かなければいけない。

 よって、このメインルーチンはプログラムの最後に書かれている事になってる。

 例えば kansuのような、もっともよく呼び出されると思われるソースは始めのほうに置かれる。

 ちなみにこれ、緑の部分は前作のカルギナカーディアのソースをコピペして改造してるので。
 
 
 メインルーチンはこんな感じ

 まだ未実装の部分が多いが、たぶんこの下に戦闘用のルーチンが同じように付く。

 自分はたぶんどんなゲームプログラムでも、この形式は変わらないと思う。
 ずっとやってきて現在最善と思われる形式がこれ。

 それと自分の場合、どんな画面でも同じ FPS数で画面更新する処理は同じ。
 入力のタイミングもずっと同じ。

 これは元々 PCで画面更新無しで入力待ちにすると、ウインドウに別のウインドウがかぶったりすると画面がそのままになってしまうから、というのもあるし、STGを作っていた名残りでもある。
 
 
 人によってプログラムの書き方は様々だし、今回はどうでもいい内容ではあるが、参考までに。
 
 
 参考になるか分からないが、一応ソースの zipファイルを用意しておく。

 なお、ソースには前回のカルギナカーディアのコードが残照しているので、関係ない部分もあります。

勢力表示と画面操作を作る


2017年 6月4日~6月7日
 
 
 今度は各プレイヤー事の勢力範囲を作っていく事にする。
 
 
 とりあえず 7プレイヤーの表示色を設定して

 前々々回辺りの HEXの色分け技術を使って表示

 色が薄くて分かり難いようなので、後で縁とグラデをもう少し厚く表示するように調整しよう。
 
 
 次にタップしたらその HEXの情報と編集画面を表示、ドラッグで隣接マスへ侵攻というのを作る。

 前々回辺りの技術を元に、タップしたら HEX国の情報ウインドウを開くプログラムを作る。

 画面内に数字が表示されているのは、バグでは無くて HSPDishだと mes表示は常に一番上に表示されるかららしい。

 故にまず HSPDishの本プログラムでは mes命令は自分は使わない。
 もちろん、フォントが機種依存だと言うのもある。
 
 
 次に自分の勢力(青)に隣接する HEXでボタンを放すと攻め込む仕様にする。

 サラッと書いてるが、多少苦労した。

 plm(n)=MAPの勢力

 mainf=0、メイン MAP画面
 mainf=1、国情報画面
 mainf=2、攻め込む

 国情報画面で、後で自分の勢力ならその国の人事とか部隊配置をいじれるようにする。
 とにかく暫定的に。
 
 
 これまた暫定的に、全部自勢力にするとクリア表示するようにした。

 一応ゲーム目的はこんな感じで全部占領するか、たぶん全勢力を滅ぼす(首都を落とす)になるはず。
 
 
 とりあえずマップ処理関係はこんな感じかな。

地形生成を試みる


2017年 5月30日~6月2日
 
 
 さて、今回は MAP生成をやって行く事にする。
 
 
 まずは予定している属性 6つの勢力にそれぞれ対応した地形というものを考える。

 左から火山(火)水辺(水)草原(風)山(地)森(光)沼地(闇)という予定。

 それにしてもひどいグラだなあ。

 グラについてはそのうちエンジェルメーカー氏に描いてもらうとして、あの人も働くだけでほとんど死んでるからなあ、あんまり期待はできない。
 
 
 とりあえず、まず単純に乱数で表示してみる。

 こんな感じだ

 これだけでも戦略マップとしては面白く無いので、進入できない地形を作る。
 
 
 と、言うのは簡単だけどプログラムは多少てこずった。

 何が難しいって地形が空白によって分断してるのをどう判別するか分からない。
 地形が全部陸続きになってないと、とりあえずゲームをクリアできない。

 思考錯誤の末、結局 1マスから隣接するマスを調べていって、全部調べた時に最初に出したマスの総数と隣接で調べたマスの総数が同じなら全部陸続きという方法にした。

 もっとスマートな方法があるのかも知れないが、自分にはこれ以上分からない。

 最初はもう一つの方法で、真ん中の 13番から隣接するマップを作る方法をやってみたが、どうも地形がダマになって面白く無い。

 そこで、始めに一度 25マス全部地形で埋めてから、地形無しをランダムに引き算する事にした、
 こうするといい具合に地形に変化が出る。

 今は一応引き算するのは 5マスにした。

 5マスでもこんな感じにできる

 ソース

 6角形 HEXの隣接マスの移動座標計算の仕方。

 上は-1、下は+1だとして、右上は必ず+3、右下は必ず+4、左下は-3、左上は-4になる。

 これはこのマップが縦 4+3で 7で一周するから。

 もちろん座標の取り方がx,yのようなものなら、別のやり方になるだろう。

 外周の空白に隣接するマスは例外設定を設けている if mapn\7=0のようなものだ。
 これは 7の倍数の HEX番号の上は無い事を意味します。

 データとソースのセットをダウンロード出来るようにするので、参考にしたい人はどうぞ。

hex_bulid ←zipフォルダ

HEXのマスとタップの座標をデータ化する


2017年 5月27日
 
 
 まずマップに番号を割り振る。


 国(?)が 25あるのが分かる。
 
 
 今度は色々と使う事になると思うので HEXの座標をあらかじめ配列変数で DATA化してみる。

 座標計算したものを hxyd(n1,n2)の 2次配列変数に格納し hxyd.datというデータファイルにして出力する。


 
 
 これで次のプログラムだけで良くなる。


 
 
 次にタップ座標を作ってみる。

 これは 6角形上に座標を取るのは難しいし、円形状にシャレてみても複雑で処理が重くなるだけだし、あまり隣接しても誤動作が多くなるだけだと思うので、そりゃもう適当に四角形上に座標を取ってみる。

 とりあえず、こんなもんかなあ。

 これも.datファイルにして DATA化する

 
 
 テストプログラム

 分かり難いけど上の真ん中に赤字で現在のマスが表示されている
 
 
 めんどくさいけど、アンドロイド実機でもテストしてみる。

 できました

 
 
 今回はここまで。

マスのふちを勢力色で塗る


2017年 5月24日~25日
 
 
 それじゃあ前回の技術を使って HEXを勢力色で塗るテストをしてみる。

 ALFARでガシガシ手描きして

 グレーでグラデーションを作る。
 
 
 一周描いて、外枠を消す。
 PNG形式で保存。
 (最終版、完成版は最後にあります)


 (注意:アンドロイド実機では PNG→png、HEX→hex等のファイル名とソース名が違うと 13エラーになるので、たぶんなるべく全部小文字でそろえましょう。
 と言う事で画像ファイルを UPし直しました(^^;))

 テストプログラム

 するとこんな感じ。
 
 
 gmode 3,,,255だと100%塗りつぶしなので gmode 3,,,128くらいで半透明合成する。

 するとこんな感じ。

 JPG画像だと色落ちしてるけど、もう少し明るい。
 
 
 次に背景との合成を試してみる。

 草原らしきを描いて、上から gmode 3,,,128半透明合成(50%)で描いてみる

 うむ、色が混ざって分からなくなるな
 
 
 それじゃあ加算合成 gmode 5,,,128でやってみる。


 明るいねえ(笑)
 
 
 なら gmode 2で塗りつぶしてみる。


 グラデーション部分が暗くなってしまう。
 
 
 思考錯誤の末、ふちを 1ドット gmode 2で塗りつぶし、残りのグラデを gmode 5,,,128で加算合成する事にした。

 
 
 赤(255,0,0)

 緑(0,255,0)

 青(0,0,255)

 白(255,255,255)

 
 
 最終版(ご使用するならどうぞ)

 
 
 まあとにかく基本はこれで、後は改造したり微調整していく事にする。

HSPDishで表示カラーの変更に挑戦


2017年 5月19日~23日
 
 
 ああ、どうにも立ち上がらない、やる気がしないと言うかエンジンがかからない。
 しばらくやらないと、ねえ。
 プロジェクトの立ち上がりって途方に暮れます。
 どこからとっついたら良いのか分からなくてダラダラしてます。
 こうなるとあせってくるよねえ、一歩一歩破滅に近づいてますしね(笑)

 そんな訳でとりあえず表示色を数値で変更できるかどうかから研究してみることにした。
 カラーパレットみたいな事ができるといいなと思う。

 例えば勢力の表示色の違いを一々グラフィックで用意するのめんどいので。

  “HSPDishで表示カラーの変更に挑戦” の続きを読む

次の作品を作る事にしたよ


2017年 5月15~16日
 
 
 色々考えたんだけど、結局カルギナカーディアはお蔵入りする事にしました。

 まあ本当はテストモデルとしてストアへの UPとか収益の確認とかしたかったんだけど、どうも悪い予感がしてなぜか分からないけど、それとやっぱり 3番煎じ 4番煎じなのは否めない。
 今回は HSPDishで作品を作る所までの試作品と言う事で終わりにします。
 まあ実験のために「とりあえず作った」作品なのはたしかです。

  “次の作品を作る事にしたよ” の続きを読む

シブサワコウさんの本から学ぶゲーム事業の事


2017年 5月3日
 
 
 ネットを見ていたら、たまたまこんなフレーズが目に入ってきた。

 「0から 1を創造する」

 ふむふむ、今の自分に丁度いるものだな、何だろうと思ってみてみるとKOEIのシブサワコウさんの本らしい。

 創造の仕方も知りたいが、今はむしろ「ゲームの正当制」つまりどういうあり方ならゲームを仕事にする事を許されるのか、肯定されるのかを知りたい。

 という事でアルバイトで多少お金もできたし、ちょっと面白そうなので早速買ってみた。


  “シブサワコウさんの本から学ぶゲーム事業の事” の続きを読む

CC、タイムロック機能を実装するぞ


2017年 4月14日~5月1日
 
 
 よ~し、んでは再開するにあたってまず変更の柱である「タイムロック(Time Lock)機能」をつけてみるかいな、と。

 あ~ひさしぶりにプログラム触るので、何がなんだか。
 
 
 と、その前に世の中に他にタイムロックが無いか調べてみる。

  “CC、タイムロック機能を実装するぞ” の続きを読む

レンタルサーバーとドメインの継続


2017年 4月11日
 
 
 やっと仕事が終わりました。
 地獄を見ました、2度とゴメンです。
 
 
 とりあえず再開するにあたって、まずレンタルサーバーとドメインの契約を継続させる必要があります。

 どちらも 3月の終わり位の契約なので、これは 3月中に払いました。

 Xサーバー 12ヶ月 12,960 円
 お名前com ドメイン 1年 1,760 円

 経費ばかりかかってますけど、回収できる日は来るんでしょうか。