alalSetParent

Artlet2D仮想イメージをアルファレイヤー子ウィンドウとして描画先ウィンドウに貼り付ける

alalSetParent p1, p2,p3,p4,p5,*label

p1=0〜 : Artlet2D仮想イメージID

p2=-1〜(-1) : 貼り付け先の指定(省略(-1) = 描画先ウィンドウ, 0〜 = 既に作ったアルファレイヤーのArtlet2D仮想イメージID)
p3=0,1(0) : 非表示張り付けフラグ(1 = 非表示)
p4=0〜(0) : ウィンドウの配置X
p5=0〜(0) : ウィンドウの配置Y
*label : alalCallbackで指定するラベル(省略で無視)

(プラグイン / モジュール : a2d+AlphaLayer)

解説

描画先ウィンドウに、指定したArtlet2D仮想イメージIDをアルファレイヤー子ウィンドウとして貼り付けます。

貼り付けたアルファレイヤー子ウィンドウはマウスクリック等のメッセージが透過します。
ウィンドウメッセージを取得したい場合は、alalCallback を利用してください。

アルファレイヤーへ描画する基本手順は、以下のようになります。
アルファレイヤー描画/更新の手順
  1. alCreateImage等でArtlet2D仮想イメージを作る。
  2. Artlet2D仮想イメージ に書き込み。
  3. alalSetParent で貼り付け。
  4. Artlet2D仮想イメージの内容を更新。
  5. alalRedraw で貼り付け先のアルファレイヤー子ウィンドウに内容を反映。
   以降、4 ⇔ 5 を繰り返す。

p2 以降を指定することで、既存アルファレイヤーの子アルファレイヤーとして張り付けたり、最初は非表示にしたり、一度にコールバック処理を指定したりすることができます。
非表示で張り付けた場合はalalShowで表示できます。

statにアルファレイヤー子ウィンドウのウィンドウハンドルが格納されます。

【裏技】
p1に512以上を指定するすることもできます。
その場合、alalRedrawの2項目目を使用して指定したImage IDから512番以降のアルファレイヤーに画像を転送してください。

p1を512以上にしたとき最初に作られるアルファレイヤーは特例として、現在alSelectImageで選択されているイメージIDのレイヤーサイズと画像になります。

★ !!注意!! ★
Windows 10 May 2020 Update(Ver.20H1)のアプデ辺りから動作がおかしくなってしまいました。
非表示のウィンドウまたは既に作った非表示のアルファレイヤー子ウィンドウに新規のアルファレイヤー子ウィンドウを貼り付けた場合、本来新規の子ウィンドウは見えないはずなのですが表示されてしまうというバグ(?)が発生しています。
一度、親とするウィンドウまたはアルファレイヤー子ウィンドウを表示状態のまま下層のレイヤーを作り、全て貼り付け終えた後に alalHide で[子レイヤー]を非表示にするという処置を行う必要があります。

サンプル

#include "a2d+AlphaLayer.hsp"
	// 背景
	picload dir_tv+"sozai4.jpg"
	// キャラ
	alCreateImageByFile 0, dir_tv+"tamane_y2.png" ; 画像を読み込み
	alalSetParent 0,,, 50,0 ; イメージID 0を描画先ウィンドウに貼り付け
	stop

関連項目

alalSetParentArtlet2D仮想イメージをアルファレイヤー子ウィンドウとして描画先ウィンドウに貼り付ける(a2d+AlphaLayer)
alalWindowArtlet2D仮想イメージを用いてレイヤードウィンドウを作成(a2d+AlphaLayer)
alalRedrawアルファレイヤーにArtlet2D仮想イメージを再描画する(a2d+AlphaLayer)
alalCallbackアルファレイヤーのWindowsメッセージ割り込み指定(a2d+AlphaLayer)
alalShowアルファレイヤー子ウィンドウを表示させる(a2d+AlphaLayer)
alalIsShownアルファレイヤー子ウィンドウが表示されているか取得(a2d+AlphaLayer)
alalHideアルファレイヤー子ウィンドウを非表示にする(a2d+AlphaLayer)
alalAlphaアルファレイヤーの透明度を設定する(a2d+AlphaLayer)
alalWidthアルファレイヤー子ウィンドウのサイズ・位置設定(a2d+AlphaLayer)
alalGetRectアルファレイヤー子ウィンドウの左上・右下座標の取得(a2d+AlphaLayer)
alalZtopアルファレイヤーをZオーダー(表示順序)の一番上に配置する(a2d+AlphaLayer)
alalZbottomアルファレイヤーをZオーダー(表示順序)の一番下に配置する(a2d+AlphaLayer)
alalZnextアルファレイヤーのZオーダー(表示順序)を指定したウィンドウの下に配置する(a2d+AlphaLayer)
alalIsOnLayerマウスカーソルがアルファレイヤーの上に乗っているか取得(a2d+AlphaLayer)
alalWindow_SetTransparentalalWindowで作成したレイヤードウィンドウのクリック透過モードを変更(a2d+AlphaLayer)

サンプル逆引き (10)

01.アルファレイヤーの追加.hsp#include "../a2d+AlphaLayer.hsp" 背景 alCreateImageByFile..
02.アルファレイヤーの更新.hsp#include "../a2d+AlphaLayer.hsp" キャラ素材ロード alCreateImage..
03.アルファレイヤーのクリック.hsp#include "../a2d+AlphaLayer.hsp" alalCallback でアルファレイヤー..
07.timer_repeat/timer_easeの応用.hsp#include "../a2d+AlphaLayer.hsp" #include "../mod_Timer..
10.GIFアニメ表示.hsp#include "../a2d+AlphaLayer.hsp" #include "../mod_Timer..
11.1枚のPNGファイルでアニメーション.hsp#include "../a2d+AlphaLayer.hsp" #include "../mod_Timer..
EX1.スライドインメニュー【timer_repeat内に別のtimer_repeatを記述】.hsp#include "../a2d+AlphaLayer.hsp" #include "../mod_Timer..
EX2.ADVゲーム画面(だけ)【アルファレイヤーの中に子アルファレイヤーを作る】.hsp#include "../a2d+AlphaLayer.hsp" #include "../mod_Timer..
EX4.Floppy-Word【アルファレイヤー/タイマーリピート利用ミニゲーム】.hsp#include "hsptvapp.as" GitHubからモジュールを取得。 #include "../a..
EX5.スライダーオブジェクト.hsp#include "../a2d+AlphaLayer.hsp" #include "../mod_Timer..

情報

プラグイン / モジュールa2d+AlphaLayer
バージョン2.4
作成日2024/1/5
著作者MIZUSHIKI
URLhttp://suwa.pupu.jp/
備考a2d+AlphaLayer.hspをインクルードすること。
対応OS:Windows 8 以降
タイプ拡張命令
グループ画面制御命令
対応環境・Windows 版 HSP