![見出し画像](https://assets.st-note.com/production/uploads/images/142134879/rectangle_large_type_2_a1068e529c44d6e3ac198dbdea642b7c.png?width=1200)
【ティラノビルダー】クリックした場所にAPNGファイルを表示する方法
![](https://assets.st-note.com/production/uploads/images/142144381/picture_pc_00eb91c663918791022df40da7e63a5f.gif?width=1200)
ティラノビルダーで、クリックした場所にAPNGファイルを表示する方法を解説します。
【使用素材】
雲とサカナの観測所様の素材を使用させていただきました。
①APNGファイルの追加
![](https://assets.st-note.com/img/1716887787529-cXVCZz3VFa.png?width=1200)
表示したいAPNGファイルを追加します。
これで、APNGファイルの追加は完了です。
②plugin.ksファイルの編集
![](https://assets.st-note.com/img/1716888084453-fAmdqJ7mor.png?width=1200)
画面左上のプロジェクト名をクリックします。
![](https://assets.st-note.com/img/1716888226593-BkE1XOw2fB.png?width=1200)
scenarioフォルダをクリックします。
![](https://assets.st-note.com/img/1716888283270-49cwZsmiR3.png?width=1200)
systemフォルダをクリックします。
![](https://assets.st-note.com/img/1716888368143-nfvNbXXAZq.png?width=1200)
plugin.ksをメモ帳で開きます。
![](https://assets.st-note.com/img/1716888535131-9GTlKdYg6s.png?width=1200)
[return]と書かれています。このコードは絶対に消さないでください。
![](https://assets.st-note.com/img/1716889498316-GYSwWfQ6sN.png?width=1200)
下記のコードを貼り付けます。
[iscript]
$(document).ready(function() {
const imagePath = 'data/fgimage/default/line.png'; // APNGファイルのファイル名
const displayDuration = 3000; // APNGファイルの表示時間をミリ秒で指定 (例: 3000ms = 3秒)
const imageWidth = 240; // APNGファイルの横幅
const imageHeight = 120; // APNGファイルの縦幅
const maxCount = 100;
let count = 0;
function getScale() {
let scale = $(".tyrano_base").css("transform");
scale = scale.substring(0, scale.indexOf(",")).replace("matrix(", "");
return { scale };
}
function calculatePosition(scale, clientY, clientX) {
const y = clientY - (imageHeight * scale / 2);
const x = clientX - (imageWidth * scale / 2);
return { x, y };
}
function addImage(e) {
const clientY = ($.userenv() === "pc") ? e.clientY : e.targetTouches[0].clientY;
const clientX = ($.userenv() === "pc") ? e.clientX : e.targetTouches[0].clientX;
if (clientY === 0 && clientX === 0) {
return false;
}
count++;
const { scale } = getScale();
const { x, y } = calculatePosition(scale, clientY, clientX);
const imgId = `apng-${count}`;
const $img = $('<img>', {
id: imgId,
src: `${imagePath}?count=${count}`,
class: 'apng',
css: {
position: 'absolute',
top: y,
left: x,
zIndex: 99999999,
width: imageWidth * scale,
height: imageHeight * scale
}
});
$('body').append($img);
setTimeout(() => $(`#${imgId}`).remove(), displayDuration);
if (count === maxCount) {
count = 0;
}
}
const event_type = $.userenv() === "pc" ? "click" : "pointerdown";
document.body.addEventListener(event_type, addImage, { capture: true });
if ($.userenv() !== "pc") {
document.body.addEventListener('touchstart', addImage, { capture: true });
}
});
[endscript]
【コードの解説】
■ ファイル名
const imagePath = 'data/fgimage/default/line.png'; // APNGファイルのファイル名
①で追加したAPNGファイルのファイル名を指定します。
今回は、line.pngを追加したので、data/fgimage/default/line.pngと指定しています。
■ 表示時間
const displayDuration = 3000; // APNGファイルの表示時間をミリ秒で指定 (例: 3000ms = 3秒)
APNGファイルを表示したい時間(ミリ秒)を指定します。
今回は3000ミリ秒表示させたいので、3000と指定しています。
■ 横幅と縦幅
const imageWidth = 240; // APNGファイルの横幅
const imageHeight = 120; // APNGファイルの縦幅
APNGファイルの横幅と縦幅を指定します。
今回は、横幅が240px、縦幅が120pxなので、240、120と指定しています。
最後に上書き保存します。
これで、plugin.ksファイルの編集は完了です。
以上で解説を終わります。おつかれさまでした。
この記事が気に入ったらサポートをしてみませんか?