HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0706
Aモジュールに関して8未解決


A

リンク

2012/7/6(Fri) 14:26:41|NO.47522

またまた教えていただきたいことがあり、質問させていただきます。
よろしくお願いします。





#module mess px, py, mx, my, ward, color_R, color_G, color_B, window_ID //px, py は吹き出しの表示位置 = 整数 //mx, my は吹き出し内の文字の位置 //ward は吹き出し内の文字 = 文字列 //color_R, color_G, color_B は文字の色 //window_ID はウィンドウID #deffunc mess_load newmod new_var, mess return #modinit px = 10 py = 300 mx = 15 my = 310 ward = "ああ" color_R = 255 color_G = 255 color_B = 255 window_ID = 0 return #modfunc _messput buffer 99 picload "吹き出し.gif" screen window_ID pos px, py gcopy 99,,,439,142 pos mx, my : color color_R, color_G, color_B mes ward return #deffunc messput _messput new_var return #global mess_load messput//ここで、pxの値などを指定して、反映(表示位置などの変更、文字の変更)をさせたいです。


上のスクリプトなのですが、
変数の値の変更をしたいのですが、どのようにすればよいのかわかりません。


例えば、
messput を使うと吹き出しが、座標(10,300)のところに描画されると思うのですが、


messput 50, 500

とすることで吹き出しが、座標(50,500)のところに描画されるようにしたいのです。





方法を教えていただけないでしょうか。
どうぞよろしくお願いします。



この記事に返信する


A

リンク

2012/7/6(Fri) 14:31:18|NO.47523

吹き出しの画像です。
画像名が『FUKIDASHI』になっています。


http://crowman.web.fc2.com/FUKIDASHI



fortunehill

リンク

2012/7/6(Fri) 16:50:13|NO.47524

/*目的が判らないけどこう言う事?*/

#module mess px, py, mx, my, ward, color_R, color_G, color_B, window_ID #deffunc mess_load int p1,int p2,int p3,int p4,str p5,int p6,int p7,int p8,int p9 newmod new_var,mess,p1,p2,p3,p4,p5,p6,p7,p8,p9 return #modinit int p1,int p2,int p3,int p4,str p5,int p6,int p7,int p8,int p9 px = p1 :py = p2 mx = p3 :my = p4 ward = p5 color_R = p6 :color_G = p7 :color_B = p8 window_ID = p9 return #modfunc _messput buffer 99 boxf 0,0,100,100 ;picload "吹き出し.gif" screen window_ID pos px, py :gcopy 99,,,439,142 pos mx, my :color color_R, color_G, color_B :mes ward return /* #modfunc messput _messput new_var */ return #global mess_load 10, 10, 30, 30,"ABC",255,0,0,0 mess_load 100, 10,130, 30,"DEF",255,0,0,1 mess_load 100,130,130,150,"GHI",255,0,0,2 _messput new_var@mess(0) _messput new_var@mess(1) _messput new_var@mess(2) mes length(new_var@mess)



MillkeyWeler

リンク

2012/7/6(Fri) 16:51:57|NO.47525

とりあえず、以前から思ったこと。
なぜ、#mod 系にこだわるのかがさっぱりわからん。

とりあえず、#mod 系を使わないサンプルだけ。

#module #deffunc mess_load buffer 99 picload "吹き出し.gif" color_R = 255 color_G = 255 color_B = 255 return #deffunc messput int _p1,int _p2,str _p3 gsel ginfo(2) pos _p1, _p2 gcopy 99,,,439,142 pos _p1+9, _p2+9 : color color_R, color_G, color_B mes _p3 return #global mess_load messput 50,250,"これはサンプルです。"



レノス

リンク

2012/7/6(Fri) 19:20:33|NO.47533

邪推かもしれないですが、
#deffunc, #modfunc の命令で引数を受け取る方法を
分かっていないようにみえます。

#module #deffunc test int parameter mes parameter return #global test 12 //← parameter = 12 として test 命令を行う
# 詳しくは F1 ヘルプなどご参照。


変数の値を変更するには、もちろん代入を行います。

#modfunc messpos int _px, int _py px = _px py = _py return
必要なら _messput の中に。


それと、Aさんのやり方ではモジュール変数を使用するメリットが
全く無くなってしまっています (結局 new_var(0) しか参照されないため)
また、#deffunc からいちいち転送するのも冗長だと思うのですが。。。



A

リンク

2012/7/6(Fri) 20:17:34|NO.47534

>>fortunehillさん


mess_load 100, 10, 100, 30,"ABC",255,0,0,0
そんな感じなんですが、
引数を省略しても大丈夫なようにしたいです。


>>MillkeyWelerさん

私が、#mod を使っていることに深い理由はありません。昔にみたスクリプトを参考にしながら作っていると、このようなスタイルになりました。

#mod を使っていますが、#mod と他のものの違いがよくわからないです。




>>レノスさん

・もともと数値を決めておいて(x = 10 と初めに定義して)から、代入する(のちに、x = _p2 とする)場合にエラーがでます。
[モジュール変数の指定が無効です]



#module mess px, py, ward #deffunc mess_load newmod new_var, mess return #modinit px = 10 py = 300 ward = "ああ" return #modfunc _messput buffer 99 picload "吹き出し.gif" gsel ginfo(2) pos px, py gcopy 99,,,439,142 mes ward return #deffunc messput int _p1,int _p2,str _p3 _messput new_var px = _p2 py = _p2 ward = _p3 return #global screen 0,460,450 mess_load messput 10,10,"a"

↑こんな時です。




・モジュールの記述の仕方を覚えているだけなので、モジュール変数のメリットとかよくわからないです。
(マスターはしていません)



fortunehill

リンク

2012/7/6(Fri) 23:38:04|NO.47538

/*引数省略だけならマクロ噛ませるとか?上の方にあるけどモジュール変数に貯める意味が?*/


#define _mess_load(%1=10,%2=10,%3=30,%4=30,%5="ABC",%6=255,%7=0,%8=0,%9=0) \ mess_load %1,%2,%3,%4,%5,%6,%7,%8,%9 _mess_load _messput new_var@mess(0)



check

リンク

2012/7/7(Sat) 02:28:20|NO.47539

>#mod を使っていますが、#mod と他のものの違いがよくわからないです。
よく分からないのなら使わないほうがいいんじゃないか。

正直俺はモジュール機能の#deffuncと#defcfunc以外は使ってないし。
#mod系のプリプロセッサで擬似クラスが作成できるみたいなんだが、
クラスの概念がよく分かっていないのなら使用はお勧めできないな。



暇人

リンク

2012/7/7(Sat) 19:23:38|NO.47543

>[モジュール変数の指定が無効です]
#modfunc で割り当てられた命令内じゃないとモジュール変数は扱えないと書いたはずだが・・・
> _messput new_var
ここで_p1等を渡して#modfunc側で代入させる必要がある

モジュール変数を扱う練習してるんじゃなければ
無理に使う必要は無いと思う

#module mess //px, py は吹き出しの表示位置 = 整数 //mx, my は吹き出し内の文字の位置 //ward は吹き出し内の文字 = 文字列 //color_R, color_G, color_B は文字の色 //window_ID はウィンドウID #deffunc mess_load winid_bak=ginfo(3) px = 10 py = 300 mx = 5 //pxに加算して文字表示位置にする my = 10 ward = "ああ" color_R = 255 color_G = 255 color_B = 255 window_ID = 0 buffer 99 picload "FUKIDASHI.gif" gsel winid_bak return #deffunc messpos int _mx, int _my mx = _mx my = _my return #deffunc messstr str _ward ward = _ward return #deffunc messcol int _color_R, int _color_G, int _color_B color_R = _color_R color_G = _color_G color_B = _color_B return #define global messput(%1=px@mess,%2=py@mess,%3=ward@mess) _messput %1,%2,%3 #deffunc _messput int _px,int _py,str _ward px = _px py = _py ward = _ward gsel window_ID pos px, py gcopy 99,,,439,142 pos px+mx, py+my : color color_R, color_G, color_B mes ward return #global mess_load messput messput 50, 10,"aa" messcol 255 messpos 20,20 messstr "あいうえお" messput , 155
messputのパラメータ(px,py,ward)を省略すると事前に設定されたデータが使われる



ONION software Copyright 1997-2021(c) All rights reserved.