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


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

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です