HomeコンピュータHSP › HSPで文字を縁取りする

HSPで文字を縁取りする

久しぶりにHSP触りました。

txt2exoのプログラムで少しきになるところがあった(プレビューの縁取り)ので、そこをモジュール化してみました。

実際はもう少し違うプログラムですが、ここでは文字の縁取り部分だけです。

#module
#deffunc fuchimes str a , int n, int r , int g , int b
bold = n
color_r = r : color_g = g : color_b = b

;色範囲を0~255に制限
if color_r > 255 : color_r = 255
if color_g > 255 : color_g = 255
if color_b > 255 : color_b = 255
if color_r < 0 : color_r = 0
if color_g < 0 : color_g = 0
if color_b < 0 : color_b = 0

if bold < 0 : bold = 0

;現在のカラーコードを一時保存
ncolor_r = ginfo_r
ncolor_g = ginfo_g
ncolor_b = ginfo_b

redraw 0

;縁描画
color color_r,color_g,color_b
pos ginfo_cx-boid , ginfo_cy-boid
repeat bold*2+1 ;縦移動
	cposy_x = ginfo_cx : cposy_y = ginfo_cy
	repeat bold*2+1 ;横移動
		cposx_x = ginfo_cx : cposx_y = ginfo_cy
		mes a
		pos cposx_x+1 , cposx_y
	loop
	pos cposy_x , cposy_y+1
loop

;中心文字描画
color ncolor_r,ncolor_g,ncolor_b
pos cposy_x+bold , cposx_y-bold
mes a

redraw 1

return
#global

fuchimes "Hello World!",5,100,140,235

fuchimes “文字列”,縁の太さ,カラーコードR,カラーコードG,カラーコードB

文字色は現在の色設定、縁の色はfuchimes命令中で指定した色です。

まぁグーグル先生にかかればこんなの他にいくらでも見つかると思います。

多分これよりも処理が早いものもあると思いますが、頻繁に書き換えないのならこれでいい気もします。

あと、改行を含んでも大丈夫だと思います。

参考になれば。

あらかじめ色を指定(ここでは、255,255,128)しておくとこんな感じになる

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>