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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0902
UK流れる文字4解決


UK

リンク

2019/9/2(Mon) 17:58:10|NO.88303

Windowsのコマンドプロンプトみたいに文字を下から上に流して上まで文字が行ったら消す方法はありますか?



この記事に返信する


玄冬

リンク

2019/9/2(Mon) 20:14:16|NO.88304

こういうこと?

screen 0, 640, 480 v_FONT_SIZE = 15 font msmincho,v_FONT_SIZE repeat -1 if ginfo_winY - v_FONT_SIZE < ginfo_cY { C = ginfo_cX, ginfo_cY pos 0, 0 gcopy ginfo_sel, 0, v_FONT_SIZE, ginfo_winX, ginfo_winY - v_FONT_SIZE color $FF,$FF,$FF boxf 0, ginfo_winY - v_FONT_SIZE pos C(0), C(1) - v_FONT_SIZE } else : pos 25, cnt * 15 color mes cnt await 200 loop



さか

リンク

2019/9/2(Mon) 20:15:02|NO.88305

コマンドプロンプトみたいに入力したいのか、文字を流したいのかわかりませんが
mesboxでしょうか。



沢渡

リンク

2019/9/2(Mon) 20:51:23|NO.88307

こんなもんをせっせこと作っていましたが、玄冬さんの方がすっきりしててわかりやすいですね。
(さっき投稿しましたが少しだけ改良して再投稿)

#define global boxf2(%1,%2,%3,%4) boxf %1,%2,(%1)+(%3)-1,(%2)+(%4)-1 #define global color_code(%1) color ((%1)>>16)&0xFF,((%1)>>8)&0xFF,(%1)&0xFF //色をカラーコードで指定 #const global box_x 14 //メッセージ欄のX座標 #const global box_y 300 //メッセージ欄のY座標 #const global box_xm 2 //メッセージ欄のXマージン #const global box_ym 2 //メッセージ欄のYマージン #const global mes_x box_x+box_xm //メッセージの起点X #const global mes_y box_y+box_ym //メッセージの起点Y #const global chr_w 8 //文字の横幅(半角) #const global chr_h 18 //文字の縦幅 #define global font_name msgothic //フォント名 #const global font_size 16 //フォントサイズ #const global chr_xnum 76 //文字の横の表示数 #const global chr_ynum 4 //文字の縦の表示数 #const global box_w chr_w*chr_xnum+box_xm*2 #const global box_h chr_h*chr_ynum+box_ym*2 #const global wait_t 200 //ウェイト時間 #const global box_color 0x000000 //メッセージ欄の背景色 #const global chr_color 0xFFFFFF //メッセージ欄の文字色 color_code box_color boxf2 box_x,box_y,box_w,box_h color_code chr_color font font_name,font_size //表示させるテキスト text="いろはにほへと\nちりぬるをわか\nよたれそつねな\nらむうゐのおく\nやまけふこえて\nあさきゆめみし\nゑひもせす" chr_x=0 : chr_y=0 notesel text text0="" sdim buf,3 repeat notemax noteget text0,cnt c=0 : max=strlen(text0) //cは何文字目を表示するか、maxは表示する文字の数 repeat if c>=max : break kanji=0 a=peek(text0,c) //表示する文字を取得 if c<=max-2 : b=peek(text0,c+1) : else : b=0 //次の文字を取得 //漢字(2バイト文字判定) if ((a>=0x81)&(a<=0x9F)) | ((a>=0xE0)&(a<=0xEF)) { if ((b>=0x40)&(b<=0x7E)) | ((b>=0x80)&(a<=0xFC)) { kanji=1 if chr_x>=chr_xnum-1 : gosub *nl } } chr_xpos=chr_x*chr_w+mes_x chr_ypos=chr_y*chr_h+mes_y pos chr_xpos,chr_ypos if kanji { //2バイト文字の場合 poke buf,0,a : poke buf,1,b mes buf chr_x+=2 c+=2 } else { //1バイト文字の場合 poke buf,0,a : poke buf,1,0 mes buf chr_x+=1 c+=1 } if chr_x>=chr_xnum : gosub *nl await wait_t loop gosub *nl await wait_t loop stop *nl //改行処理 chr_x=0 : chr_y++ if chr_y>=chr_ynum-1 { pos mes_x,mes_y gcopy 0,mes_x,mes_y+chr_h,chr_xnum*chr_w,(chr_ynum-1)*chr_h color_code box_color boxf2 mes_x,mes_y+chr_h*(chr_ynum-2),chr_xnum*chr_w,chr_h*2 color_code chr_color chr_y-- } return



UK

リンク

2019/9/3(Tue) 18:03:11|NO.88315

ありがとうございます!
急いでたので助かりました!



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