| 
					 
							
													 
							
						 
						
 
 | 
 | 
 
2011/8/7(Sun) 13:48:06|NO.40433 
超初心者です。 
文字を点滅させたいのですが、どうすれば良いでしょうか? 
 
●←これを点滅させる、ということで、たくさん案を出していただけると 
嬉しいです。 
よろしくお願いします。 
 
 |   
  
 
 | 
 | 
 
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
 
 
 |   
  
| 
 | 
 
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
 
 
 |   
  
| 
 | 
 
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
 
こんな感じかな
  
 |   
  
| 
 | 
 
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 に置き換えられますよ。
  
 |   
  
| 
 | 
 
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
 
 
 |   
  
| 
 | 
 
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
 
 
 |   
  
					 |