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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0921
ARAタイマーに分をつけたいのですが8未解決


ARA

リンク

2011/9/21(Wed) 09:10:52|NO.41548

タイマーをつくろうと思い、
下のような所までできたのですが
分の付け方がわからないのです
秒と同じように入力させて……
までは大丈夫なのですが

3分から2分に
のような切り替えの方法がわからないのです


どなたか教えていただけないでしょうか
お願いします



*hajime cls title "タイマー" font msmincho,20,1 pos 210,100 mes"秒数を入力してください" time="" pos 218,150 input time,200,20 pos 285,173 button "開始",*start stop *start y=int(time) if (y>0) { repeat y+1 cls x=y-(cnt) font "MSゴシック",40,1 pos 308,190 mes x wait(100) cls font "MSゴシック",40,1 pos 278,190 mes"終了" pos 285,290 button "終了",*owari button "もう一度",*hajime loop stop } if (y=0){ dialog "入力された数値が0であるか、文字列です。",1 goto *hajime } *owari end



この記事に返信する


ookenn

リンク

2011/9/21(Wed) 14:44:48|NO.41552

こんにちわ
今回は仮に分の入力ボックスを新たに入れました
もし秒から、分を求めたりするのでしたら m に代入するときにいろいろとすればできると思います
>3分から2分に、のような切り替えの方法がわからないのです
これは普通のタイマーと同じで
秒がゼロになったから分を一つ減らしまた59からというのと同じです。
また余談ですがclsはループ内では使わないように心掛けておいたほうがいいです。
オブジェクト類は画面の場面が本当に変わらない限り、一回の表示でいいと思います。
オブジェクト類はclsなどの命令がない限り、消えませんので。

以下スクリプトです、わからないところがあれば聞いてください。


*hajime cls title "タイマー" font msmincho,20,1 pos 210,100 //分入力画面 mes"分を入力してください" time="" pos 218,150 input time,200,20 pos 210,200 //秒数入力画面 mes"秒数を入力してください" times="" pos 218,230 input times,200,20 pos 285,280 button "開始",*start stop *start cls font "MSゴシック",40,1 pos 285,290 button "終了",*owari button "もう一度",*hajime //秒と分をそれぞれ s と m に代入 m=int(time) s=int(times) if (m>0 and s>0 and s<60) { repeat m*60 + s //表示 font "MSゴシック",40,1 pos 200,190 mes "残り : "+m+"分"+s+"秒" wait 100 //秒が0になったら分を一つ減らし秒を59に if s=0 { m-- s=60 } s-- //画面塗りつぶし color 255,255,255 boxf color 0,0,0 loop pos 278,190 mes"終了" stop }else{ //elseを使うほうが無駄な記述がなくなる dialog "入力された数値が 0 以下 か 60 以上の値、または文字列です。",1 goto *hajime } *owari end



枝月

リンク

2011/9/21(Wed) 15:00:50|NO.41554

分と秒を別の変数で管理するよりも、
残り時間はx秒(xが60以上であっても)とした方が簡単に扱えます。

残り時間をx秒とすると残りの分の数はx/60で、秒数はx\60であらわせますので、

mes x

の部分を
mes str(x/60)+"分"+str(x\60)+"秒"

とすれば分と秒に分けて表示できます。



ARA

リンク

2011/9/21(Wed) 17:13:44|NO.41562

お二人ともご回答ありがとうございます
とてもわかりやすかったです。
おかげでタイマーが完成しました。

>ookennさん
に一つお聞きしたいのですが、


if s=0 { m-- s=60 } s-- //画面塗りつぶし color 255,255,255 boxf color 0,0,0

ここの
m--
 や 
s--

はどういう意味なのですか? この際に覚えておきたいので教えてください 



lltakashill

リンク

2011/9/21(Wed) 17:24:21|NO.41563

>ookennさん
ではないですが、代入演算子といいます。
++と--の二種類があります。
例えば、『a++』は「aに1を足して、aに代入」
つまり、『a = a + 1』に相当します。
また、『a--』は「aに1を引いて、aに代入」
つまり、『a = a - 1』に相当します。
これは、普通の代入処理よりコード量が少ないので、処理速度は速いです。
拙い説明ですが、分かってもらえたでしょうか?



KA

リンク

2011/9/21(Wed) 17:32:48|NO.41564

下記参照 m-- は逆の動作になるのは分かると思います。


A=0 : B=0 : C=0 repeat 10 A++ B=B+1 C+= mes ""+A+" "+B+" "+C loop A=0 : B=0 : C=0 repeat 10 ;A++2 B=B+2 C+=2 mes ""+A+" "+B+" "+C loop



ookenn

リンク

2011/9/21(Wed) 18:17:28|NO.41566

>枝月さん
確かにそうですね、そういう方法もありまね!
自分も参考になりました。
>lltakashill KAさん
説明してくれてありがとうございます
とても分かりやすく言ってくれているので
ARAさんもわかってくれるといいです。
こういう演算子はとても便利なので覚えておくといいですよ

それと余談ですがA++2は
こういう記述は無理だという意味でコメントアウトですか?



ARA

リンク

2011/9/21(Wed) 20:31:21|NO.41574

みなさん!!
本当にありがとうございます!!!

こんな僕に
とても親切に教えていただきありがとうございます


>lltakashillさん
とっても分かりやすくて嬉しいです。
ありがとうございます。

>KAさん
実際にスクリプトで説明していただき
参考になります。
ありがとうございます。

>ookennさん
何度もすいません
それに
とても気を使ってくださって
感謝してます



それと、僕も

>それと余談ですがA++2はこういう記述は無理だという意味でコメントアウトですか?

という部分が気になるので、解決したチェックはしないでおきます。



mamo

リンク

2011/9/23(Fri) 06:09:44|NO.41602

両方を書いて実行してみれば分かるよ?



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