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