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


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0203
やまぎRPG風の名前選択を作りたいのですが2解決


やまぎ

リンク

2013/2/3(Sun) 12:12:45|NO.52148


screen 0,640,500 w="" namae="" moziretu="" dim key,256 repeat getkey key(13),13 getkey key(67),67 getkey key(88),88 stick ky if ky=1:cur-- //カーソルキーで移動します。 if ky=2:cur-=10 if ky=4:cur++ if ky=8:cur+=10 cur=limit(cur,0,50) redraw 0 pos 0,20 gcopy 10,0,0,640,480 //背景をクリアします。 p=0 repeat 5:y=cnt repeat 10:x=cnt pos x*40+30+100,y*40+20+270:poke w,0,p-79:mes w//文字を描画してから if cur=p & mc\10<7:pos x*40+30-20+100,y*40+20+270:mes "≫" //カーソルを描画します。 p++ font "MSゴシック",20,1 pos 230,110 mes "名前:" if cur>=0{ if key(67)=1&namae_i<8{ key(67)=0 gosub *timer namae_i=namae_i+1 key(67)=0 if cur=0 : mozi_hairetu="あ" if cur=1 : mozi_hairetu="い" if cur=2 : mozi_hairetu="ウ" if cur=3 : mozi_hairetu="エ" if cur=4 : mozi_hairetu="オ" if cur=5 : mozi_hairetu="カ" if cur=6 : mozi_hairetu="キ" if cur=7 : mozi_hairetu="ク" if cur=8 : mozi_hairetu="ケ" if cur=9 : mozi_hairetu="コ" if cur=10 : mozi_hairetu="サ" if cur=11 : mozi_hairetu="シ" if cur=12 : mozi_hairetu="ス" if cur=13 : mozi_hairetu="セ" if cur=14 : mozi_hairetu="ソ" if cur=15 : mozi_hairetu="タ" if cur=16 : mozi_hairetu="チ" if cur=17 : mozi_hairetu="ツ" if cur=18 : mozi_hairetu="テ" if cur=19 : mozi_hairetu="ト" if cur=20 : mozi_hairetu="ナ" if cur=21 : mozi_hairetu="ニ" if cur=22 : mozi_hairetu="ヌ" if cur=23 : mozi_hairetu="ネ" if cur=24 : mozi_hairetu="ノ" if cur=25 : mozi_hairetu="ハ" if cur=26 : mozi_hairetu="ヒ" if cur=27 : mozi_hairetu="フ" if cur=28 : mozi_hairetu="ヘ" if cur=29 : mozi_hairetu="ホ" if cur=30 : mozi_hairetu="マ" if cur=31 : mozi_hairetu="ミ" if cur=32 : mozi_hairetu="ム" if cur=33 : mozi_hairetu="メ" if cur=34 : mozi_hairetu="モ" if cur=35 : mozi_hairetu="ヤ" if cur=36 : mozi_hairetu="ユ" if cur=37 : mozi_hairetu="ヨ" if cur=38 : mozi_hairetu="ラ" if cur=39 : mozi_hairetu="リ" if cur=40 : mozi_hairetu="ル" if cur=41 : mozi_hairetu="レ" if cur=42 : mozi_hairetu="ロ" if cur=43 : mozi_hairetu="ワ" if cur=44 : mozi_hairetu="ヲ" if cur=45 : mozi_hairetu="ン" if cur=46 : mozi_hairetu="" if cur=47 : mozi_hairetu="" if cur=48 : mozi_hairetu="" if cur=49 : mozi_hairetu="" namae=namae+mozi_hairetu } pos 300,110 mes ""+namae+"" } loop loop redraw 1:await 30:mc++ if namae_i=7{ dialog "これでいいですか?",2 if stat=6{ break } if stat=7{ namae_i = namae_i-1 namae = strmid (namae,0,namae_i) } } if key(88)=1{ namae_i = namae_i-1 namae = strmid (namae,0,namae_i) gosub *timer } if key(13)=1{ dialog "これでいいですか?",2 if stat=6{ break } } if namae_i<=0{ namae_i=0 } loop cls mes namae stop *timer wait 10 return
Xで一文字消してCで一文字描画するのですがなぜかひらがなにするとXで2文字消えたりおかしな現象が起こるのですが
原因がわかりません
たぶん文字のバイト数?だと思うのですがどうすれば直るかわかりません

ちなみにアとイのところはひらがなにしています



この記事に返信する


やまぎ

リンク

2013/2/3(Sun) 12:31:32|NO.52149

勝手に自分で解決しました


if stat=7{ namae_i = namae_i-1 namae = strmid (namae,0,namae_i) } } if key(88)=1{ namae_i = namae_i-1 namae = strmid (namae,0,namae_i) gosub *timer }
のところを

if stat=7{ namae_i = namae_i-1 namae = strmid (namae,0,namae_i*2) } } if key(88)=1{ namae_i = namae_i-1 namae = strmid (namae,0,namae_i*2) gosub *timer }
ひらがなは一文字のバイト数が2だったので2をかけてみたらできました
今回は勝手に自分で解決してしまいましたけどこれを参考にしてもらえるとうれしいです



check

リンク

2013/2/4(Mon) 07:54:39|NO.52160

半角と全角の文字を混ぜるとうまくいかなくなるぞ。
詳しくは「SHIFT_JIS 2バイト文字」などで検索してくれ。



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