0.1.3 • Published 2 years ago

@asmka/akashic-hover-plugin v0.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

akashic-hover-plugin

本リポジトリはakashic-games/akashic-hover-pluginを フォーク元とし、以下の機能を追加しています。

  • E#hoveringトリガ: ホバー中にマウスカーソルを移動した場合に発火するトリガ
  • 各トリガの引数としてマウスカーソル情報を含む以下イベントを提供(onPointDown等を参考)
    • HoveredEvent
    • HoveringEvent
    • UnhoveredEvent

実装例は sample ディレクトリ以下にあるサンプルプロジェクトを参照してください。

利用方法

akashic-cliをインストールした後、

akashic install @asmka/akashic-hover-plugin

でインストールできます。

本プラグインをコンテンツへ登録し利用するには g.OperationPluginManager#register() を利用します。 g.OperationPluginManager#register() の第一引数にはプラグインの実態、第二引数には識別コードを指定する必要があります。識別コードは対象のプラグインを開始/停止する操作に必要となります。

import * as hover from "@asmka/akashic-hover-plugin";
...
g.game.operationPluginManager.register(hover.HoverPlugin, 5); // HoverPlugin を 識別コード 5 で 登録
g.game.operationPluginManager.start(5); // 識別コード 5 のプラグインを開始
...

g.game.operationPluginManager.stop(5) // 識別コード 5 のプラグインを停止

第三引数には次の名前のプロパティ名と対応する値を持つオブジェクトを指定することができます。

  • cursor
    • 文字列 (省略可能。省略された場合 "pointer")
    • ホバー時の cursor を指定。CSS に準拠。
  • showTooltip
    • 真偽値 (省略可能。省略された場合 false)
    • ホバー時に tooltip を表示されるかどうか。
    • 表示内容は HoverableE#title
g.game.operationPluginManager.register(hover.HoverPlugin, 5, {
  cursor: "help",
  showTooltip: true,
});

コンテンツへの適用

E#touchable, E#hoverable プロパティが true を返すエンティティに対して E#hovered, E#hovering, E#unhovered トリガを発火させます。 このインタフェースは HoverableE として src/HoverableE に定義されています。

export interface HoverableE extends g.E {
  hoverable: boolean;
  hovered: g.Trigger<HoveredEvent>;
  hovering: g.Trigger<HoveringEvent>;
  unhovered: g.Trigger<UnhoveredEvent>;
  cursor?: string;
}

E#hovered はホバー時、E#hovering はホバー移動時、E#unhovered はホバーが外れた時に発火されます。

既存のエンティティへの適用

g.FilledRect など既存のエンティティをホバー可能にするには以下のようにします。

import * as hover from "@asmka/akashic-hover-plugin";

...
const rect = new g.FilledRect(...);
const hoveredRect = hover.Converter.asHoverable(rect);
hoveredRect.hovered.add((e) => {
	rect.cssColor = "#f00";
	rect.modified();
});
hoveredRect.hovering.add((e) => {
  rect.x -= e.prevDelta.x;
  rect.y -= e.prevDelta.y;
  rect.modified();
});
hoveredRect.unhovered.add((e) => {
	rect.cssColor = "#000";
	rect.modified();
});

ライセンス

本リポジトリは MIT License の元で公開されています。 詳しくは LICENSE をご覧ください。

ただし、画像ファイルおよび音声ファイルは akashic-games/akashic-hover-plugin に帰属し、 CC BY 2.1 JP の下に提供されています。

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

3.1.1

2 years ago