- 注册时间
- 2004-5-16
- 最后登录
- 2024-11-13
超级版主
传说中的Bunny坑神~!
 
- 积分
- 244543

|
虽然很笨但是还是相当实用DI。
办法1:判断文字变量长度。
如果观察一下就可以注意到,当显示2005,12或者其他类似的,长度可以被2整除的数字时,是可以正确显示的。但是碰到235之类的,一定会变成乱码。具体的原理可能说不明白,但是可以确认的是NS显示文字的做法确实是一次显示1个全角字符或者2个半角字符。假如碰到独立的半角字符就会出错。
在这种情况下,为了可以正确的显示半角符号,首先要稍微预处理一下。
- ;一段姓名输入代码
- textfield $name,247,246,555,278,16,32,0 ;输入文字
- len %temp,$name ;计算长度
- div %temp,2 ;将长度/2取余
- if %temp<>0 add $name," " ;有半角符号出现时,加入半角空格1个
复制代码
不过,以上的东西,其实还是有BUG。在显示单个半角符号。例如玩家只输入了“1”“a”时,依然无法正确显示。而且,如果是全,半角混用的,例如输入“3月”时,依然会出问题。——不过我想没哪个玩家会这么起名的吧……
办法2:穷举法……
此是比较无奈的做法但是100%不会出错。专门针对因为以上所说的1位数无法正确显示的BUG。
就是……1位数单独处理XD- ;日期显示代码
- date %year,%month,%day
- itoa $year,%year
- itoa $month,%month
- itoa $day,%day
- if %month=1 mov $month,"01"
- if %month=2 mov $month,"02"
- if %month=3 mov $month,"03"
- if %month=4 mov $month,"04"
- if %month=5 mov $month,"05"
- if %month=6 mov $month,"06"
- if %month=7 mov $month,"07"
- if %month=8 mov $month,"08"
- if %month=9 mov $month,"09"
- if %day=1 mov $day,"01"
- if %day=2 mov $day,"02"
- if %day=3 mov $day,"03"
- if %day=4 mov $day,"04"
- if %day=5 mov $day,"05"
- if %day=6 mov $day,"06"
- if %day=7 mov $day,"07"
- if %day=8 mov $day,"08"
- if %day=9 mov $day,"09"
- mov $date,":s/32,32,0,1;#000000"
- add $date,%year
- add $date,"年"
- add $date,$month
- add $date,"月"
- add $date,$day
- add $date,"日"
复制代码
以上,虽然说是穷举,但是工作量还是很小的。=v= |
|