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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0518
hirokihspで©を表示したい4解決


hiroki

リンク

2019/5/18(Sat) 16:12:55|NO.87385

hspで©を入力しても(mes命令で)こう出ちゃいます。↓

c
教えてください!!!



この記事に返信する


GENKI

リンク

2019/5/18(Sat) 17:56:04|NO.87387

とりあえず理解しやすそうな方法で書いてみる。

pos 100, 100 px = ginfo_cx py = ginfo_cy mes "c" mx = ginfo_mesx my = ginfo_mesy cx = px+mx/2 cy = py+my/2 if mx<my : r = my/2 : else : r = mx/2 circle cx-r, cy-r, cx+r, cy+r, 0

Shift-JISにはないUnicodeの文字だったと思うので、表示できないこともありません。それなりに手順が必要になります。
https://wiki.hsp.moe/%E5%B0%8F%E3%83%AF%E3%82%B6%EF%BC%8FWin32API%E9%96%A2%E9%80%A3%EF%BC%8FUnicode%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92mes%E5%91%BD%E4%BB%A4%E3%81%AE%E3%82%88%E3%81%86%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B.html
コピーライト記号はU+00A9です。

Unicodeがない時代は「©」を表示したい場合は「(c)」と表示するのが一般的でした。HSPの場合はこれが一番手っ取り早くて簡単な方法ですね。



Velgail

リンク

2019/5/18(Sat) 18:15:09|NO.87391

HSPのUnicode版を利用すると以下のコードで表示できます。

#include "hsp3utf.as" cpr=" "//文字列枠の確保 //©のUTF-8はC2A9なので(https://kujirahand.com/web-tools/Hex.php 参考) poke cpr,0,0xc2 poke cpr,1,0xa9 //上で値を代入できたので、表示してみる。 mes cpr

©の文字コードを埋め込むという手続きです。なぜこうしたかというと、Shift-JISでは©が割り当てられておらず、文字化けしてしまうためです。
HSPでは親切にも? cと表示してくれますが、標準的には?と表示される案件となります。

Unicode版を使えない場合は、cをcircle命令で囲う、画像を用意しておくといった手段で対応する必要があります。



hiroki

リンク

2019/5/19(Sun) 07:43:59|NO.87400

お!ありがとうございます!!!



Drip

リンク

2019/5/19(Sun) 16:39:43|NO.87406

こんにちは。Dripです。

実は通常のHSPでもマルシーマークなどの特殊な文字を一部使うことができますよ。
日本では半角カタカナに利用している文字は欧文フォントで特殊記号として扱われているので、
以下のように表示することができます。

pos 30,30 repeat 2 if cnt=0:font "Arial",24 if cnt=1:font "Times New Roman",24 color:TM=" ":poke TM,0,153 mes "Hot Soup Processor"+TM mes "ゥ2019 Onion Software" mes "" mes "PlayStation4ョ" mes "ゥ2019 Sony Interactive Entertainment Inc." mes "" mes "" loop

ただし、内部的に文字コードを別の文字コードに変換するようなシステム下では正常に表示されません。
同じフォントと文字列でも以下のサンプルでは半角カタカナがそのまま表示されてしまっていますね。

#include "a2d.hsp" alCreateImage 1,640,480 TM=" ":poke TM,0,153 repeat 2 if cnt=0:alFont "Arial",24 if cnt=1:alFont "Times New Roman",24 alDrawText "Hot Soup Processor"+TM,30,30+cnt*144 alDrawText "ゥ2019 Onion Software",30,54+cnt*144 alDrawText "PlayStation4ョ",30,102+cnt*144 alDrawText "ゥ2019 Sony Interactive Entertainment Inc.",30,126+cnt*144 loop alCopyImageToScreen 1,0 redraw 1

今手元ではWindows2000〜Windows7の64bit版までは上のサンプルのように正常表示されることを確認しているのですが、
このやりかたって将来にわたって安泰なのかちょっと不安だったりします^^;
最新のWindows10でだけ表示が崩れるみたいなことになったら困りますね。

ちょっと余談でした。



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