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


HSPTV!掲示板


未解決 解決 停止 削除要請

2024
1210
みきゃん文字列のセンタリングで質問です(現在のフォント名,hspdish)2解決


みきゃん

リンク

2024/12/10(Tue) 13:29:25|NO.102686

文字列のセンタリングをしようと思っているのですが、現在設定されているフォントを取得できませんか?
また、バッファをhsp3dishでつかいたいです!

;#include "hsp3dish.as" #module #const TMP_BUFFER 12345 #deffunc centering_mes str s1, array rect now_info = ginfo_sel, ginfo_cx, ginfo_cy, ginfo_r, ginfo_g, ginfo_b ;, ginfo_? //バッファ作成 buffer TMP_BUFFER notesel s s = s1 xmax = 0 ;font now_info(6) repeat notemax noteget b,cnt mes b if ginfo(14) > xmax{ xmax = ginfo(14) xcnt = cnt //一番長い行を記録 } loop //実際の描画に近いと思われるフォントを設定 font "",limit((rect(2)-rect(0)/ xmax),,(rect(3)-rect(1)) / notemax) noteget b, xcnt: mes b: xmax = ginfo(14) //最大xサイズ取得 //実際に描画してみる color 255,255,255:boxf:color now_info(3),now_info(4), now_info(5) pos 0,0 mes s1 msize = xmax, ginfo(15)*notemax //描画したサイズを記録 noteunsel //メイン画面にコピー gsel now_info pos (rect(2) + rect(0)) / 2, (rect(3) + rect(1)) / 2 gmode 3,msize, msize.1,128 grotate TMP_BUFFER, 0, 0, , rect(2) - rect(0), rect(3) - rect(1) pos now_info(1), now_info(2) return #deffunc draw_rect array a boxf a,a.1,a.2,a.3 return #global ;rect = 20,20,350,150 rect = 20,20,150,350 color draw_rect rect color 255 centering_mes "23\nss",rect



この記事に返信する


窓月らら

リンク

2024/12/10(Tue) 14:14:59|NO.102687

HSP3Dish は現状オフスクリーンバッファに直接描画はできません。
描画コストが2倍かかってしまいますが、
センタリングは一旦画面外でダミー描画をして
ginfo_mesx と ginfo_mesy を使えば可能です。

#include "hsp3dish.as" text="これはテストメッセージです。" screen 0,640,480 setcls 1,$000000 *main redraw 0 pos,-512: mes text // 画面外でダミー描画する // ダミー描画によりginfo_mesxとginfo_mesyに幅と高さが入る x=(ginfo_winx-ginfo_mesx)/2 y=(ginfo_winy-ginfo_mesy)/2-24 rgbcolor $FFFFFF: pos x,y: mes text // 描画 redraw 1 await 16 goto *main



みきゃん

リンク

2024/12/10(Tue) 15:07:04|NO.102688

返信ありがとうございます! ginfo_mesx,mesyてのがあるんですね知りませんでした。 
画面外に描画すればいいんですね!

解決しました!ありがとうございました。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.102686への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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