Skip to content

Commit

Permalink
Merge pull request #37 from putianyi889/ctexbook
Browse files Browse the repository at this point in the history
改用ctexbook模板
  • Loading branch information
putianyi889 authored Jul 4, 2023
2 parents ac60d8b + b1b4de4 commit 407c652
Show file tree
Hide file tree
Showing 47 changed files with 791 additions and 2,232 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/latex.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ jobs:
steps:
- name: Set up Git repository
uses: actions/checkout@v3
- name: Compile LaTeX document
- name: Compile On-screen Version
uses: xu-cheng/latex-action@v2
with:
root_file: main.tex
root_file: TerrariaWiringTutorial_onscreen.tex
latexmk_use_xelatex: true
- name: Upload PDF file
uses: actions/upload-artifact@v3
- name: Compile Printed Version
uses: xu-cheng/latex-action@v2
with:
name: PDF
path: main.pdf
root_file: TerrariaWiringTutorial_printed.tex
latexmk_use_xelatex: true
44 changes: 15 additions & 29 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,33 +1,19 @@
main
*.aux
main.log
main.maf
main.mtc
main.mtc0
main.mtc1
main.mtc2
main.mtc3
main.mtc4
main.mtc5
main.mtc6
main.mtc7
main.mtc8
main.mtc9
main.mtc10
main.mtc11
main.mtc12
main.mtc13
main.mtc14
main.mtc15
main.mtc16
main.mtc17
main.mtc18
main.mtc19
main.mtc20
main.out
main.pdf
main.toc
main.synctex.gz
main.synctex(busy)
main.run.xml
main.bcf

*.out
*.bcf
*.run.xml
*.toc
*.mtc*
*.log
*.maf
*.synctex(busy)
*.idx
*.ilg
*.ind
*.gz
TerrariaWiringTutorial_onscreen.pdf
TerrariaWiringTutorial_printed.pdf
8 changes: 8 additions & 0 deletions TerrariaWiringTutorial_onscreen.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
\PassOptionsToPackage{obeyspaces}{url}
\documentclass[oneside]{ctexbook}

\def\rendermode{1}

\input{main}

\end{document}
10 changes: 10 additions & 0 deletions TerrariaWiringTutorial_printed.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
\PassOptionsToPackage{obeyspaces}{url}
\documentclass{ctexbook}

\def\rendermode{2}

\input{main}

\printindex

\end{document}
107 changes: 50 additions & 57 deletions chapters/Sources.tex

Large diffs are not rendered by default.

28 changes: 6 additions & 22 deletions chapters/chapter1.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ \chapter{从零开始}

\section{前言}\label{sec1:1}
\begin{note}
本书初编写时的游戏是1.3.5.3版本。1.4更新后我们正在努力学习新的内容并更新。文档中1.4的更新内容请参考\url{https://github.com/putianyi889/TerrariaWiringTutorial/issues/30}
本书初编写时的游戏是1.3.5.3版本。1.4更新后我们正在努力学习新的内容并更新。
\end{note}

本书定位为“文档”,主要用于系统性收录电路理论,因此行文中会先讲理论后讲例子。如果读者觉得理论难以理解,不妨先看例子,再结合例子看理论。
Expand All @@ -11,7 +11,7 @@ \section{前言}\label{sec1:1}

学习\nameref{dianlujichu}后,你就可以做出大多数解谜地图与刷怪场里的电路,包括南瓜神教等。学习\nameref{sec7}后,你将可以研究设计复杂电路,例如电路小游戏。\nameref{chap7}难度较高,仅供有能力的读者阅读。不要忽视附录,附录中包含大量的有价值链接与游戏机制,它们会有助于你学习电路和设计一些场地。

因为泰拉瑞亚官方资料都是全英文的,并且几乎所有英文资料都没有翻译,所以在对泰拉瑞亚进行深入研究的时候请务必备好词典以及初中以上的英文水准。同时,一定的计算机或数学专业知识也会有帮助。如果你在词典的帮助下仍然看不懂英文,建议找人求助,而不是去使用机翻,机翻基本上没有一句话是准确的。\url{https://github.com/putianyi889/TMECbackup}整理了泰拉瑞亚英文官方论坛电路版块的部分帖子,你可以在那里求助翻译。
因为泰拉瑞亚官方资料都是全英文的,并且几乎所有英文资料都没有翻译,所以在对泰拉瑞亚进行深入研究的时候请务必备好词典以及初中以上的英文水准。同时,一定的计算机或数学专业知识也会有帮助。如果你在词典的帮助下仍然看不懂英文,建议找人求助,而不是去使用机翻,机翻基本上没有一句话是准确的。

如果你对于纯文字的内容难以接受,也可以去观看视频教程,链接在附录中。视频相对于文字的缺点主要是时效性,因为视频不易更改,所以视频中的技术往往是已被淘汰的技术。我们仍建议在理解了视频教程的内容后以本书作为主参考。

Expand All @@ -21,7 +21,7 @@ \section{前言}\label{sec1:1}

本书正文部分用于集中讨论电路,对于电路以外的信息会在附录中讨论。

\url{https://github.com/putianyi889/TerrariaWiringTutorial}协助编写本书是唯一的支持我们的方式。你可以主动创作,也可以在\href{https://github.com/putianyi889/TerrariaWiringTutorial/issues}{Issues}中领取任务。如果你不会使用GitHub,可以看教程\url{https://zhuanlan.zhihu.com/p/34693871}。关注(Watch)本书的GitHub项目可以即时获取更新信息。
\github{putianyi889/TerrariaWiringTutorial}协助编写本书是唯一的支持我们的方式。你可以主动创作,也可以在\href{https://github.com/putianyi889/TerrariaWiringTutorial/issues}{Issues}中领取任务。如果你不会使用GitHub,可以看教程\url{https://zhuanlan.zhihu.com/p/34693871}。关注 (Watch) 本书的GitHub项目可以即时获取更新信息。

\section{一些基本概念与机制}

Expand Down Expand Up @@ -67,7 +67,7 @@ \subsection{图像帧/物理帧}
游戏运行时,显卡负责图像处理,CPU负责机制结算。如果这两个过程都能在1/60秒内完成,那么物理帧率就是60。如果CPU处理时间大于1/60秒,那么相应的物理帧率会变低。如果显卡处理时间大于1/60秒,那么结果取决于是否跳帧。如果设置中打开跳帧,那么会适当降低图像帧率以保持CPU能达到的最高物理帧率。如果关闭跳帧,那么图像帧和物理帧会完全同步,实时的游戏速度以显卡和CPU中的最慢速度为准。

\subsection{坐标}\label{tab8}
坐标就是在世界中的位置。坐标并非深度计与罗盘所显示的那样。程序中的坐标是以世界左上角为(0,0),横坐标向右,纵坐标向下。世界宽度为\lstinline{maxTilesX}格,高度为\lstinline{maxTilesY}格。世界右下角的坐标为(\lstinline{maxTilesX},\lstinline{maxTilesY})。
坐标就是在世界中的位置。坐标并非深度计与罗盘所显示的那样。程序中的坐标是以世界左上角为(0,0),横坐标向右,纵坐标向下。世界宽度为 \lstinline{maxTilesX} 格,高度为 \lstinline{maxTilesY} 格。世界右下角的坐标为(\lstinline{maxTilesX}, \lstinline{maxTilesY})。

泰拉瑞亚中纵坐标分层一般分为太空、地表、地下、洞穴、地狱五层。而游戏机制中,只有两个阈值,一个是地表层与地下层交界处的纵坐标,称为\lstinline{worldSurface};另一个是地下层与洞穴层交界处的纵坐标,称为\lstinline{rockLayer}。太空层高度是把\lstinline{rockLayer}乘上一个系数得到的;地狱层高度是把\lstinline{maxTilesY}减去一个常数得到的。这个系数一般是0.35,常数一般是200格,但是在不同情况下也可能会有出入。

Expand All @@ -88,30 +88,14 @@ \subsection{驱动}
\item 低频驱动指频率小于等于4Hz的驱动。这类驱动一般通过计时器降频得到。
\item 高频驱动指频率大于4Hz且小于60Hz的驱动。这类驱动造法非常丰富,最可靠稳定的方法是利用满频驱动降频。
\item 满频驱动指频率等于60Hz的驱动。主流的满频驱动有假人驱动和传送带驱动。之所以叫满频驱动,是因为驱动频率与物理帧率相同。更高的频率也可以通过满频驱动得到相同的效果。例如,120Hz的驱动的输出效果和两个满频驱动同时输出的效果完全相同。
\item 超频驱动指频率大于60Hz的驱动。此类驱动一般用多个满频驱动同时运行,或者利用加重压力板的超灵敏度。目前还没有超频驱动的应用实例。
\item 超频驱动指频率大于60Hz的驱动。此类驱动一般用多个满频驱动同时运行,或者利用测重压力板的超灵敏度。目前还没有超频驱动的应用实例。
\end{itemize}

\subsection{半砖}

当掉落物/非穿墙生物的碰撞箱与实体块重合时,程序会尝试将碰撞箱推离实体块。从1.2版本开始,大多数前景物块都有六种半砖形态,每种半砖推离碰撞箱的机制各不相同。尽管半砖在电路中占有一席之地,由于其:本身不涉及到电路;应用不广泛\footnote{其大多数功能可以用传送机或传送带解决。};目前没有严谨的机制;设计装置主要靠经验和尝试,本书中暂时不涉及半砖教学。

关于半砖有关的研究与教程,读者可以参考以下的链接,链接排序随机。

\begin{itemize}
\item 视频
\begin{itemize}
\item 你会使用半砖吗?-Zerogravitas \url{https://www.bilibili.com/video/av22088325}
\item 物品半砖以及一些有趣应用!-Zerogravitas \url{https://www.bilibili.com/video/av22739847}
\item 鬼畜的石巨人!-Zerogravitas \url{https://www.bilibili.com/video/av22088547}
\end{itemize}
\item 文章
\begin{itemize}
\item 【实验】半砖性质探究 \url{https://tieba.baidu.com/p/3603529198}
\item HOIK! [Guide] - Rapid Player/NPC/Etc Transport Using Only Sloped Tiles. \url{https://forums.terraria.org/index.php?threads/hoik-guide-rapid-player-npc-etc-transport-using-only-sloped-tiles.1656/}
\item {[}Early Game] Anti-Monster Wall Defense (Using HOIK! and Stair Glitch) \url{https://forums.terraria.org/index.php?threads/early-game-anti-monster-wall-defense-using-hoik-and-stair-glitch.29917/}
\item Hoik tracks with pressure plates for mounts \url{https://forums.terraria.org/index.php?threads/hoik-tracks-with-pressure-plates-for-mounts.37113/}
\end{itemize}
\end{itemize}
关于半砖有关的研究与教程,读者可以参考附录。

\subsection{射弹生成以及刷新机制}
射弹(projectile)是泰拉瑞亚中的一大类实体。包括但不限于机关射出来的飞镖、火焰,抛出的悠悠球,棱镜射出的激光,扔出的沙滩球,挥舞的日耀链刃,甚至玩家死亡后弹跳的墓碑。
Expand Down
Loading

0 comments on commit 407c652

Please sign in to comment.