Hot Soup Processor スクリプト言語システム
HSP . フォント、画像


PSH x HSP 講座 オブジェクト COM MCI 用語 ソフト HTMLタグ リンク

フリーウェアのスクリプト言語システムHSPを利用したプログラミング講座です。ONION softさんが開発したものです。HSPは無料ソフトですよー。

font

font命令を反映した文字表示 (HSP標準対応)

HSPのウィンドウの文字表示のフォントを指定する命令です。文字の大きさなどを指定できる。このサンプル例では影文字風に複数行の文字列を表示してます。文字スタイルは通常(1)、太字(2)、イタリック対4)、下線(8)、打ち消し線(16)から選択する。数値を組み合わせれば複数のスタイルを提供できる。

message="Hot Soup Processor\nHSP-PSH\nSample Script" ;元々の文字列

font "MS Pゴシック", 40,1 ;フォント

x=10 ;文字列を表示するX/Y座標
y=10

color 0,0,0  ; 黒文字を描画
pos x+1,y+1
mes message

color 255,255,255 ; 白文字を描画
pos x,y
mes message

color 255,0,0
font "MS 明朝",20,4+8
mes message

emes・text

文字を1文字ごとにゆっくり表示する処理です。textで表示スピードを調整でき、emesで表示文字を指定できる(mesは使えない)。「hsp3util.as」ファイルのインクルードを最初に行っておくのを忘れないように。

#include "hsp3util.as"

;文字表示スピード
    text 150

    pos 50,50

    color 0,0,0
    boxf 0,0,400,400

    color 255,255,255

    font "MS Pゴシック",70,1+16
    emes "Bold"

    font "MS Pゴシック",70,2+16
    emes "Italic "

    font "MS Pゴシック",70,4+16
    emes "Underline"

    font "MS Pゴシック",70,8+16
    emes "Strike"

palcolor

screen 0,,,1   ;パレットモードのウィンドウ

repeat 16
   redraw 0
  posy=cnt

repeat 16
     palcolor palcode
     palcode++

      circle cnt*20,posy*20,cnt*20+20,posy*20+20  ;円を描画
   loop
  redraw 1

  wait 50

loop

図形の描画

psetは1ドット点、lineは1本線、boxfは四角形、circleは円形を描画できる命令。この時に上の時刻表示でも触れたredraw命令がポイントで、モード0を指定すると図形の描画が反映されない、モード1だと描画したものが目に見えるよう反映される。これにより、処理の負担(処理時間)を軽減できる。

randomize
redraw 0 ; ;描画の一時停止(ここをコメントアウトするとよく分かる)

repeat 500
  color rnd(255),rnd(255),rnd(255) ;  表示色の指定

  pset rnd(640),rnd(480)
  line rnd(640),rnd(480),rnd(640),rnd(480)
  boxf rnd(640),rnd(480),rnd(640),rnd(480)
  circle rnd(640),rnd(480),rnd(640),rnd(480)
loop

redraw 1 ;描画の反映

グラデーション表示

  pos 300,10
   input red,40,20,3

  button "描画",*check
  stop

*check
  if red > 255 : stop

  title "please wait..."

  color 255,255,255
  boxf 10,10,270,270

  redraw 0

  repeat 256
     count = cnt
     repeat 256
         color red,count,cnt
         pset cnt+10,count+10
      loop
  loop

  redraw 1

  title ""

画像表示

HSPはBMPファイルとGIFファイルとJpegファイルの画像の読み込みをサポートしている。picload命令を利用する。

dialog "bmp;*.gif;*.jpg",16,"画像ファイル"
if stat=0:stop

picload refstr,0

バッファ画面に画像を用意

実用的な画像ファイルの利用は、buffer命令で仮想ウィンドウを用意して、最初の段階でそこに画像を表示しておき、必要なイメージ画像はHSP命令のgcopyでその都度コピーしてくるといい。

dialog "bmp;*.gif;*.jpg",16,"画像ファイル"
if stat=0:stop
buffer 2 ;仮想ウィンドウを用意し画像ファイル読み込み

picload refstr,0
gsel 0 ; ウィンドウID0に制御を戻す

pos 100, 100
gcopy 2,0,0,100,100 ; ウィンドウID2から画像をコピー

色加算コピー

gmodeを使った色加算合成コピー。ブレンド率を変更すると、フェード効果も実現可能になる。

   screen 2

;  合成前の元となるもの
  repeat 13
      color cnt*20,cnt*20,cnt*20
      boxf 0,cnt*10,200,cnt*10+10
  loop

  screen 0

  randomize

  repeat
      color rnd(256),rnd(256),rnd(256)
     boxf 0,0,200,150

;     色加算合成コピー
     gmode 5,200,150,256

     pos 0,0
     gcopy 2,0,0

     redraw 1
     wait 50
      redraw 0
   loop

HSP入門MENU

HSP入門1 : 文字の表示、タイトルバー
HSP入門2 : ループ、ラベル
HSP入門3 : 色、ポジション
HSP入門4 : 文字処理
HSP入門5 : 日時・時間
HSP入門6 : フォント、画像
HSP入門7 : ウィンドウ、ダイアログ

Q&A (準備中)

0.HSPを利用していくうえでポイントは?

1. HSPでプログラム言語を作成できる?
 ちょっと難しいです。HSPはインタプリタというスタイルの言語なので。

2. ウィンドウにメニューを作成するには?
 Windows APIというのを使うと作成できるみたいですが、分からない人ようにメニューを表示するHSPモジュールが付いてます。「mod_menu.as」というファイルです。

3.ダイアログボックスで「はい」「いいえ」以外の文字を表示するには?
 できません。Windows APIというのを使うとたがう種類のダイアログは表示できますが、文字はいじれません。

4.ホームページをブラウザで開きたい。
 execが使えます。URアドレスを指定して起動タイプは16です。デフォルト設定になってるインターネットブラウザで立ち上がります。

〜〜〜〜〜

HSP

PSH x HSP | HSP講座 | 実行ファイルの作成方法 | オブジェクトの用意 | 音楽・動画の再生 | HSPの用語