Skip to content

Instantly share code, notes, and snippets.

/**
* These snipets are licensed under CC0.
* http://creativecommons.org/publicdomain/zero/1.0/deed.ja
*
* Rewrite to SDL_uikitview.m and LongPressGesture is associated to "Right-Click"
*/
- (instancetype)initWithFrame:(CGRect)frame
{
if ((self = [super initWithFrame:frame])) {

Web版吉里吉里SDL2 JS⇔TJS Interface メモ

Web版吉里吉里SDL2はJavascriptを呼び出せます。 足りない機能をJavaScriptで書けたりします。

仕組みとしてはEmscriptenの仕組みを呼び出す吉里吉里プラグインであり、実装は「krkrsdl2/src/plugins/kremscripten.cpp」にあります。

おことわり

これは@xyx0no646のチラシの裏です。内容は保証できません。

吉里吉里ZのKAG3を吉里吉里SDL2でも動作するように書き換えるメモ

あれ?吉里吉里Zのプロジェクトがそのまま動作しないぞ?

実は「吉里吉里SDL2」には以下の3つのものが足りません。

MenuItem
コンテキストメニューが実装されていません。(※吉里吉里Z2の段階で非推奨でした)
標準フォント
吉里吉里Zなら必ずWindowsなのでMSゴシックとかつかえるんでしょうが
;  注意:もっと良いバージョン(JavaScriptで実装されたWaveSoundBuffer)ができました。
; 以下を参照してください。
; https://gist.github.com/xyx0no646/71363ab2b47dcfdcc920afe0570abd8d
;
;[playse2]/[stopse2]/[playbgm2]/[stopbgm2]
;
;Web版吉里吉里SDL2で動作するplaybgm / playseタグもどき
;oggの再生と停止以外は対応しない
;Licence CC0 / author:@xyx0no646
;ご自由にお使いください
@xyx0no646
xyx0no646 / tmpmacro.ks
Last active August 28, 2021 13:17
Web版吉里吉里SDL2の[edit]タグで日本語入力ができない問題を一応解決する、LinkEditLayerを誇張するマクロ(TJSスクリプト)
;Licence CC0 / author:@xyx0no646
;ご自由にお使いください
[iscript]
// LinkEditLayerを誇張する。
// Emscriptenの場合は、ClickされたらJavaScriptのPromptを出す
// それ以外はただのLinkEditLayer
// 2021/8/26 更新 文字列のEvalを避け、windowコンテキストを持って来るようにする
// キャンセル時の挙動を改善
/**
* JavaScriptで実装されたWaveSoundBuffer
*
* oggやwav,mp3の再生・停止、音量変更など基本的な機能は動作します。
* 一方でループチューナーなどいろいろなものが実装されていません。
*
* 使い方:
* (1) dataフォルダに「JSWaveSoundBuffer.tjs」と言う名前でこのファイルを保存する
* (2) startup.tjsのスタブなどを書いている場所の下に以下の記述を行う
@xyx0no646
xyx0no646 / fullscreen_macro.ks
Last active August 29, 2021 18:07
Web版 吉里吉里SDL2 フルスクリーン対応
;Licence CC0 / author:@xyx0no646
;ご自由にお使いください
[iscript]
// フルスクリーン対応
if (System.platformName === 'Emscripten') {
KirikiriEmscriptenInterface.evalJS("
if(!window.__onfullschreenchanged) {
document.addEventListener('fullscreenchange',window.__onfullschreenchanged = () => {
window.dispatchEvent(new Event('resize'));
class SomeObject{
function SomeObject(){
this.setTimeout = KirikiriEmscriptenInterface.evalJS('(func,time)=>setTimeout(func,time)');
this.setTimeout(this.timeout incontextof this,1000);
};
function timeout(){
Debug.message("timeout is called");
Debug.message(this); // Now It Works!
Debug.message("this value is:" + this);
}

吉里吉里リリーサーNGのWebビルド方法

準備

以下のリンクの「準備 ~ emscriptenのインストール」まで行う

https://writening.net/page?xQuiSB#i5

ビルド

リポジトリからクローンする

// Deno Ultra Simple Static Server
//
// Copy of this example:
// https://servestjs.org/use-serve-static
/* how to compile
wget https://gist.githubusercontent.com/xyx0no646/a51d981c225cfc127a6b2dc3a8893588/raw/859e4aff4009f87dfaaf19951fb620c4cdb94611/deno_simple_static_server.jsdeno compile --allow-net --allow-read deno_simple_static_server.js
mkdir public
echo helloworld > ./public/index.html