【076】mivfx 0.4.0登場

このコミットが含まれているのは:
守矢諏訪子 2024-04-07 15:47:21 +09:00
コミット 46c7320fe8
7個のファイルの変更169行の追加214行の削除

ファイルの表示

@ -3,13 +3,50 @@
<id>gemini://technicalsuwako.moe</id>
<title>テクニカル諏訪子</title>
<updated>2024-04-01T00:00:00Z</updated>
<updated>2024-04-07T00:00:00Z</updated>
<author><name>テクニカル諏訪子</name></author>
<link href="gemini://technicalsuwako.moe" rel="alternate"></link>
<entry>
<id>blog/mivfx-040.gmi</id>
<author><name>凛</name></author>
<title type="html">【】mivfx 0.4.0登場</title>
<published>2024-04-07T00:00:00Z</published>
<category term="jp"></category>
<category term="blog"></category>
<category term="ウエブ開発"></category>
<category term=""></category>
<category term="mivfx"></category>
<link href="gemini://technicalsuwako.moe/blog/mivfx-040.gmi" rel="alternate"></link>
<content type="html">
&lt;h2 id=&#34;mivfx&#34;&gt;mivfxって何?&lt;/h2&gt;
&lt;p&gt;mivfxはミニマリストな画像ビューアーです。&lt;/p&gt;
&lt;h2 id=&#34;heading&#34;&gt;変更&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;URLから画像ファイルを開ける様に&lt;/li&gt;
&lt;li&gt;GPLv2→BSD2clouseライセンスに変更&lt;/li&gt;
&lt;li&gt;画面アスペクト比ロック&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;heading-1&#34;&gt;ソースコード&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://gitler.moe/suwako/mivfx&#34;&gt;Gitler&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;以上&lt;/p&gt;
</content>
</entry>
<entry>
<id>blog/openbsd-compile-monero-btop.gmi</id>
<author><name>凜</name></author>
@ -40,46 +77,46 @@
&lt;h2 id=&#34;monero-cli-&#34;&gt;Monero CLI ウォレットのコンパイル方法&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;/blog/crypto-1-monero-dero-wallet.xhtml&#34;&gt;前回は「ウォレットの選択」で「OpenBSDの場合は全くありません。」と述べましたが、それは誤りでした。&lt;/a&gt;
それじゃ、コンパイルしてみましょう!&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;doas pkg_add cmake gmake zeromq libiconv boost libunbound
mkdir -p ~/.local/src
&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/src
git clone https://github.com/monero-project/monero.git
&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; monero
&lt;span style=&#34;color:#a2f&#34;&gt;ulimit&lt;/span&gt; -d &lt;span style=&#34;color:#666&#34;&gt;2000000&lt;/span&gt;
git submodule update --init --force
gmake
&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; build/OpenBSD/master/release/bin
doas cp monero* /usr/local/bin
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;btop&#34;&gt;btopのコンパイル方法&lt;/h2&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas pkg_add cmake gmake zeromq libiconv boost libunbound
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p ~/.local/src
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/src
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/monero-project/monero.git
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; monero
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;ulimit&lt;/span&gt; -d &lt;span style=&#34;color:#666&#34;&gt;2000000&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git submodule update --init --force
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;gmake
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; build/OpenBSD/master/release/bin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas cp monero* /usr/local/bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;btop&#34;&gt;btopのコンパイル方法&lt;/h2&gt;
&lt;p&gt;そして、あたしのお気に入りのシステムモニターであるbtopもコンパイルします。&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;doas pkg_add cmake g++%11 git ninja lowdown
mkdir -p ~/.local/src
&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/src
git clone https://github.com/aristocratos/btop.git
&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; btop
&lt;span style=&#34;color:#b8860b&#34;&gt;CXX&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;eg++ cmake -B build -G Ninja
cmake --build build
doas cmake --install build
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://ass.technicalsuwako.moe/2024-04-01-205103_1280x800_scrot.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas pkg_add cmake g++%11 git ninja lowdown
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p ~/.local/src
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/src
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/aristocratos/btop.git
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; btop
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#b8860b&#34;&gt;CXX&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;eg++ cmake -B build -G Ninja
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cmake --build build
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas cmake --install build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://ass.technicalsuwako.moe/2024-04-01-205103_1280x800_scrot.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
&lt;h2 id=&#34;freebsd&#34;&gt;FreeBSDは?&lt;/h2&gt;
&lt;p&gt;FreeBSDの場合は、「pkg」で簡単にインストール出来ます。&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;doas pkg install monero-cli btop
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://ass.technicalsuwako.moe/2024-04-01-205146_1920x1080_scrot.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas pkg install monero-cli btop
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://ass.technicalsuwako.moe/2024-04-01-205146_1920x1080_scrot.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
&lt;h2 id=&#34;netbsd&#34;&gt;NetBSDは?&lt;/h2&gt;
&lt;p&gt;残念ながら、Moneroウォレットもbtopもコンパイル出来ませんでした・・・&lt;/p&gt;
&lt;h2 id=&#34;crux&#34;&gt;CRUXは?&lt;/h2&gt;
&lt;p&gt;両方とも「suwaports」というコレクションに含まれています。&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;doas su
&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; /etc/ports
wget https://076.moe/repo/crux/suwaports.httpup
ports -u
&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; /usr/ports/suwaports/monero
pkgmk -d
pkgadd monero#0.18.3.1-1.pkg.tar.gz
&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ../btop
pkgmk -d
pkgadd btop#1.2.13-1.pkg.tar.gz
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://ass.technicalsuwako.moe/2024-04-01-210229_1440x900_scrot.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas su
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; /etc/ports
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget https://076.moe/repo/crux/suwaports.httpup
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ports -u
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; /usr/ports/suwaports/monero
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pkgmk -d
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pkgadd monero#0.18.3.1-1.pkg.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ../btop
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pkgmk -d
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pkgadd btop#1.2.13-1.pkg.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://ass.technicalsuwako.moe/2024-04-01-210229_1440x900_scrot.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
&lt;p&gt;以上&lt;/p&gt;
@ -182,76 +219,76 @@ macOSやLinux、Windows(UNIX系ではないけど)のユーザーは、選
現在、あたしはFreeBSDを使用しているので、両通貨のCLIウォレット及び特にFreeBSD向けのFeather Walletの手順を示します。&lt;/p&gt;
&lt;h3 id=&#34;monero-cli&#34;&gt;Monero CLI&lt;/h3&gt;
&lt;p&gt;これは最も簡単な方法で、FreeBSDではリポジトリからインストールできます。&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;doas pkg install monero-cli
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;CRUXでは、最初に&lt;code lang=&#34;&#34;&gt;suwaports&lt;/code&gt;コレクションを追加し、次の何れかのコマンドを使用します:&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;doas prt-get depinst monero
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;又は:&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; /usr/ports/suwaports/monero
doas pkgmk -d
doas pkgadd monero#0.18.3.2-1.pkg.tar.gz
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;より一貫性のある手順として、Monero Projectから直接事前にコンパイルされたバイナリパッケージをダウンロードするだけです。&lt;br /&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas pkg install monero-cli
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;CRUXでは、最初に&lt;code lang=&#34;&#34;&gt;suwaports&lt;/code&gt;コレクションを追加し、次の何れかのコマンドを使用します:&lt;/p&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas prt-get depinst monero
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;又は:&lt;/p&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; /usr/ports/suwaports/monero
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas pkgmk -d
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas pkgadd monero#0.18.3.2-1.pkg.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;より一貫性のある手順として、Monero Projectから直接事前にコンパイルされたバイナリパッケージをダウンロードするだけです。&lt;br /&gt;
Linuxの場合&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;mkdir -p ~/.local/bin &lt;span style=&#34;color:#666&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/bin
wget https://downloads.getmonero.org/cli/monero-linux-x64-v0.18.3.2.tar.bz2
bsdtar -xfv monero-linux-x64-v0.18.3.2.tar.bz2
mv monero-x86_64-linux-gnu-v0.18.3.2/monero* .
rm -rf monero-x86_64-linux-gnu-v0.18.3.2/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;FreeBSDの場合&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;mkdir -p ~/.local/bin &lt;span style=&#34;color:#666&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/bin
wget https://downloads.getmonero.org/cli/monero-freebsd-x64-v0.18.3.2.tar.bz2
tar xfv monero-freebsd-x64-v0.18.3.2.tar.bz2
mv monero-x86_64-unknown-freebsd-v0.18.3.2/monero* .
rm -rf monero-x86_64-unknown-freebsd-v0.18.3.2/
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;featherwallet&#34;&gt;FeatherWallet&lt;/h3&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p ~/.local/bin &lt;span style=&#34;color:#666&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/bin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget https://downloads.getmonero.org/cli/monero-linux-x64-v0.18.3.2.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;bsdtar -xfv monero-linux-x64-v0.18.3.2.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mv monero-x86_64-linux-gnu-v0.18.3.2/monero* .
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm -rf monero-x86_64-linux-gnu-v0.18.3.2/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;FreeBSDの場合&lt;/p&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p ~/.local/bin &lt;span style=&#34;color:#666&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/bin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget https://downloads.getmonero.org/cli/monero-freebsd-x64-v0.18.3.2.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tar xfv monero-freebsd-x64-v0.18.3.2.tar.bz2
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mv monero-x86_64-unknown-freebsd-v0.18.3.2/monero* .
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm -rf monero-x86_64-unknown-freebsd-v0.18.3.2/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;featherwallet&#34;&gt;FeatherWallet&lt;/h3&gt;
&lt;p&gt;Linuxでは、FeatherWalletの公式ウェブサイトからダウンロードしてそのまま使用出来ます。&lt;br /&gt;
&lt;a href=&#34;https://featherwallet.org/download/&#34;&gt;一般ネット&lt;/a&gt;&lt;br /&gt;
&lt;a href=&#34;http://featherdvtpi7ckdbkb2yxjfwx3oyvr3xjz3oo4rszylfzjdg6pbm3id.onion/download/&#34;&gt;Tor&lt;/a&gt;&lt;br /&gt;
&lt;a href=&#34;http://rwzulgcql2y3n6os2jhmhg6un2m33rylazfnzhf56likav47aylq.b32.i2p/download/&#34;&gt;I2P&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;FreeBSDの場合、ソースからダウンロードする必要があります。&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;doas pkg install qt5 qt6-base libsodium libzip libqrencode unbound cmake boost-libs hidapi openssl lua54-luaexpat libunwind protobuf pkgconf vulkan-headers doxygen
mkdir -p ~/.local/src &lt;span style=&#34;color:#666&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/src
git clone https://github.com/feather-wallet/feather.git
&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; feather
git submodule update --init --recursive --progress
mkdir build &lt;span style=&#34;color:#666&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; build
cmake -DSTACK_TRACE:BOOL&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DDCHECK_UPDATES&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DDONATE_BEG&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DUSE_DEVICE_TREZOR&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_SCANNER&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_REDDIT&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_LOCALMONERO&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_REVUO&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_BOUNTIES&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_CROWDFUNDING&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_TICKERS&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_XMRIG&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_EXCHANGE&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_LOCALMONERO&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DPLATFORM_INSTALLER&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF ..
cmake --build . -j &lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;$(&lt;/span&gt;nproc
doas mv bin/feather /usr/local/bin
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;dero-cli&#34;&gt;Dero CLI&lt;/h3&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas pkg install qt5 qt6-base libsodium libzip libqrencode unbound cmake boost-libs hidapi openssl lua54-luaexpat libunwind protobuf pkgconf vulkan-headers doxygen
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p ~/.local/src &lt;span style=&#34;color:#666&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/src
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git clone https://github.com/feather-wallet/feather.git
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; feather
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;git submodule update --init --recursive --progress
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir build &lt;span style=&#34;color:#666&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; build
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cmake -DSTACK_TRACE:BOOL&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DDCHECK_UPDATES&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DDONATE_BEG&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DUSE_DEVICE_TREZOR&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_SCANNER&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_REDDIT&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_LOCALMONERO&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_REVUO&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_BOUNTIES&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_CROWDFUNDING&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_TICKERS&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_XMRIG&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_EXCHANGE&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DWITH_PLUGIN_LOCALMONERO&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF -DPLATFORM_INSTALLER&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;OFF ..
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cmake --build . -j &lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;$(&lt;/span&gt;nproc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;doas mv bin/feather /usr/local/bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;dero-cli&#34;&gt;Dero CLI&lt;/h3&gt;
&lt;p&gt;Deroウォレットの場合、LinuxではEngram GUIウォレットを使用出来ますが、FreeBSDでは使用出来ません。&lt;br /&gt;
従って、あたし達は両方で動作する物のみを望んでいるので、代わりにCLIウォレットを使用します。&lt;/p&gt;
&lt;p&gt;Linuxの場合&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;mkdir -p ~/.local/bin &lt;span style=&#34;color:#666&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/bin
wget https://github.com/deroproject/derohe/releases/latest/download/dero_linux_amd64.tar.gz
tar zxfv dero_linux_amd64.tar.gz
rm -rf dero_linux_amd64/Start.md
mv dero_linux_amd64/* .
rm -rf dero_linux_amd64.tar.gz
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;FreeBSDの場合&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;mkdir -p ~/.local/bin &lt;span style=&#34;color:#666&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/bin
wget https://github.com/deroproject/derohe/releases/latest/download/dero_freebsd_amd64.tar.gz
tar zxfv dero_freebsd_amd64.tar.gz
rm -rf dero_freebsd_amd64/Start.md
mv dero_freebsd_amd64/* .
rm -rf dero_freebsd_amd64.tar.gz
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;heading-2&#34;&gt;ディーモンの起動&lt;/h2&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p ~/.local/bin &lt;span style=&#34;color:#666&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/bin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget https://github.com/deroproject/derohe/releases/latest/download/dero_linux_amd64.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tar zxfv dero_linux_amd64.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm -rf dero_linux_amd64/Start.md
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mv dero_linux_amd64/* .
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm -rf dero_linux_amd64.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;FreeBSDの場合&lt;/p&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p ~/.local/bin &lt;span style=&#34;color:#666&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style=&#34;color:#a2f&#34;&gt;cd&lt;/span&gt; ~/.local/bin
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;wget https://github.com/deroproject/derohe/releases/latest/download/dero_freebsd_amd64.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;tar zxfv dero_freebsd_amd64.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm -rf dero_freebsd_amd64/Start.md
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mv dero_freebsd_amd64/* .
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;rm -rf dero_freebsd_amd64.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;heading-2&#34;&gt;ディーモンの起動&lt;/h2&gt;
&lt;p&gt;フルブロックチェーンをダウンロードするので、1 TiB以上の別のSSD又はNVMeを使用する事を強くお勧めします。&lt;br /&gt;
あたしは独自のNASを使用していますので、ZSHを使用していると仮定して、エイリアスを追加します&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;export XDG_CONFIG_HOME=&amp;#34;$HOME/.config&amp;#34;
export XDG_CACHE_HOME=&amp;#34;$HOME/.cache&amp;#34;
export XDG_BIN_HOME=&amp;#34;$HOME/.local/bin&amp;#34;
export XDG_DATA_HOME=&amp;#34;$HOME/.local/share&amp;#34;
export XDG_SRC_HOME=&amp;#34;$HOME/.local/src&amp;#34;
export WALLETB_HOME=&amp;#34;/mnt/nfs/wallets&amp;#34;
export PATH=~/.local/bin:$PATH
...
alias monerod=&amp;#34;monerod --data-dir $WALLETB_HOME/bitmonero&amp;#34;
alias derod=&amp;#34;derod --data-dir=$WALLETB_HOME/dero&amp;#34;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;また、ディレクトリを作成します:&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;mkdir -p &lt;span style=&#34;color:#b8860b&#34;&gt;$WALLETB_HOME&lt;/span&gt;/&lt;span style=&#34;color:#666&#34;&gt;{&lt;/span&gt;bitmonero,dero/mainnet&lt;span style=&#34;color:#666&#34;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;monero&#34;&gt;Moneroを購入する方法&lt;/h2&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export XDG_CONFIG_HOME=&amp;#34;$HOME/.config&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export XDG_CACHE_HOME=&amp;#34;$HOME/.cache&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export XDG_BIN_HOME=&amp;#34;$HOME/.local/bin&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export XDG_DATA_HOME=&amp;#34;$HOME/.local/share&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export XDG_SRC_HOME=&amp;#34;$HOME/.local/src&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export WALLETB_HOME=&amp;#34;/mnt/nfs/wallets&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;export PATH=~/.local/bin:$PATH
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;alias monerod=&amp;#34;monerod --data-dir $WALLETB_HOME/bitmonero&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;alias derod=&amp;#34;derod --data-dir=$WALLETB_HOME/dero&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;また、ディレクトリを作成します:&lt;/p&gt;
&lt;pre style=&#34;background-color:#f8f8f8;; overflow-x: auto&#34;&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;mkdir -p &lt;span style=&#34;color:#b8860b&#34;&gt;$WALLETB_HOME&lt;/span&gt;/&lt;span style=&#34;color:#666&#34;&gt;{&lt;/span&gt;bitmonero,dero/mainnet&lt;span style=&#34;color:#666&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;monero&#34;&gt;Moneroを購入する方法&lt;/h2&gt;
&lt;p&gt;日本からMoneroを購入する事は不可能の様ですが、可能です。&lt;br /&gt;
最も簡単な方法は、取引所からLitecoinを購入し、一時的なLitecoinウォレットを作成し、そこに送金し、ChangeNOWを使用してLTCからXMRにスワップする事です。&lt;br /&gt;
&lt;a href=&#34;https://changenow.io/ja&#34;&gt;ChangeNOW&lt;/a&gt;&lt;br /&gt;
@ -312,123 +349,5 @@ alias derod=&amp;#34;derod --data-dir=$WALLETB_HOME/dero&amp;#34;
</content>
</entry>
<entry>
<id>blog/sdl2-easy-collision.gmi</id>
<author><name>凛</name></author>
<title type="html">【SDL2】簡単な3D衝突検出の解説</title>
<published>2024-02-17T00:00:00Z</published>
<category term="blog"></category>
<category term="jp"></category>
<category term="プログラミング"></category>
<category term="zig"></category>
<category term="sdl"></category>
<category term="opengl"></category>
<category term="ゲーム開発"></category>
<link href="gemini://technicalsuwako.moe/blog/sdl2-easy-collision.gmi" rel="alternate"></link>
<content type="html">
&lt;p&gt;最近、自作のゲームを作成していますが、衝突検出を実装する事に懸念を抱きました。&lt;br /&gt;
しかし、作った後はそんなに難しくないと気づきました。&lt;br /&gt;
その為、今回はこれについて説明します。&lt;br /&gt;
記事での利用している言語はZig言語ですが、C言語やC++でも使えます。&lt;/p&gt;
&lt;h2 id=&#34;heading&#34;&gt;プログラミングタイム!!&lt;/h2&gt;
&lt;p&gt;3つのオブジェクトを設置します。&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;// オブジェクト
&lt;/span&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Wall&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;struct&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;x&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;y&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;z&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;size&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;};&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Floor&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;struct&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;x&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;y&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;z&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;size&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;};&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Player&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;struct&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;xpos&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ypos&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;zpos&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;xsize&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ysize&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;zsize&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;velocity&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;gravity&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;};&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;var&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;wall&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Wall&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.x&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;6.0&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.y&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;0.0&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.z&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;26.0&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.size&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;6.0&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;};&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;var&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;floor&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Floor&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.x&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;6.0&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.y&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;7.0&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.z&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;26.0&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.size&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;50.0&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;};&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;var&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;player&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Player&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.xpos&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;0.0&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.ypos&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;50.0&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.zpos&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;0.0&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.xsize&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;0.2&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.ysize&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;0.8&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.zsize&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;0.2&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.velocity&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;0.1&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.gravity&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;0.2&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;};&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;fn&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;draw()&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;// ここは`glBegin`、`glVertex3f`等を設置しますが、長すぎる為、これはスキップします。
&lt;/span&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;上記のコードで、主に「gravity」や「velocity」が大切です。&lt;br /&gt;
次は衝突検出の関数を作ります。&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;fn&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;checkPosToObj(xpos&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;ypos&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;zpos&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;size&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;obj&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;anytype)&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;bool&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;thresholdX&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;size;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;thresholdY&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;size;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;thresholdZ&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;size;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;deltaX&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;@abs&lt;/span&gt;(xpos&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;obj.xpos);&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;deltaY&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;@abs&lt;/span&gt;(ypos&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;obj.ypos);&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;deltaZ&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;@abs&lt;/span&gt;(zpos&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;obj.zpos);&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;deltaX&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;thresholdX&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;and&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;deltaY&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;thresholdY&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;and&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;deltaZ&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;thresholdZ;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;床と壁のサイズ値は1つだけで、プレイヤは3つ(X, Y, Z)がある為、上記を使った方が良いですね。&lt;br /&gt;
両方のオブジェクトが3つのサイズ値があれば、下記の関数を使っては良いと思います。&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;fn&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;checkObjToObj(a&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;anytype,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;b&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;anytype)&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;bool&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;thresholdX&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;a.xsize;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;thresholdY&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;a.ysize;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;thresholdZ&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;a.zsize;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;deltaX&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;@abs&lt;/span&gt;(a.xpos&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;b.xpos);&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;deltaY&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;@abs&lt;/span&gt;(a.ypos&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;b.ypos);&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;const&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;deltaZ&lt;span style=&#34;color:#666&#34;&gt;:&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;f32&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f&#34;&gt;@abs&lt;/span&gt;(a.zpos&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;b.zpos);&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;return&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;deltaX&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;thresholdX&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;and&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;deltaY&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;thresholdY&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;and&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;deltaZ&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;thresholdZ;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;thresholdはいつでもプレイヤ以外のオブジェクトのサイズとなります。&lt;/p&gt;
&lt;pre&gt;&lt;code lang=&#34;&#34;&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;pub&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;fn&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;main()&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;!&lt;/span&gt;&lt;span style=&#34;color:#0b0;font-weight:bold&#34;&gt;void&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;// ...
&lt;/span&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;// 衝突検出
&lt;/span&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;if&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;(checkPosToObj(floor.x,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;floor.y,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;floor.z,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;floor.size,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;player))&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;std.debug.print(&lt;span style=&#34;color:#b44&#34;&gt;&amp;#34;床を触って良かった! ypos = {d}&lt;/span&gt;&lt;span style=&#34;color:#b62;font-weight:bold&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#b44&#34;&gt;&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.{player.ypos});&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;player.ypos&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;floor.y&lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;(player.ysize);&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;}&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;else&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;std.debug.print(&lt;span style=&#34;color:#b44&#34;&gt;&amp;#34;ああああああ!! ypos = {d}&lt;/span&gt;&lt;span style=&#34;color:#b62;font-weight:bold&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#b44&#34;&gt;&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.{player.ypos});&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;player.ypos&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;-=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;player.gravity;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;}&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#a2f;font-weight:bold&#34;&gt;if&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;(checkPosToObj(plane.x,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;plane.y,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;plane.z,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;plane.size,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;player))&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;{&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;std.debug.print(&lt;span style=&#34;color:#b44&#34;&gt;&amp;#34;壁だわ...&lt;/span&gt;&lt;span style=&#34;color:#b62;font-weight:bold&#34;&gt;\n&lt;/span&gt;&lt;span style=&#34;color:#b44&#34;&gt;&amp;#34;&lt;/span&gt;,&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;.{});&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;player.zpos&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#666&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;plane.z&lt;span style=&#34;color:#666&#34;&gt;+&lt;/span&gt;(player.zsize);&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;}&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;// ...
&lt;/span&gt;&lt;span style=&#34;color:#080;font-style:italic&#34;&gt;&lt;/span&gt;}&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;heading-1&#34;&gt;結果&lt;/h2&gt;
&lt;p&gt;&lt;video src=&#34;https://ass.technicalsuwako.moe/zig-cd.ogv&#34; controls=&#34;controls&#34; style=&#34;max-height: 400px;&#34;&gt;&lt;/video&gt;&lt;/p&gt;
&lt;p&gt;ねぇ!簡単でしょ〜!&lt;/p&gt;
&lt;p&gt;以上&lt;/p&gt;
</content>
</entry>
</feed>

ファイルの表示

@ -2,8 +2,9 @@
# 記事一覧
=> /blog/mivfx-040.gmi 2024年04月07日 【】mivfx 0.4.0登場
=> /blog/openbsd-compile-monero-btop.gmi 2024年04月01日 【OpenBSD】Moneroウォレットとbtopのコンパイル方法
=> /blog/spliti-220.gmi 2024年11月15日 【】spliti 2.2.0登場
=> /blog/spliti-220.gmi 2024年03月31日 【】spliti 2.2.0登場
=> /blog/crypto-1-monero-dero-wallet.gmi 2024年03月30日 【仮想通貨】第部~MoneroとDeroウォレットを設置する方法
=> /blog/byobu-53.gmi 2024年02月27日 【】byobu 5.3登場
=> /blog/sdl2-easy-collision.gmi 2024年02月17日 【SDL2】簡単な3D衝突検出の解説

17
gemini/blog/mivfx-040.gmi ノーマルファイル
ファイルの表示

@ -0,0 +1,17 @@
=> /blog.gmi ブログ一覧へ
#【】mivfx 0.4.0登場
投稿日2024-04-07
## mivfxって何?
mivfxはミニマリストな画像ビューアーです。
## 変更
* URLから画像ファイルを開ける様に
* GPLv2→BSD2clouseライセンスに変更
* 画面アスペクト比ロック
## ソースコード
=> https://gitler.moe/suwako/mivfx Gitler
以上

ファイルの表示

@ -1,8 +1,9 @@
# nick = techsuwako
# url = gemini://technicalsuwako.moe/twtxt.txt
# avatar = https://076.moe/static/suwako.jpg
# avatar = gemini://076.moe/static/suwako.jpg
# description = テクニカル諏訪子様のtwtxtフィード
# link = ホームページ gemini://technicalsuwako.moe
2024-04-07T00:00:00Z09:00 【】mivfx 0.4.0登場 - gemini://technicalsuwako.moe/blog/mivfx-040.gmi
2024-04-01T00:00:00Z09:00 【OpenBSD】Moneroウォレットとbtopのコンパイル方法 - gemini://technicalsuwako.moe/blog/openbsd-compile-monero-btop.gmi
2024-03-31T00:00:00Z09:00 【】spliti 2.2.0登場 - gemini://technicalsuwako.moe/blog/spliti-220.gmi
2024-03-30T00:00:00Z09:00 【仮想通貨】第部~MoneroとDeroウォレットを設置する方法 - gemini://technicalsuwako.moe/blog/crypto-1-monero-dero-wallet.gmi

バイナリ
gostatic

バイナリファイルは表示されません。

17
src/blog/mivfx-040.md ノーマルファイル
ファイルの表示

@ -0,0 +1,17 @@
title: 【】mivfx 0.4.0登場
author: 凛
date: 2024-04-07
tags: jp,blog,ウエブ開発,,mivfx
----
## mivfxって何?
mivfxはミニマリストな画像ビューアーです。
## 変更
* URLから画像ファイルを開ける様に
* GPLv2→BSD2clouseライセンスに変更
* 画面アスペクト比ロック
## ソースコード
[Gitler](https://gitler.moe/suwako/mivfx)
以上

ファイルの表示

@ -59,13 +59,13 @@ if [ "${UNAME}" = 'FreeBSD' ]; then
find . -type f -name "twtxt.txt" -exec sed -i '' -e 's/https:\/\/ass\.technicalsuwako\.moe/http:\/\/ass\.6qiatzlijtqo6giwvuhex5zgg3czzwrq5g6yick3stnn4xekw26zf7qd.onion/g' {} +
find . -type f -name "twtxt.txt" -exec sed -i '' -e 's/https:\/\/076\.moe/http:\/\/7dt6irsmfvbrtgn4nuah56kky6mvr472fbwwaltuxpf26qdqkdhfvnqd\.onion/g' {} +
else
fi
find . -type f -name "blog.atom" -exec sed -i 's/https:\/\/technicalsuwako\.moe/http:\/\/6qiatzlijtqo6giwvuhex5zgg3czzwrq5g6yick3stnn4xekw26zf7qd.onion/g' {} +
find . -type f -name "blog.atom" -exec sed -i 's/https:\/\/ass\.technicalsuwako\.moe/http:\/\/ass\.6qiatzlijtqo6giwvuhex5zgg3czzwrq5g6yick3stnn4xekw26zf7qd.onion/g' {} +
find . -type f -name "blog.atom" -exec sed -i 's/https:\/\/076\.moe/http:\/\/7dt6irsmfvbrtgn4nuah56kky6mvr472fbwwaltuxpf26qdqkdhfvnqd\.onion/g' {} +
find . -type f -name "twtxt.txt" -exec sed -i 's/https:\/\/technicalsuwako\.moe/http:\/\/6qiatzlijtqo6giwvuhex5zgg3czzwrq5g6yick3stnn4xekw26zf7qd.onion/g' {} +
find . -type f -name "twtxt.txt" -exec sed -i 's/https:\/\/ass\.technicalsuwako\.moe/http:\/\/ass\.6qiatzlijtqo6giwvuhex5zgg3czzwrq5g6yick3stnn4xekw26zf7qd.onion/g' {} +
find . -type f -name "twtxt.txt" -exec sed -i 's/https:\/\/076\.moe/http:\/\/7dt6irsmfvbrtgn4nuah56kky6mvr472fbwwaltuxpf26qdqkdhfvnqd\.onion/g' {} +
fi
cd ../ttor
if [ "${UNAME}" = 'FreeBSD' ]; then
find . -type f -name "blog.atom" -exec sed -i '' -e 's/https:\/\/technicalsuwako\.moe/http:\/\/6qiatzlijtqo6giwvuhex5zgg3czzwrq5g6yick3stnn4xekw26zf7qd.onion/g' {} +