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


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0807
まり文字を点滅させたいです10未解決


まり

リンク

2011/8/7(Sun) 13:48:06|NO.40433

超初心者です。
文字を点滅させたいのですが、どうすれば良いでしょうか?

●←これを点滅させる、ということで、たくさん案を出していただけると
嬉しいです。
よろしくお願いします。



この記事に返信する


WHOS

リンク

2011/8/7(Sun) 14:08:55|NO.40434


repeat wait 50 mes "●" wait 50 cls loop


*looping wait 50 mes "●" wait 50 cls goto,*looping



who

リンク

2011/8/7(Sun) 14:22:24|NO.40435

普通はこんな感じでしょうか

time=0 *looping redraw 1:await 20:redraw 0 color 255,255,255:boxf time++ color 0,0,0 pos 0,0 mes "time:"+time if (time/20)\2=0{ color 0,0,0 pos 0,50 mes "●" } if ((time+10)/20)\2=0{ color 0,0,0 pos 0,100 mes "●" } if ((time+5)/10)\2=0{ color 0,0,0 pos 0,150 mes "●" } goto *looping



fortunehill

リンク

2011/8/7(Sun) 15:13:47|NO.40436

パレットとか?

screen 0,,,1 mes "●" repeat palette 0,255,255,255,1 redraw wait 100 palette 0,0,0,0,1 redraw await 100 loop



てれてれ

リンク

2011/8/7(Sun) 16:57:18|NO.40437


buffer 1 : mes "●" gsel 0 repeat redraw 0 color 255,255,255 : boxf gmode 4,,,abs( cnt\16-8 )*32 gcopy 1,0,0,16,18 redraw 1 await 1 loop
こんな感じかな



Cookies

リンク

2011/8/7(Sun) 17:02:53|NO.40438


t = 0 //時間 sw= 0 //スイッチ。1のとき●が表示される。 *main redraw 0 color $FF,$FF,$FF : boxf : color //画面クリア if t\25=0 : sw = (sw + 1) \ 2 //tが25の倍数になるごとに=ループが25回されるごとにswを切り替える。 //swが1のとき、(1+1)\2=0、0のとき、(0+1)\2=1。 if sw : pos 0, 0 : mes "●" //swが1だったら●表示。 redraw 1 t++ //tをインクリメント(1加算)。 wait 1 //10ms待つ。 goto *main
われながらひどい。特に初心者には。
しょうがないのでコメントを多めに入れました。
if t\25=0 : 〜〜のとこの、25を変えると、間隔を変えられます。
\はあまりの記号です。2\2は2を2で割った余り。つまり0。


このスレの中で、WHOSさんとfortunehillさんは表示するたびに待つ、
whoさん,てれてれさんと私は余りを使っていく方法ですね。



てれてれ

リンク

2011/8/7(Sun) 18:28:20|NO.40440

蛇足ですが

Cookiesさんのスクリプトの以下の計算は、
sw = (sw + 1) \ 2

sw = 1 - sw
に置き換えられますよ。



Cookies

リンク

2011/8/7(Sun) 22:54:19|NO.40448

>Cookiesさんのスクリプトの以下の計算は、
>sw = (sw + 1) \ 2
>sw = 1 - sw
>に置き換えられますよ。
mjk!まったく一緒じゃん。
超初心者だからXORをやめようと思ったのに。
相当回りくどいことしたなぁ。
すいません。



木村

リンク

2011/8/8(Mon) 03:51:07|NO.40450

 蛇足に尾びれを付けた話ですが、0と1を反転させたい場合、どのやり方が一番早いか調べてみました。使用したスクリプトと当方の結果は以下。

#include "d3m.hsp" #define N $80000 wait 100 func = "無し", "等価", "Xor", "1−", "剰余", "IF" label = *無し, *等価, *Xor, *1−, *剰余, *IF m = ">☆結果\n" foreach func go = label(cnt) start = d3timer() repeat N r = rnd(2) gosub go loop time = d3timer()-start if cnt = 0 : offset = time m = m+">"+func(cnt)+strf("[%d]<%d>",time,time-offset)+"\n" mes strf("%d回目終了",cnt) wait 50 loop objsize 320, 240 mesbox m stop *無し return 0 *等価 return r *Xor return r^1 *1− return 1-r *剰余 return (r+1)\2 *IF if r = 1 : return 0 return 1
>☆結果
>無し[384]<0>
>等価[408]<24>
>Xor[464]<80>
>1−[447]<63>
>剰余[512]<128>
>IF[523]<139>

 ……Xor演算より1−方式の方が早いって意外な気がする。



いなえ

リンク

2011/8/8(Mon) 15:52:41|NO.40462

wpoke使用

sdim st ;文字バッファ準備 *main sw^=$9C81 : wpoke st,,sw ;文字変更 redraw 0 hsvcolor ,,255 : boxf ;画面初期化 color : pos ,0 ;文字色と位置の設定 mes st ;文字の描画 redraw wait goto *main



info

リンク

2011/8/8(Mon) 18:31:20|NO.40466


dim col,3 col(0,0) = 255,0,0 col(0,1) = 255,255,255 *@ i^=1 color col(0,i),col(1,i),col(2,i) pos 30,300:mes "●" wait 30 goto*@b



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