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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0107
kinu何が文法エラーなのでしょうか?4解決


kinu

リンク

2020/1/7(Tue) 23:08:15|NO.89196

丁度 作業していたpcが不調になり
自宅で動作確認していませんが 職場では

player(pl,0,"0" ,1,0,0,0)

ここで 文法エラーでとまってしまいます

サンプルプログラムをコピーして ちょっと改変しただけなので
よくわかっていません すません

なぜ エラーになってしまうのか 教えていただきたく お願い申し上げます
 
#include "hspda.as" ;拡張DLL vload等 使用可能宣言
#runtime "hsp3cl"
screen 0, 800,600 ;デバック画面 データ増やしたらYを増やすのだ

#define giobal ctype player(%1,%2=0,%3,%4,%5) \
%1_name(%2)=%3 :\
%1_baller(%2)=%4 :\
%1_role(%2)=%5 :\
%1_ypos(%2)=%6 :\
%1_xpos(%2)=%7

#module
#define global ctype parameter(%1,%2) \
mes "["+%1_name.%2+"]" :\
mes strf("BALL:%%3d ROLE:%%3d Y:%%3d X:%%3d",%1_boller(%2),%1_role(%2),%1_ypos(%2),%1_xpos(%2) :\
mes ""

#global
player(pl,0,"0" ,1,0,0,0)
player(pl,1,"1   ",1,0,0,0)
player(pl,2,"2   ",0,0,0,0)
player(pl,3,"3   ",0,0,0,0)
player(pl,4,"4   ",0,0,0,0)
player(pl,5,"5   ",0,0,0,0)
player(pl,6,"6   ",0,0,0,0)
player(pl,11,"10  ",0,0,0,0)
player(pl,12,"11  ",0,0,0,0)
player(pl,13,"12  ",0,0,0,0)
player(pl,14,"13  ",0,0,0,0)
player(pl,15,"14  ",0,0,0,0)
player(pl,16,"15  ",0,0,0,0)

foreach pl_name
palameter(pl,cnt)
loop

stop



この記事に返信する


あらや

リンク

2020/1/8(Wed) 01:05:12|NO.89197

#defineの使い方が違うような……

やりたい事がよくわかりませんが、#defineは複数行で書くことはできません。
処理の内容的に#defcfuncを使った方が良いかと思います。

そして、行末に:\を多用していますが(おそらくこの行が続いているという意味でしょうが)
HSPではこれは意味をなさないので削除した方が良いかと思います。



rew

リンク

2020/1/8(Wed) 05:46:39|NO.89198

globalがgiobalになってたりparameterがpalameterになってたりballerがbollerになってるのと
playerの引数が5個しか定義されてないのとstrfのカッコが閉じられていないのと
hsp3clでscreenを使っているのが原因ですね。

>#defineは複数行で書くことはできません。
#define等プリプロセス命令は最後に\を置くことで複数行に分けて書けます。
プリプロセス命令意外には使えませんが。


#include "hspda.as" ;拡張DLL vload等 使用可能宣言 #runtime "hsp3cl" ;screen 0, 800,600 ;デバック画面 データ増やしたらYを増やすのだ #define global ctype player(%1,%2=0,%3,%4,%5,%6,%7) \ %1_name(%2)=%3 :\ %1_baller(%2)=%4 :\ %1_role(%2)=%5 :\ %1_ypos(%2)=%6 :\ %1_xpos(%2)=%7 #module #define global ctype parameter(%1,%2) \ mes "["+%1_name.%2+"]" :\ mes strf("BALL:%%3d ROLE:%%3d Y:%%3d X:%%3d",%1_baller(%2),%1_role(%2),%1_ypos(%2),%1_xpos(%2)) :\ mes "" #global player(pl,0,"0",1,0,0,0) player(pl,1,"1   ",1,0,0,0) player(pl,2,"2   ",0,0,0,0) player(pl,3,"3   ",0,0,0,0) player(pl,4,"4   ",0,0,0,0) player(pl,5,"5   ",0,0,0,0) player(pl,6,"6   ",0,0,0,0) player(pl,11,"10  ",0,0,0,0) player(pl,12,"11  ",0,0,0,0) player(pl,13,"12  ",0,0,0,0) player(pl,14,"13  ",0,0,0,0) player(pl,15,"14  ",0,0,0,0) player(pl,16,"15  ",0,0,0,0) foreach pl_name parameter(pl,cnt) loop stop



kinu

リンク

2020/1/8(Wed) 13:43:15|NO.89200

有り難う御座いました
余りに 見る場所が違いすぎて 近視眼になりすぎていました

本当に有り難う御座いましたm(_ _)m



あらや

リンク

2020/1/8(Wed) 18:30:09|NO.89201

>#define等プリプロセス命令は最後に\を置くことで複数行に分けて書けます。
>プリプロセス命令意外には使えませんが。

勉強不足でした、失礼いたしました。
rewさんありがとうございます。



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