diff --git a/README.md b/README.md index 8843f7a..8e68612 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,55 @@ -# Tromi (MOBILE port) +# Tromi (ANDROID port) A old-fashioned but modern block-stacking game. Made with love by [mycophobia](https://mycophobia.org/tromi).
-Ported to Android by SweetSea with on-screen control (with some necessary changes) +Ported to Android (mobile and TV) by SweetSea with on-screen control (with some necessary changes) # How to play > :warning: There is no Android build (aka APK file) right now. If you see any pre-built APK files on the internet. Please be aware -## Install +## For mobile +### Install 1. Download Tromi from [Releases tab](https://gitea.com/SweetSea-ButImNotSweet/tromi_mobile/releases) and place ``tromi_mobile.love`` to somewhere you can easy to navigate 2. Download [love2d engine](https://love2d.org) (You should get 11.5 or above) 3. Install love2d engine (extra steps may require, you can read [this article from WikiHow](https://www.wikihow.com/Install-APK-Files-on-Android) if this is the first time for you to install app from APK file) 4. Now, press Home (or back to app launcher), you can see two icons: ``LÖVE for Android`` and ``LÖVE Launcher``. You should use the ``LÖVE Launcher`` to launch Tromi -## Launch +### Launch 1. Launch ``LÖVE Launcher``, an file picker will appear 2. Navigate to where you put the bare ``tromi_mobile.love`` 3. Pick the file and enjoy +## For TV +> :warning: Before telling you how to, I have something to tell you.
+> I don't really encourage you to play Tromi on TV if you ***don't want*** your electricity bill to skyrocket as if to punch you in the face.
+> If you can, **plug in a keyboard or gamepad** and play the original Tromi instead of this one.
+> You can still use the remote, but remember that the remote ***is not designed for gaming***. And if you lose before the speed reaches 20G, I earnestly beg you ***not to throw the remote at your precious TV and then curse me because your performance is worse than when playing on the keyboard***. +### Install +1. Install this file manager on your TV: https://play.google.com/store/apps/details?id=com.alphainventor.filemanager. After installing you should see [this icon](https://play-lh.googleusercontent.com/9PzlG2XGr5sQDf5925tlZhqluOreI2cwzp-FOZiuj545Kt1Gk5EE9J4IdGsD7e5xWw=w240-h480-rw) +2. Opening the app, click on ``Access from...`` (network/other devices/etc...) +3. Now, on another devices, download both Tromi and love2d (like on mobile) +4. Transferring 2 downloaded files to TV +5. Install love2d app +6. *(Only first time)*, open the ``tromi_mobile.love``. When the file manager asks for opening the file as what. Choose ``Other``, then pick ``LÖVE for Android`` and click ``Always`` + +### Launch +Navigate to where you put ``tromi_mobile.love`` in the File manager (the one you downloaded from the link in Install part), just opening and Tromi should be launched. + # Differences from original Tromi > This is required, to follow the used license (GNU GPL v3) * No differences in gameplay * Files will be saved into ``Android/data/org.love2d.android/tromi_mobile`` instead the location where the game files in +* Add ``simple-button`` module, made by SweetSea * All UIs are touch-able +* Add on-screen buttons +* Replaced icons for 3 direction buttons (Left, Down, Right) + *
Add a special pre-made keybind for Android TV (only supports TV models have their remote has numerical area (0-9)) *
Changes the way to input secret code to activate Pentominoes modeTo insert the left arrow, tap on the left, so does to right arrow.
* Add a loading screen (this need to be updated later) -* Replaced ``binser`` serializer with ``bitser`` serializer (IDK why it is failed when saving, this change ***make configuration and profile files cannot be imported back to original Tromi***, except replay) +* Update ``binser`` library, this fixes some weird bugs related to saving +* Replaced old Cambridge's ``config`` module with the new one inspired by "the sequel of Techmino"s ``SETTINGS`` module # TODO - [ ] Add a way to export replay for Android > 11 -- [ ] Revert ``bitser`` with ``binser`` (if and only if I can make it works) +- [x] Revert ``bitser`` with ``binser`` (if and only if I can make it works) - [ ] Design a new on-screen buttons skin (the current one is come from [C₂₉H₂₅N₃O₅](https://github.com/C29H25N3O5), I am aware that it's not fit to Tromi's design language) - [ ] (Low priority) Design a new menu screen diff --git a/game/gamemode.lua b/game/gamemode.lua index ff10aef..838f5cf 100644 --- a/game/gamemode.lua +++ b/game/gamemode.lua @@ -921,19 +921,19 @@ end function GameMode:drawInputDisplay(left, top) if self.replay_inputs[self.frames] ~= nil then - drawText("·", left+10, top+8, 1000, "left") - drawText("↓", left+10, top+18, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['down']),1,1-boolToInt(self.replay_inputs[self.frames]['down']),1}) - drawText("←", left, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['left']),1,1-boolToInt(self.replay_inputs[self.frames]['left']),1}) - drawText("→", left+20, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['right']),1,1-boolToInt(self.replay_inputs[self.frames]['right']),1}) + drawText("+", left+10, top+8, 1000, "left") + drawText("▼", left+10, top+18, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['down']),1,1-boolToInt(self.replay_inputs[self.frames]['down']),1}) + drawText("◀", left, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['left']),1,1-boolToInt(self.replay_inputs[self.frames]['left']),1}) + drawText("▶", left+20, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['right']),1,1-boolToInt(self.replay_inputs[self.frames]['right']),1}) drawText("L", left+35, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['rotate_left']),1,1-boolToInt(self.replay_inputs[self.frames]['rotate_left']),1}) drawText("R", left+50, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['rotate_right']),1,1-boolToInt(self.replay_inputs[self.frames]['rotate_right']),1}) drawText("L", left+65, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['rotate_left2']),1,1-boolToInt(self.replay_inputs[self.frames]['rotate_left2']),1}) drawText("R", left+80, top+8, 1000, "left",{1-boolToInt(self.replay_inputs[self.frames]['rotate_right2']),1,1-boolToInt(self.replay_inputs[self.frames]['rotate_right2']),1}) else - drawText("·", left+10, top+8, 1000, "left") - drawText("↓", left+10, top+18, 1000, "left") - drawText("←", left, top+8, 1000, "left") - drawText("→", left+20, top+8, 1000, "left") + drawText("+", left+10, top+8, 1000, "left") + drawText("▼", left+10, top+18, 1000, "left") + drawText("◀", left, top+8, 1000, "left") + drawText("▶", left+20, top+8, 1000, "left") drawText("L", left+35, top+8, 1000, "left") drawText("R", left+50, top+8, 1000, "left") drawText("L", left+65, top+8, 1000, "left") diff --git a/screenshot/Replay screen differences.png b/screenshot/Replay screen differences.png new file mode 100644 index 0000000..1222155 Binary files /dev/null and b/screenshot/Replay screen differences.png differ diff --git a/screenshot/SPOILER_tv_code.png b/screenshot/SPOILER_tv_code.png index d2ccac5..c6767f1 100644 Binary files a/screenshot/SPOILER_tv_code.png and b/screenshot/SPOILER_tv_code.png differ