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


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


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

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

/////// HEX 座標 DATA///////

	hbx=52	: hkx=hbx/2	; 横の大きさ、半分、間隔
	hby=90	: hky=hby/2	; 縦の大きさ、間隔

	dim hxyd,2,26	; 格納する変数(0=x、1=y)

	n=1
	repeat 7 : cx=cnt : px=(hbx+hkx)*cnt+34 ; x座標
	 if cnt\2=0 : yk=0 : else : yk=-hky	; y座標補整
	 repeat 4 : cy=cnt : py=hby*cnt		; y座標

	  if cx=1 and cy=0 : continue	; 描かない座標
	  if cx=3 and cy=0 : continue
	  if cx=5 and cy=0 : continue

	  hxyd(0,n)=px	; データ格納
	  hxyd(1,n)=py+yk
	  n+

	 loop
	loop

	bsave "hxyd.dat",hxyd	; データファイル出力


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

/////// HEX 描画///////

#include "hsp3dish.as"

	screen 0,640,360

	celload "hex_104_90_test.png",1
	 celdiv 1,104,90

	dim hxyd,2,26	; 格納する変数(0=x、1=y)
	 bload "hxyd.dat",hxyd ; 座標データ読み込み


	redraw 0

	 color 0,0,0 : boxf : color 255,255,255

	 gmode 2

	 repeat 25,1
	  x=hxyd(0,cnt) : y=hxyd(1,cnt)
	  pos x,y : celput 1,0	; HEX描画
	  pos x+44,y+36 : mes cnt	; HEX番号
	 loop

	redraw 1


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

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

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

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

/////// タツプ座標 ///////

#include "hsp3dish.as"

	screen 0,640,360

	celload "hex_104_90_test.png",1
	 celdiv 1,104,90


	dim hxyd,2,26	; HEX座標変数(0=x、1=y)
	 bload "hxyd.dat",hxyd ; HEX座標データ読み込み

	dim txyd,4,26	; タップ変数(0=tx1、1=ty1、2=tx2、3=ty2)


	redraw 0

	 color 0,0,0 : boxf : color 255,255,255

	 gmode 2

	 repeat 25,1
	  x=hxyd(0,cnt) : y=hxyd(1,cnt)
	  pos x,y : celput 1,0	; HEX描画
	  ;pos x+86,y+38 : mes cnt

	  tx1=x+20 : tx2=x+84
	  ty1=y+15 : ty2=y+75
	
	  boxf tx1,ty1,tx2,ty2	; 矩形表示

	  txyd(0,cnt)=tx1
	  txyd(1,cnt)=ty1
	  txyd(2,cnt)=tx2
	  txyd(3,cnt)=ty2
	 loop

	redraw 1

	bsave "txyd.dat",txyd ; タップ座標データ書き出し

 
 
 テストプログラム

/////// タップテスト ///////

#include "hsp3dish.as"

	screen 0,640,360

	celload "hex_104_90_test.png",1
	 celdiv 1,104,90

	dim hxyd,2,26	; HEX座標変数(0=x、1=y)
	 bload "hxyd.dat",hxyd ; HEX座標データ読み込み

	dim txyd,4,26	; タップ座標変数(0=tx1、1=ty1、2=tx2、3=ty2)
	 bload "txyd.dat",txyd ; タップ座標データ読み込み


	repeat

	 kx=mousex : ky=mousey : kn=0

	 repeat 25,1 ; カーソル位置確認
	  if txyd(0,cnt)<kx and txyd(1,cnt)<ky and txyd(2,cnt)>kx and txyd(3,cnt)>ky : kn=cnt : break
	 loop

;------- 表示 -------

	 redraw 0
	  color 0,0,0 : boxf : color 255,255,255

	  gmode 2

	  repeat 25,1
	   x=hxyd(0,cnt) : y=hxyd(1,cnt)
	   pos x,y : celput 1,0	; HEX描画
	   pos x+86,y+38 : mes cnt ; マス番号表示

	   boxf txyd(0,cnt),txyd(1,cnt),txyd(2,cnt),txyd(3,cnt)	; 矩形表示

	   if kn>0 : color 255,0,0 : pos 310,10 : mes kn : color 255,255,255
	  loop
	 redraw 1

	 await 1000/20
	loop

stop

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

 できました

 
 
 今回はここまで。

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


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

 ALFARでガシガシ手描きして

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


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

 テストプログラム

/////// HEX /////////////////////////////////////////

#include "hsp3dish.as"

	hbx=52	: hkx=hbx/2	; 横の大きさ、半分、間隔
	hby=90	: hky=hby/2		; 縦の大きさ、間隔

	screen 0,640,360

	celload "hex_104_90_d.png",1
	 celdiv 1,104,90


	redraw 0

	 color 0,0,0 : boxf
	
;------- HEX描画 -----------------------------------------

	 gmode 2
	 gmulcolor 255,255,255		; 色をリセット

	 repeat 7 : cx=cnt : px=(hbx+hkx)*cnt+34 ; x座標
	  if cnt\2=0 : yk=0 : else : yk=-hky	; y座標補整
	  repeat 4 : cy=cnt : py=hby*cnt		; y座標

	   pos px,py+yk : celput 1,0	; HEX描画

	  loop
	 loop


;------- ふち描画 -----------------------------------------

	 gmode 3,,,255			; 加算合成

	 rn=255 : gn=0 : bn=0
	  gmulcolor rn,gn,bn	; 色指定

	 repeat 7 : cx=cnt : px=(hbx+hkx)*cnt+34 ; x座標
	  if cnt\2=0 : yk=0 : else : yk=-hky	; y座標補整
	  repeat 4 : cy=cnt : py=hby*cnt		; y座標

	  if cx=1 and cy=0 : continue	; 描かない座標
	  if cx=3 and cy=0 : continue
	  if cx=5 and cy=0 : continue

	  pos px,py+yk : celput 1,1	; ふち描画

	  loop
	 loop

	 pos 

	redraw 1

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

 するとこんな感じ。

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

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

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


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


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

/////// HEX /////////////////////////////////////////

#include "hsp3dish.as"

	hbx=52	: hkx=hbx/2;-1	; 横の大きさ、半分、間隔
	hby=90	: hky=hby/2		; 縦の大きさ、間隔

	screen 0,640,360

	celload "hex_104_90_f.png",1
	 celdiv 1,104,96


	redraw 0

	 color 0,0,0 : boxf
	
;------- HEX描画 -----------------------------------------


	 repeat 7 : cx=cnt : px=(hbx+hkx)*cnt+34 ; x座標
	  if cnt\2=0 : yk=0 : else : yk=-hky	; y座標補整
	  repeat 4 : cy=cnt : py=hby*cnt		; y座標

	  if cx=1 and cy=0 : continue	; 描かない座標
	  if cx=3 and cy=0 : continue
	  if cx=5 and cy=0 : continue

	  gmode 2
	   gmulcolor 255,255,255		; 色をリセット
	    pos px,py+yk : celput 1,0	; HEX描画
	    pos px,py+yk : celput 1,2	; 草原描画

	  rn=255 : gn=0 : bn=0
	   gmulcolor rn,gn,bn			; 色指定
	    pos px,py+yk : celput 1,19	; ふち描画

	  gmode 5,,,160					; 加算合成
	   pos px,py+yk : celput 1,20	; ふちグラデ描画

	  loop
	 loop

	redraw 1

 
 
 赤(255,0,0)

 緑(0,255,0)

 青(0,0,255)

 白(255,255,255)

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

/////// HEX /////////////////////////////////////////

#include "hsp3dish.as"

	hbx=52	: hkx=hbx/2	; 横の大きさ、半分、間隔
	hby=90	: hky=hby/2	; 縦の大きさ、間隔

	screen 0,640,360

	celload "hex_104_90_test.png",1
	 celdiv 1,104,90


	redraw 0

	 color 0,0,0 : boxf
	
;------- HEX描画 -----------------------------------------


	 repeat 7 : cx=cnt : px=(hbx+hkx)*cnt+34 ; x座標
	  if cnt\2=0 : yk=0 : else : yk=-hky	; y座標補整
	  repeat 4 : cy=cnt : py=hby*cnt		; y座標

	  if cx=1 and cy=0 : continue	; 描かない座標
	  if cx=3 and cy=0 : continue
	  if cx=5 and cy=0 : continue

	  gmode 2
	   gmulcolor 255,255,255		; 色をリセット
	    pos px,py+yk : celput 1,0	; HEX描画
	    pos px,py+yk : celput 1,1	; 草原描画

	  rn=255 : gn=0 : bn=0
	   gmulcolor rn,gn,bn			; 色指定
	    pos px,py+yk : celput 1,2	; ふち描画

	  gmode 5,,,160					; 加算合成
	   pos px,py+yk : celput 1,3	; ふちグラデ描画

	  loop
	 loop

	redraw 1

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

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 円

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

ゲームの面白さとは何か

2017年 3月14日
 
 
 仕事を止められるまで、体の疲れで休むだけでいっぱいなので、まだ制作のほうを再開できない。
 もう少し待って下さい。
 
 
 今回はそもそもゲームとは何か、ゲームの面白さとは何かの一つを考察してみたいと思います。

  "ゲームの面白さとは何か" の続きを読む

クリエイター心構え


2017年 1月13日
 
 
クリエイター心構え

 技術の具体的なハウツーは多いけど、意外と考え方とか心構えの情報は少ない。

 そこで自分が今までの経験で学んだ心構えを書いてみる。

 およそ師と言うものは技の伝授をする役割も有るけど、むしろ奥義とか秘伝と言ったものは考え方の伝授にあると思う。

 ただし「プロで無い人の考え方をマネしてもプロになれない」という法則もあると思うので、むしろこんな所で余計な知識を入れないほうが良いという事もあるかもしれない。

 おそらくプロに共通する成功方法は「現場に飛び込む」だと思われ、考えたり練習したりするより、アルバイトやアシスタントでも良いからなんとか現実の職業の中に飛び込んでしまうのが一番手っ取り早いものと思われる。

  "クリエイター心構え" の続きを読む