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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0904
メロン同じ内容のスクリプトの複製5解決


メロン

リンク

2011/9/4(Sun) 01:18:47|NO.41070

一行のスクリプトをそれぞれ独立させて10行ぐらいに複製したいです。

N = "" A = 0;見た話数の変数 objsize 50,20,1 input N,200,20;タイトル入力 pos 200,0 input N,80,20,6;話数入力 pos 280,0 button "UP",*up pos 330,0 button "DOWN",*down goto *mada;最初は0なのでmadaへ飛ぶ stop *mada objprm 1,"まだ見てない" stop *up A++ objprm 1,""+A+"話まで見た" if A = 0 : goto *mada stop *down if A = 0 : goto *mada;既に話数が0ならmadaへ飛ぶ A-- objprm 1,""+A+"話まで見た" if A = 0 : goto *mada;変えた結果が0ならmadaへ飛ぶ stop
見たアニメの話数をカウントしたいのですが、
複数のものをそれぞれカウントするためにこれを複製してそれぞれ別に動かそうとしても、
ラベルや変数が重複してしまいうまくいきません。
どうすれば良いでしょうか?



この記事に返信する


たんす

リンク

2011/9/4(Sun) 02:23:25|NO.41071

ボタンが押されたときにシステム変数statを見れば
どのオブジェクト(ボタン)が押されたのかを判断できますので、
何段目のUP/DOWNが押されたかを計算して処理できます。

//-------------------------------------- sdim N,50,10 dim A,10 ;見た話数の変数 //---------------------------- objsize 50,20,1 repeat 10 pos 0,cnt*20 :input N(cnt),200,20;タイトル入力 pos 200,cnt*20 :input N(cnt),80,20,6;話数入力 pos 280,cnt*20 :button "UP",*up pos 330,cnt*20 :button "DOWN",*down objprm cnt*4+1,"まだ見てない" loop stop //------------------------------------- *up st=stat ;ボタンIDの取得 A(st/4)++ objprm st-1,""+A(st/4)+"話まで見た" stop //------------------------------------- *down st=stat ;ボタンIDの取得 A(st/4)-- objprm st-2,""+A(st/4)+"話まで見た" if A(st/4) <= 0{ objprm st-2,"まだ見てない" A(st/4)=0 } stop //-------------------------------------



玄冬

リンク

2011/9/4(Sun) 02:46:10|NO.41073

オブジェクトIDを取得、そこから添え字を算出して
配列関数で管理すると解決できると思います。

#const H 25; ボックス高さ sdim N N = "A", "B", "C", "D", "E", "F","G","H","I","J" dim A;見た話数の変数 objsize 50,20,1 repeat 10 pos 0 ,cnt*H : input N(cnt),200, 20;タイトル入力 pos 200,cnt*H : input A(cnt),80, 20, 6;話数入力 pos 280,cnt*H : button "UP", *change pos 330,cnt*H : button "DOWN", *change v_ID = cnt : gosub *view loop stop *change v_ID = int(stat/4) A(v_ID) += -2*(stat\4)+5 gosub *view stop *view if A(v_ID) <= 0 : v_mes = "まだ見てない": A(v_ID)=0 : else : v_mes = "" + A(v_ID) + "話まで見た" objprm (v_ID * 4 + 1), v_mes return



メロン

リンク

2011/9/4(Sun) 11:48:50|NO.41076

追加で質問してよろしいでしょうか?
書き換えた内容を保存して、次回の起動時や「読み込み」ボタンを押したときに
読み込むようにするにはどうしたら良いでしょうか?
bsaveを使っても上手く保存できません・・・



who

リンク

2011/9/4(Sun) 12:40:55|NO.41077

たんすさんのソースを借り、読み込みと保存機能を付けさしてもらいました。

//-------------------------------------- sdim N,50,10 sdim Na,50,10 dim A,10 ;見た話数の変数 //---------------------------- objsize 50,20,1 repeat 10 pos 0,cnt*20 :input N(cnt),200,20;タイトル入力 pos 200,cnt*20 :input Na(cnt),80,20,6;話数入力 pos 280,cnt*20 :button "UP",*up pos 330,cnt*20 :button "DOWN",*down objprm cnt*4+1,"まだ見てない" loop pos 590,0 button "保存する",*save goto*load stop //------------------------------------- *up st=stat ;ボタンIDの取得 A(st/4)++ objprm st-1,""+A(st/4)+"話まで見た" stop //------------------------------------- *down st=stat ;ボタンIDの取得 A(st/4)-- objprm st-2,""+A(st/4)+"話まで見た" if A(st/4) <= 0{ objprm st-2,"まだ見てない" A(st/4)=0 } stop //------------------------------------- *save sdim data,1000 notesel data repeat 10 noteadd ""+N(cnt),-1,0 noteadd ""+A(cnt),-1,0 loop notesave "data.txt" stop *load sdim data,1000 notesel data exist "data.txt" if strsize<=0{notesave"data.txt":stop} noteload "data.txt" repeat 10 noteget N(cnt),2*cnt objprm 4*cnt,N(cnt) noteget Na(cnt),2*cnt+1 A(cnt)=int(Na(cnt)) if A(cnt)=0{Na(cnt)="まだみてない"}else{ Na(cnt)=""+A(cnt)+"話まで見た" } objprm 4*cnt+1,Na(cnt) loop



メロン

リンク

2011/9/4(Sun) 21:21:51|NO.41086

ありがとうございます。



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