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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0307
UHA視覚党10000点ごとにhpを増やす6解決


UHA視覚党

リンク

2021/3/7(Sun) 22:39:06|NO.92435

質問です。
シューティングゲームを作っているのですが、
10000点ごとにhpを100増やすようにしたいです。

if point=10000:hp+=100:pos 120,10:color 0,255,0:mes "+100!" if point=20000:hp+=100:pos 120,10:color 0,255,0:mes "+100!" if point=30000:hp+=100:pos 120,10:color 0,255,0:mes "+100!" if point=40000:hp+=100:pos 120,10:color 0,255,0:mes "+100!" if point=50000:hp+=100:pos 120,10:color 0,255,0:mes "+100!" if point=60000:hp+=100:pos 120,10:color 0,255,0:mes "+100!" if point=70000:hp+=100:pos 120,10:color 0,255,0:mes "+100!" if point=80000:hp+=100:pos 120,10:color 0,255,0:mes "+100!" if point=90000:hp+=100:pos 120,10:color 0,255,0:mes "+100!" if point=100000:hp+=600:pos 120,10:color 0,255,0:mes "+600"
のように書いていくしかないのでしょうか?
よろしくお願いいたします。



この記事に返信する


沢渡

リンク

2021/3/7(Sun) 23:06:24|NO.92436


ext1=0 //10000点ごとにHPが100増えた回数 ext2=0 //100000点ごとに(10000点ごとのものとは別枠で)HPが500増えた回数
このような形で、HPが増えた回数を記録する変数を用意し、

up=0 //増加したHP(メッセージ表示用) if point/10000>ext1 : ext1++ : hp+=100 : up+=100 if point/100000>ext2 : ext2++ : hp+=500 : up+=500 if up : pos 120,10:color 0,255,0 : mes "+"+str(up)+"!" //upが0でないのならメッセージを表示
とすれば良いのではないでしょうか。



メルクーフ

リンク

2021/3/9(Tue) 19:02:12|NO.92446

 これじゃダメですか?

if (point>=10000)&((point\10000)=0) {
hp+=100 pos 120,10 : color 0,255,0 if (point\100000)=0 { hp+=500 mes "+600" } else { mes "+100!" } }

 pointが1万以上かつ1万で割ったあまりが0(つまり1万の倍数)の時はまずhpを100増やし、さらに10万で割ったあまりが0(10万の倍数)の時にはhpを500追加で増やして(合計で600増やす)“+600”と表示し、あまりが0で無ければ“+100!”とだけ表示させます。



UHA視覚党

リンク

2021/3/9(Tue) 19:52:45|NO.92448

よくわかりました。
ありがとうございました。



UHA視覚党

リンク

2021/3/10(Wed) 20:00:33|NO.92457

すみません。
解決済みになっていなかったのでもう一度送ります。



ウンチョコレートカカオ

リンク

2021/3/16(Tue) 12:07:13|NO.92487


repeat
title ""+cnt
if cnt\10000=0:mes "cnt="+cnt
await 1
loop



kou

リンク

2021/3/16(Tue) 19:45:42|NO.92489

シューティングゲーム面白いですよね。
得点関係をモジュールでまとめると楽だと思います。


#module ; 得点関係まとめ #deffunc score_reset ; 得点初期化 _score = 0 : return #defcfunc score_get ; 得点取得 return _score #defcfunc score_up int _point ; 得点上がる _ = (_score/10000) _score += _point if (_score/10000 - _) > 0 : return 1 return 0 #global ; ここから中身 score_reset hp = 100 *main check = score_up(rnd(10000)); ランダムで得点足す if check : hp+=100 : color 255 : else : color mes strf("HP: %d, Score: %d", hp, score_get()) await 16: goto *main



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