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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0608
SADOUS「if命令以外で{~}が使われています」no4解決


SADOUS

リンク

2014/6/8(Sun) 20:34:55|NO.62360

毎回思うのですが、題名にあるエラーの発生タイミングが
いまいちわからず、いざ出てきてどう対処していいかわからず困っています。


今回は以下の様なrepeat~loop間のif文です。

*enemy ;敵機移動 ;放電あたり判定 repeat length(em):em_cnt=cnt if current=1:distance=abs(sqrt(powf(sf10x-emx(cnt),2)+powf(sf10y-emy(cnt),2))) if distance<=current & current=1{ em_c(cnt)=current_num : else : em_c(cnt)=0 repeat length(em) distance=abs(sqrt(powf(emx(em_cnt)-emx(cnt),2)+powf(emy(em_cnt)-emy(cnt),2))) if distance<=em_cr : em_c(cnt)=current_num : else : em_c(cnt)=0 loop } loop return



この記事に返信する


kanahiron

リンク

2014/6/8(Sun) 20:44:57|NO.62361

原因はこの行だと思います
em_c(cnt)=current_num : else : em_c(cnt)=0
自分は一行でif elseするの嫌いなのでその他も少し書き換えました
*enemy
;敵機移動 ;放電あたり判定 repeat length(em):em_cnt=cnt if current=1 : distance = abs(sqrt(powf(sf10x-emx(cnt),2)+powf(sf10y-emy(cnt),2))) if (distance<=current) & (current=1){ em_c(cnt)=current_num } else { em_c(cnt)=0 repeat length(em) distance=abs(sqrt(powf(emx(em_cnt)-emx(cnt),2)+powf(emy(em_cnt)-emy(cnt),2))) if distance<=em_cr { em_c(cnt)=current_num } else { em_c(cnt)=0 } loop } loop return



ZAP

リンク

2014/6/8(Sun) 20:47:27|NO.62363

if 条件式 {
 (条件が成立した場合)
}
else {
 (条件式が成立しなかった場合)
}

となってないのでエラーになってます。


f distance<=current & current=1{

以降の式を見直してみてください。



SADOUS

リンク

2014/6/8(Sun) 20:52:07|NO.62364

確かになんかよくわからない行が・・・
>原因はこの行だと思います
>em_c(cnt)=current_num : else : em_c(cnt)=0
elseの使い方に慣れていないんだなーと思わされます。

kanahironさん助かりました。
これで当分は複数行のif文に悩まされずに済みそうです。



SADOUS

リンク

2014/6/8(Sun) 20:53:36|NO.62365

>ZAPさん
ご指摘ありがとうございます。まさにそのとおりでした。



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