hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
小ワザ/Artlet2D - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

小ワザ

Artlet2Dとは?

Artlet2D (アートレット 2D) は、GDI+*1 を利用して、HSP でアルファチャネル (透明度成分) 付きの画像データを扱うためのモジュール。 HSP配布パッケージには、HSP3.21から同梱されるようになりました。 製作:sprocketさん

  • アルファチャネル (透明度成分) 付きの画像データを扱う。
  • ピクセルフォーマット 32bit ARGB の仮想イメージバッファ
  • HSP スクリーンと Artlet2D 仮想イメージ間の相互画像コピー (alCopy〜)
  • 線分、楕円、矩形などの基礎図形、自由曲線の描画機能 (alDraw〜, alFill〜)
  • アンチエイリアシングされた滑らかなエッジの描画
  • アルファ値付き color 命令 (alColor)
  • グラデーションブラシ、テクスチャブラシ (alGradientColor?, alTextureImage?)
  • 自由なペン幅、さまざまなペンスタイル (alPen〜)
  • 矩形領域内で自動折り返し可能・縦横アラインメント可能なテキスト表示 (alDrawText?)
  • スムーズな画像拡大・縮小コピー (alStretch〜)
  • 指定カラー範囲の透明化、ガンマ調整、カラーマトリックスによる明度調整、半透明、セピア変換などのコピーモード (alCopyMode?〜)
  • 座標変換マトリクスによる描画位置や回転角度の変更 (alTransModeOffsetRotateZoom?, alTransModeRotateAt?)
  • アルファチャネル付き png ファイルの読み書き (alLoadFile?, alSaveFile?)

Artlet2D公式ページより引用。)

最新版やサポート情報などは、開発者サイトをご覧ください。
S.Probrams NET(http://sprocket.babyblue.jp/)

よくわからん。もっと簡単に説明してくれ。

  • ジャギー(ドットによるギザギザ)がない図形がかけます。
  • 透明色が自在に使えます。

使うための準備

  • 入手 … HSP3.21以降では標準で付属しています。最新版のHSPを入手してください。
    また開発元でも入手が可能です。S.Probrams NET
  • 使用できる環境 … GDI+が必要です。
    GDI+はWindowsXP以降からは標準で搭載されています。それよりも古いOSの場合は、別途入手が必要です。 なお、GDI+はWindows98以降に対応しているようです。
    詳しくはこちらのページ(http://sprocket.babyblue.jp/html/hsp_gpm.htm)の「GDI+ が存在しない環境での動作」を参照ください。

とりあえずサンプルから

  • HSPアシスタントから検索できます。
  • HSP Document Library*2で「Artlet2D」検索すると下の方に「サンプル」が表示されます。

アニメーションサンプル

とりあえずアニメーションさせるサンプルを描いてみました。

+  サンプルスクリプト

標準命令との違い

Artlet2Dを使うとHSP標準の描画命令と同じような動作をする命令がいくつかあります。

内容HSP標準Artlet2D
矩形を塗りつぶすboxfalFillRect?
円を描画するcirclealDrawEllip?,alFillEllip?
直線を描画linealDrawLine?

これらの命令は同じように見えますが、パラメータの与え方や動作結果が異なっていますので注意が必要のようです。

矩形を描く - alDrawRect?、alFillRect?

矩形描画のパラメータは次のようになっています。

x, y	: 矩形の左上座標
w, h	: 矩形のサイズ

boxfでは「右下座標」だったものが矩形サイズになっています。パラメータの意味が座標大きさに分かれることでわかりやすく・使いやすくなりました。

しかし、注意点があります。
boxfでは「左上座標」が右下に来ても、「右下座標」が左上に来ても何も問題なく表示されていましたが、Artlet2Dでは「矩形のサイズ」に負の値を与えると描画されません。

サンプルで確認してみます。

+  サンプルスクリプト

これまでの「升目の描かれた紙の上に図を描く」描画の考え方から 「紙の上に四角い折り紙を貼り付ける」ようなイメージに変えて考えるとすんなりと受け入れることが出来ると思います。

画像ファイルの読み込み

画像ファイルの読み込みも仮想イメージ上で行われます。
PNGファイルを読み込んだ場合は、透明色情報も含まれた状態で読み込まれます。

先に仮想イメージを用意して、そこに画像ファイルを読み込む例。

+  サンプルスクリプト1

画像ファイルの読み込みと同時に仮想イメージを作成する例。

+  サンプルスクリプト2

コメント

  • pngを表示するサンプルも欲しかった。  他当たってみます。 -- 円城寺? 2012-01-07 (土) 16:07:24
  • 画像読み込みを追加してみました。 -- GENKI? 2012-01-07 (土) 16:30:31

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

*1 GDIの拡張版。
*2 f1キーでおなじみのヘルプ
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2012-01-07 (土) 16:30:31 (701d)