自我介绍

你好!

我是 Tsukimaru Oshawott,一只普通的水水獭。

阅读更多

「学习笔记」植物魔法笔记

  • 冶炼火:加热熔炉
  • 凌空蓟:掉落物传送
  • 凝矿兰:石头变矿石
  • 天降之奏:区域玩家生命恢复
  • 娇媚之刺:区域非玩家生物伤害
  • 平成之梦:区域怪物内斗
  • 异构花:区域变质岩石
  • 弱磁兰:抑制磁化指环
  • 恐惧之刺:区域成年动物伤害
  • 扇水仙:鼓风机
  • 手掌花:区域掉落物放置为方块(可设置过滤)
  • 星移莲:传送门
  • 束缚莓:区域非玩家生物不可离开区域
  • 死之花:对血量低于一半的非玩家生物,造成大量伤害
  • 毒风信:区域怪物一击必杀(但不伤害)效果
  • 气泡铃:半径 12 格球形排水效果
  • 消音柑:无魔力消耗的区域消音
  • 漏斗花:区域将掉落物转入容器(可设置过滤)
  • 炎矿兰:石头变矿石(仅在下界工作)
  • 田园康乃馨:区域植物催熟
  • 畜牧花:区域食物类植物喂养动物(小麦喂羊)
  • 石化草:区域非玩家生物不可移动
  • 神烦花:钓鱼
  • 黏土花:沙子变黏土
  • 翡翠苋(xiàn):区域生成神秘花
  • 聚宝花:生成地牢箱子和强大怪物(掉落来自地牢的宝藏)
  • 自由之翼:区域非玩家生物不可进入区域
  • 蕴魔瑾(jǐn):草变蕴魔土(每次需要一个黑莲花和大量魔力 / 时间)
  • 虎之眼:爬行者远离玩家且不会爆炸
  • 诱引莲:末影人瞬移时只会瞬移到诱引莲上
  • 镜姬:区域玩家伤害反弹和弱免疫负面效果
  • 魔链星:无线魔力传输

「学习笔记」谁都能理解的和弦讲座

总述

和弦类型

  • 三和弦
    • C:大三和弦
    • Cm:小三和弦
    • Cdim:减三和弦
    • Caug:增三和弦
  • 七和弦
    • ?7 表示 7 音和根音差 2 个半音,?maj7 表示 7 音和根音差 1 个半音
    • C7:属七和弦
      • 因为 G7 中 G->C 是强进行,而 BDF 是三全音,所以 G7->C 是非常强的进行,所以叫属七和弦
    • Cmaj7:

和弦作用

  • 主和弦:稳定
  • 下属和弦:相对稳定
  • 属和弦:不稳定
  • 主 - 下属 - 主 - 下属 - 属 - 主 - 属

属音

  • 属音:与根音主和弦(C 大调中的 CEG)仅差一个半音的音
    • 使得和弦不稳定,有向主和弦转变的倾向
    • 如 G 和弦中的 B(转向 C),Bdim 和弦中的 B 和 F(转向 E)

音阶类型

  • C D E F G A B:自然大调
  • A B C D E F G:自然小调
  • A B C D E F G#:和声小调
    • 解决了 A 无导音,E7 缺少三全音的问题
  • A B C D E F# G#:旋律小调
    • 解决了 F 和 G# 之间的增音程,听起来比较和谐

强进行

  • 强进行:上行纯四度或下行纯五度
    • 2-5-1 进行
  • 属进行:属七和弦 -> 主和弦
    • G7->C

按章节

Part 5 顺阶七和弦

  • 当根音到七音为 11 个半音(大七度)时,记为 ○maj7 / ○Δ7
  • 当根音到七音为 10 个半音(小七度)时,记为 ○7
  • 简单计数方法:将根音升高一个八度,若七音和“升高八度后的根音”相隔一个半音则为 maj7,否则相隔两个半音为 7
  • 例:
    • G7 属七和弦
    • Cmaj7 大七和弦
    • Dm7 小七和弦
    • CmMaj7 小大七和弦(小大七和弦必定离阶,即有音在黑键上

Part 6 顺阶和弦应用

  • 最初的和弦很大程度上会决定歌曲给人的印象(C:明亮 Am:阴暗 F:飘忽不定)
  • 常见进行:
    • 和弦的组合近乎无限,此处仅举几个比较常见的例子,可以不用全记,从最近听到比较多的开始记也可以
    • 15634125(卡农进行)
    • 6451(阴暗酷炫?)
    • 6415(欧美音乐常见)
    • 4536251(刻在 DNA 里的流行音乐进行)
    • 4566(ZUN 很常用)
    • 2345(抬升情绪)
  • “和弦就像吃饭,菜的吃法是相对比较自由的,但一般没有人先上来就吃甜点;同样地,和弦虽然比较自由,但也有一定的规矩”
  • 同样的和弦进行,其效果也会受到切换时机和速度的影响

Part 7 转位

  • EGC 记为 C/E(C 的第一转位,念作 C on E)
  • 转位可以使和弦变化更稳定,一般地,仅和弦要转位,Bass 不转位取根音

Part 8 转位的应用

  • 为了更加稳定,可以把 Bass 也转位;通过这个方法也可以让 Bass 更跳跃
  • C -> Am 中间可以让 Bass 向下移一个半音,使得衔接更加顺畅(即分割为 C -> Cmaj7/B -> Am -> Am)
    • 在三和弦只有 Bass 改变的情况下,可以记为 C/B

Part 9 和弦的功能

  • 属和弦:G 和弦。
  • 下属和弦:F 和弦。
  • F->G 走向在古典音乐中是不成立的,但在流行音乐 / 爵士音乐中广泛运用(比喻:礼仪)

Part 10 副和弦 / 代理和弦

  • Am 和 Em 与 C 有两个相同的音 -> 主和弦
  • Bm(b5) 和 G -> 属和弦
  • Dm 和 F -> 下属和弦
  • 总结:主 - 下属 - 主 - 下属 - 属 - 主 - 属
  • Em 相对不稳定:Em 和属和弦 G 也有两个相同的音,且该和弦不含 C

Part 11 属进行

  • 强进行:上行纯四度或下行纯五度,如 G->C、C->G。强动机。
  • B 和 F 由于被 C 和 E 吸引,相对不稳定。
  • 三全音(Tritone):六个半音,如 Bm(b5)。不稳定。
  • 在三音阶 / 四音阶里,有三全音的音阶有 Bm(b5)、G7 和 Bm7(b5)。其中解决到 C 动机最强的为 G7,因为 G7->C 满足强进行。
  • 属进行:即 G7->C(上行或下行均可)。

Part 12 小调上的主和弦

  • 与大调一样是,Am 主 - Bm(b5) 下属 - C 主 - Dm 下属 - Em 属 - F 主 - G 属
    • 也可以把 F 当作下属
  • Em7 缺少导音和三全音,可以将整个调系中的 G 升高为 G#,变成和声小调
  • 和声小调存在增音程(F -> G#),为了更和谐可以再将 F 升高为 F#,变成旋律小调
  • 小调常见进行:4736251
  • “基本上是先用自然小调,写到属和弦的部分的时候临时变为和声小调或旋律小调”

Part 13 副属和弦

  • 除 G7 外的属七和弦被认为是副属和弦(即被强行生造的离调和弦),可以由原和弦 -> 原和弦的副属和弦 -> 原和弦上方纯四度的和弦(如 C/Cmaj7 -> C7 -> F/Fmaj7)
    • 为什么转向上方纯四度:本质上是因为借用了 F 大调中的属七和弦 C7,所以 C7 后会倾向于转向 F
    • 特别地,F7 转后接 Bb,会离调,较少用
  • 实例
    • C7:会进行到 Fmaj7(下属和弦),所以有浮游感
    • D7:暗示 251,有积极的感觉
    • E7:Fmaj7 -> E7 会有成熟的感觉,常用于 R&B
    • A7:Dm7 -> Em7 -> Am7 -> A7,A7 听起来有种古典的感觉;这个进行在爵士中很常见
    • B7:Am -> G -> F -> Em -> Dm -> C -> B7 -> E7,《天空之城》主题曲的进行;B7 一般后接 E,接 Em 的情况很少(小调 251)
  • 重属和弦:两个属和弦连续使用,如 D7 -> G7 -> C

Part 14 251 进行

  • Gm7 -> C7 -> Fmaj7(F 大调的 251)被广泛运用于动漫曲 / J-POP
  • 251 分为大调 251 和小调 251,其中
    • 大调 251:○m7 -> ☐7 -> ☆
    • 小调 251:○m7(b5) -> ☐7 -> ☆m
    • 实际上可以混用开头结尾(比较模糊)
  • 也可以用非目前调的 251(临时 251 / 离调 251)

Part 15 乐曲练习

  • 为了让乐曲更丰富,可以连用多个类似功能和音响的和弦(Dm7/G -> G7)
  • C -> C7 -> Fmaj7,可以从终止走向期待
  • Csus4(C+F+G) -> C,丰富终止

Part 16 减和弦

  • 减和弦:Cdim = Cm(b5) 为减和弦,带有三全音,音响复杂
  • 减七和弦:Cdim7 = C+bE+bG+A 为减七和弦,带有两个三全音,音响复杂且十分阴暗、不稳定可能会很影响旋律,使用时请务必注意
  • 半减七和弦:Cm7(b5) = C+bE+bG+bB 为半减七和弦,相对减七和弦更柔和一点
  • 经过减和弦:可以在根音相隔一个全音的和弦进行中插入一个减和弦,使根音半音进行;如 F -> G 可以变为 F -> F#dim -> G
    • 也可以改为减七或半减七
    • F#dim = #F+A+C 其实等价于 D7 = D+#F+A+C 减去根音,所以会有同样的转向 G 的倾向

「学习笔记」混音基础

频率作用

超低频(20~80Hz)

可以使得音乐更松弛,更软,略微增加弹性

低频(80-250Hz)

可以使得音乐更有力度

中低频(250-800Hz)

温暖感提升,但是清晰度也会下降

中频(800-2500Hz)

声音会向前靠,且硬度明显增加

中高频(2500-5000Hz)

略微向前靠(不明显),主要是会有刺激感,过多会刺耳

高频(5000-8000Hz)

声音变脆,穿透力,冰冷感 / 清晰度提升

超高频(8000-12000Hz)

磁性感,呲呲的、后面的声音

空气声(12000Hz 以上)

人声增加通透感,大部分时候没必要

EQ

首先:能衰减就不用提升

EQ 的三种作用:

  1. 修复音色问题
  2. 改变空间远近(远处中低频多)
  3. 美化声音

可以采用频扫的方式作细微调整

压缩器

启动时间

第一临界点:从软变硬的时间

第二临界点:从硬变弹性的时间

释放时间

调为 $\frac {60}{\text{BPM}} \times 2^k$($k \in \Z$),否则会导致律动被打断

偏短可使得声音有力度、中高频更多,偏长可使得声音更自然柔和

压缩比和阈值

一般高压缩比配高阈值,低压缩比配低阈值

高压可使得声音更有力度,低压可使得声音更自然

#Achievement_1 { background-position: -0px -0px } #Achievement_2 { background-position: -64px -0px } #Achievement_3 { background-position: -128px -0px } #Achievement_4 { background-position: -192px -0px } #Achievement_5 { background-position: -256px -0px } #Achievement_6 { background-position: -320px -0px } #Achievement_7 { background-position: -384px -0px } #Achievement_8 { background-position: -448px -0px } #Achievement_9 { background-position: -512px -0px } #Achievement_10 { background-position: -576px -0px } #Achievement_11 { background-position: -640px -0px } #Achievement_12 { background-position: -704px -0px } #Achievement_13 { background-position: -768px -0px } #Achievement_14 { background-position: -832px -0px } #Achievement_15 { background-position: -896px -0px } #Achievement_16 { background-position: -960px -0px } #Achievement_17 { background-position: -1024px -0px } #Achievement_18 { background-position: -1088px -0px } #Achievement_19 { background-position: -1152px -0px } #Achievement_20 { background-position: -1216px -0px } #Achievement_21 { background-position: -0px -64px } #Achievement_22 { background-position: -64px -64px } #Achievement_23 { background-position: -128px -64px } #Achievement_24 { background-position: -192px -64px } #Achievement_25 { background-position: -256px -64px } #Achievement_26 { background-position: -320px -64px } #Achievement_27 { background-position: -384px -64px } #Achievement_28 { background-position: -448px -64px } #Achievement_29 { background-position: -512px -64px } #Achievement_30 { background-position: -576px -64px } #Achievement_31 { background-position: -640px -64px } #Achievement_32 { background-position: -704px -64px } #Achievement_33 { background-position: -768px -64px } #Achievement_34 { background-position: -832px -64px } #Achievement_35 { background-position: -896px -64px } #Achievement_36 { background-position: -960px -64px } #Achievement_37 { background-position: -1024px -64px } #Achievement_38 { background-position: -1088px -64px } #Achievement_39 { background-position: -1152px -64px } #Achievement_40 { background-position: -1216px -64px } #Achievement_41 { background-position: -0px -128px } #Achievement_42 { background-position: -64px -128px } #Achievement_43 { background-position: -128px -128px } #Achievement_44 { background-position: -192px -128px } #Achievement_45 { background-position: -256px -128px } #Achievement_46 { background-position: -320px -128px } #Achievement_47 { background-position: -384px -128px } #Achievement_48 { background-position: -448px -128px } #Achievement_49 { background-position: -512px -128px } #Achievement_50 { background-position: -576px -128px } #Achievement_51 { background-position: -640px -128px } #Achievement_52 { background-position: -704px -128px } #Achievement_53 { background-position: -768px -128px } #Achievement_54 { background-position: -832px -128px } #Achievement_55 { background-position: -896px -128px } #Achievement_56 { background-position: -960px -128px } #Achievement_57 { background-position: -1024px -128px } #Achievement_58 { background-position: -1088px -128px } #Achievement_59 { background-position: -1152px -128px } #Achievement_60 { background-position: -1216px -128px } #Achievement_61 { background-position: -0px -192px } #Achievement_62 { background-position: -64px -192px } #Achievement_63 { background-position: -128px -192px } #Achievement_64 { background-position: -192px -192px } #Achievement_65 { background-position: -256px -192px } #Achievement_66 { background-position: -320px -192px } #Achievement_67 { background-position: -384px -192px } #Achievement_68 { background-position: -448px -192px } #Achievement_69 { background-position: -512px -192px } #Achievement_70 { background-position: -576px -192px } #Achievement_71 { background-position: -640px -192px } #Achievement_72 { background-position: -704px -192px } #Achievement_73 { background-position: -768px -192px } #Achievement_74 { background-position: -832px -192px } #Achievement_75 { background-position: -896px -192px } #Achievement_76 { background-position: -960px -192px } #Achievement_77 { background-position: -1024px -192px } #Achievement_78 { background-position: -1088px -192px } #Achievement_79 { background-position: -1152px -192px } #Achievement_80 { background-position: -1216px -192px } #Achievement_81 { background-position: -0px -256px } #Achievement_82 { background-position: -64px -256px } #Achievement_83 { background-position: -128px -256px } #Achievement_84 { background-position: -192px -256px } #Achievement_85 { background-position: -256px -256px } #Achievement_86 { background-position: -320px -256px } #Achievement_87 { background-position: -384px -256px } #Achievement_88 { background-position: -448px -256px } #Achievement_89 { background-position: -512px -256px } #Achievement_90 { background-position: -576px -256px } #Achievement_91 { background-position: -640px -256px } #Achievement_92 { background-position: -704px -256px } #Achievement_93 { background-position: -768px -256px } #Achievement_94 { background-position: -832px -256px } #Achievement_95 { background-position: -896px -256px } #Achievement_96 { background-position: -960px -256px } #Achievement_97 { background-position: -1024px -256px } #Achievement_98 { background-position: -1088px -256px } #Achievement_99 { background-position: -1152px -256px } #Achievement_100 { background-position: -1216px -256px } #Achievement_101 { background-position: -0px -320px } #Achievement_102 { background-position: -64px -320px } #Achievement_103 { background-position: -128px -320px } #Achievement_104 { background-position: -192px -320px } #Achievement_105 { background-position: -256px -320px } #Achievement_106 { background-position: -320px -320px } #Achievement_107 { background-position: -384px -320px } #Achievement_108 { background-position: -448px -320px } #Achievement_109 { background-position: -512px -320px } #Achievement_110 { background-position: -576px -320px } #Achievement_111 { background-position: -640px -320px } #Achievement_112 { background-position: -704px -320px } #Achievement_113 { background-position: -768px -320px } #Achievement_114 { background-position: -832px -320px } #Achievement_115 { background-position: -896px -320px } #Achievement_116 { background-position: -960px -320px } #Achievement_117 { background-position: -1024px -320px } #Achievement_118 { background-position: -1088px -320px } #Achievement_119 { background-position: -1152px -320px } #Achievement_120 { background-position: -1216px -320px } #Achievement_121 { background-position: -0px -384px } #Achievement_122 { background-position: -64px -384px } #Achievement_123 { background-position: -128px -384px } #Achievement_124 { background-position: -192px -384px } #Achievement_125 { background-position: -256px -384px } #Achievement_126 { background-position: -320px -384px } #Achievement_127 { background-position: -384px -384px } #Achievement_128 { background-position: -448px -384px } #Achievement_129 { background-position: -512px -384px } #Achievement_130 { background-position: -576px -384px } #Achievement_131 { background-position: -640px -384px } #Achievement_132 { background-position: -704px -384px } #Achievement_133 { background-position: -768px -384px } #Achievement_134 { background-position: -832px -384px } #Achievement_135 { background-position: -896px -384px } #Achievement_136 { background-position: -960px -384px } #Achievement_137 { background-position: -1024px -384px } #Achievement_138 { background-position: -1088px -384px } #Achievement_139 { background-position: -1152px -384px } #Achievement_140 { background-position: -1216px -384px } #Achievement_141 { background-position: -0px -448px } #Achievement_142 { background-position: -64px -448px } #Achievement_143 { background-position: -128px -448px } #Achievement_144 { background-position: -192px -448px } #Achievement_145 { background-position: -256px -448px } #Achievement_146 { background-position: -320px -448px } #Achievement_147 { background-position: -384px -448px } #Achievement_148 { background-position: -448px -448px } #Achievement_149 { background-position: -512px -448px } #Achievement_150 { background-position: -576px -448px } #Achievement_151 { background-position: -640px -448px } #Achievement_152 { background-position: -704px -448px } #Achievement_153 { background-position: -768px -448px } #Achievement_154 { background-position: -832px -448px } #Achievement_155 { background-position: -896px -448px } #Achievement_156 { background-position: -960px -448px } #Achievement_157 { background-position: -1024px -448px } #Achievement_158 { background-position: -1088px -448px } #Achievement_159 { background-position: -1152px -448px } #Achievement_160 { background-position: -1216px -448px } #Achievement_161 { background-position: -0px -512px } #Achievement_162 { background-position: -64px -512px } #Achievement_163 { background-position: -128px -512px } #Achievement_164 { background-position: -192px -512px } #Achievement_165 { background-position: -256px -512px } #Achievement_166 { background-position: -320px -512px } #Achievement_167 { background-position: -384px -512px } #Achievement_168 { background-position: -448px -512px } #Achievement_169 { background-position: -512px -512px } #Achievement_170 { background-position: -576px -512px } #Achievement_171 { background-position: -640px -512px } #Achievement_172 { background-position: -704px -512px } #Achievement_173 { background-position: -768px -512px } #Achievement_174 { background-position: -832px -512px } #Achievement_175 { background-position: -896px -512px } #Achievement_176 { background-position: -960px -512px } #Achievement_177 { background-position: -1024px -512px } #Achievement_178 { background-position: -1088px -512px } #Achievement_179 { background-position: -1152px -512px } #Achievement_180 { background-position: -1216px -512px } #Achievement_181 { background-position: -0px -576px } #Achievement_182 { background-position: -64px -576px } #Achievement_183 { background-position: -128px -576px } #Achievement_184 { background-position: -192px -576px } #Achievement_185 { background-position: -256px -576px } #Achievement_186 { background-position: -320px -576px } #Achievement_187 { background-position: -384px -576px } #Achievement_188 { background-position: -448px -576px } #Achievement_189 { background-position: -512px -576px } #Achievement_190 { background-position: -576px -576px } #Achievement_191 { background-position: -640px -576px } #Achievement_192 { background-position: -704px -576px } #Achievement_193 { background-position: -768px -576px } #Achievement_194 { background-position: -832px -576px } #Achievement_195 { background-position: -896px -576px } #Achievement_196 { background-position: -960px -576px } #Achievement_197 { background-position: -1024px -576px } #Achievement_198 { background-position: -1088px -576px } #Achievement_199 { background-position: -1152px -576px } #Achievement_200 { background-position: -1216px -576px } #Achievement_201 { background-position: -0px -640px } #Achievement_202 { background-position: -64px -640px } #Achievement_203 { background-position: -128px -640px } #Achievement_204 { background-position: -192px -640px } #Achievement_205 { background-position: -256px -640px } #Achievement_206 { background-position: -320px -640px } #Achievement_207 { background-position: -384px -640px } #Achievement_208 { background-position: -448px -640px } #Achievement_209 { background-position: -512px -640px } #Achievement_210 { background-position: -576px -640px } #Achievement_211 { background-position: -640px -640px } #Achievement_212 { background-position: -704px -640px } #Achievement_213 { background-position: -768px -640px } #Achievement_214 { background-position: -832px -640px } #Achievement_215 { background-position: -896px -640px } #Achievement_216 { background-position: -960px -640px } #Achievement_217 { background-position: -1024px -640px } #Achievement_218 { background-position: -1088px -640px } #Achievement_219 { background-position: -1152px -640px } #Achievement_220 { background-position: -1216px -640px } #Achievement_221 { background-position: -0px -704px } #Achievement_222 { background-position: -64px -704px } #Achievement_223 { background-position: -128px -704px } #Achievement_224 { background-position: -192px -704px } #Achievement_225 { background-position: -256px -704px } #Achievement_226 { background-position: -320px -704px } #Achievement_227 { background-position: -384px -704px } #Achievement_228 { background-position: -448px -704px } #Achievement_229 { background-position: -512px -704px } #Achievement_230 { background-position: -576px -704px } #Achievement_231 { background-position: -640px -704px } #Achievement_232 { background-position: -704px -704px } #Achievement_233 { background-position: -768px -704px } #Achievement_234 { background-position: -832px -704px } #Achievement_235 { background-position: -896px -704px } #Achievement_236 { background-position: -960px -704px } #Achievement_237 { background-position: -1024px -704px } #Achievement_238 { background-position: -1088px -704px } #Achievement_239 { background-position: -1152px -704px } #Achievement_240 { background-position: -1216px -704px } #Achievement_241 { background-position: -0px -768px } #Achievement_242 { background-position: -64px -768px } #Achievement_243 { background-position: -128px -768px } #Achievement_244 { background-position: -192px -768px } #Achievement_245 { background-position: -256px -768px } #Achievement_246 { background-position: -320px -768px } #Achievement_247 { background-position: -384px -768px } #Achievement_248 { background-position: -448px -768px } #Achievement_249 { background-position: -512px -768px } #Achievement_250 { background-position: -576px -768px } #Achievement_251 { background-position: -640px -768px } #Achievement_252 { background-position: -704px -768px } #Achievement_253 { background-position: -768px -768px } #Achievement_254 { background-position: -832px -768px } #Achievement_255 { background-position: -896px -768px } #Achievement_256 { background-position: -960px -768px } #Achievement_257 { background-position: -1024px -768px } #Achievement_258 { background-position: -1088px -768px } #Achievement_259 { background-position: -1152px -768px } #Achievement_260 { background-position: -1216px -768px } #Achievement_261 { background-position: -0px -832px } #Achievement_262 { background-position: -64px -832px } #Achievement_263 { background-position: -128px -832px } #Achievement_264 { background-position: -192px -832px } #Achievement_265 { background-position: -256px -832px } #Achievement_266 { background-position: -320px -832px } #Achievement_267 { background-position: -384px -832px } #Achievement_268 { background-position: -448px -832px } #Achievement_269 { background-position: -512px -832px } #Achievement_270 { background-position: -576px -832px } #Achievement_271 { background-position: -640px -832px } #Achievement_272 { background-position: -704px -832px } #Achievement_273 { background-position: -768px -832px } #Achievement_274 { background-position: -832px -832px } #Achievement_275 { background-position: -896px -832px } #Achievement_276 { background-position: -960px -832px } #Achievement_277 { background-position: -1024px -832px } #Achievement_278 { background-position: -1088px -832px } #Achievement_279 { background-position: -1152px -832px } #Achievement_280 { background-position: -1216px -832px } #Achievement_281 { background-position: -0px -896px } #Achievement_282 { background-position: -64px -896px } #Achievement_283 { background-position: -128px -896px } #Achievement_284 { background-position: -192px -896px } #Achievement_285 { background-position: -256px -896px } #Achievement_286 { background-position: -320px -896px } #Achievement_287 { background-position: -384px -896px } #Achievement_288 { background-position: -448px -896px } #Achievement_289 { background-position: -512px -896px } #Achievement_290 { background-position: -576px -896px } #Achievement_291 { background-position: -640px -896px } #Achievement_292 { background-position: -704px -896px } #Achievement_293 { background-position: -768px -896px } #Achievement_294 { background-position: -832px -896px } #Achievement_295 { background-position: -896px -896px } #Achievement_296 { background-position: -960px -896px } #Achievement_297 { background-position: -1024px -896px } #Achievement_298 { background-position: -1088px -896px } #Achievement_299 { background-position: -1152px -896px } #Achievement_300 { background-position: -1216px -896px } #Achievement_301 { background-position: -0px -960px } #Achievement_302 { background-position: -64px -960px } #Achievement_303 { background-position: -128px -960px } #Achievement_304 { background-position: -192px -960px } #Achievement_305 { background-position: -256px -960px } #Achievement_306 { background-position: -320px -960px } #Achievement_307 { background-position: -384px -960px } #Achievement_308 { background-position: -448px -960px } #Achievement_309 { background-position: -512px -960px } #Achievement_310 { background-position: -576px -960px } #Achievement_311 { background-position: -640px -960px } #Achievement_312 { background-position: -704px -960px } #Achievement_313 { background-position: -768px -960px } #Achievement_314 { background-position: -832px -960px } #Achievement_315 { background-position: -896px -960px } #Achievement_316 { background-position: -960px -960px } #Achievement_317 { background-position: -1024px -960px } #Achievement_318 { background-position: -1088px -960px } #Achievement_319 { background-position: -1152px -960px } #Achievement_320 { background-position: -1216px -960px } #Achievement_321 { background-position: -0px -1024px } #Achievement_322 { background-position: -64px -1024px } #Achievement_323 { background-position: -128px -1024px } #Achievement_324 { background-position: -192px -1024px } #Achievement_325 { background-position: -256px -1024px } #Achievement_326 { background-position: -320px -1024px } #Achievement_327 { background-position: -384px -1024px } #Achievement_328 { background-position: -448px -1024px } #Achievement_329 { background-position: -512px -1024px } #Achievement_330 { background-position: -576px -1024px } #Achievement_331 { background-position: -640px -1024px } #Achievement_332 { background-position: -704px -1024px } #Achievement_333 { background-position: -768px -1024px } #Achievement_334 { background-position: -832px -1024px } #Achievement_335 { background-position: -896px -1024px } #Achievement_336 { background-position: -960px -1024px } #Achievement_337 { background-position: -1024px -1024px } #Achievement_338 { background-position: -1088px -1024px } #Achievement_339 { background-position: -1152px -1024px } #Achievement_340 { background-position: -1216px -1024px } #Achievement_341 { background-position: -0px -1088px } #Achievement_342 { background-position: -64px -1088px } #Achievement_343 { background-position: -128px -1088px } #Achievement_344 { background-position: -192px -1088px } #Achievement_345 { background-position: -256px -1088px } #Achievement_346 { background-position: -320px -1088px } #Achievement_347 { background-position: -384px -1088px } #Achievement_348 { background-position: -448px -1088px } #Achievement_349 { background-position: -512px -1088px } #Achievement_350 { background-position: -576px -1088px } #Achievement_351 { background-position: -640px -1088px } #Achievement_352 { background-position: -704px -1088px } #Achievement_353 { background-position: -768px -1088px } #Achievement_354 { background-position: -832px -1088px } #Achievement_355 { background-position: -896px -1088px } #Achievement_356 { background-position: -960px -1088px } #Achievement_357 { background-position: -1024px -1088px } #Achievement_358 { background-position: -1088px -1088px } #Achievement_359 { background-position: -1152px -1088px } #Achievement_360 { background-position: -1216px -1088px } #Achievement_361 { background-position: -0px -1152px } #Achievement_362 { background-position: -64px -1152px } #Achievement_363 { background-position: -128px -1152px } #Achievement_364 { background-position: -192px -1152px } #Achievement_365 { background-position: -256px -1152px } #Achievement_366 { background-position: -320px -1152px } #Achievement_367 { background-position: -384px -1152px } #Achievement_368 { background-position: -448px -1152px } #Achievement_369 { background-position: -512px -1152px } #Achievement_370 { background-position: -576px -1152px } #Achievement_371 { background-position: -640px -1152px } #Achievement_372 { background-position: -704px -1152px } #Achievement_373 { background-position: -768px -1152px } #Achievement_374 { background-position: -832px -1152px } #Achievement_375 { background-position: -896px -1152px } #Achievement_376 { background-position: -960px -1152px } #Achievement_377 { background-position: -1024px -1152px } #Achievement_378 { background-position: -1088px -1152px } #Achievement_379 { background-position: -1152px -1152px } #Achievement_380 { background-position: -1216px -1152px } #Achievement_381 { background-position: -0px -1216px } #Achievement_382 { background-position: -64px -1216px } #Achievement_383 { background-position: -128px -1216px } #Achievement_384 { background-position: -192px -1216px } #Achievement_385 { background-position: -256px -1216px } #Achievement_386 { background-position: -320px -1216px } #Achievement_387 { background-position: -384px -1216px } #Achievement_388 { background-position: -448px -1216px } #Achievement_389 { background-position: -512px -1216px } #Achievement_390 { background-position: -576px -1216px } #Achievement_391 { background-position: -640px -1216px } #Achievement_392 { background-position: -704px -1216px } #Achievement_393 { background-position: -768px -1216px } #Achievement_394 { background-position: -832px -1216px } #Achievement_395 { background-position: -896px -1216px } #Achievement_396 { background-position: -960px -1216px } #Achievement_397 { background-position: -1024px -1216px } #Achievement_398 { background-position: -1088px -1216px } #Achievement_399 { background-position: -1152px -1216px } #Achievement_400 { background-position: -1216px -1216px } #Achievement_401 { background-position: -0px -1280px } #Achievement_402 { background-position: -64px -1280px } #Achievement_403 { background-position: -128px -1280px } #Achievement_404 { background-position: -192px -1280px } #Achievement_405 { background-position: -256px -1280px } #Achievement_406 { background-position: -320px -1280px } #Achievement_407 { background-position: -384px -1280px } #Achievement_408 { background-position: -448px -1280px } #Achievement_409 { background-position: -512px -1280px } #Achievement_410 { background-position: -576px -1280px } #Achievement_411 { background-position: -640px -1280px } #Achievement_412 { background-position: -704px -1280px } #Achievement_413 { background-position: -768px -1280px } #Achievement_414 { background-position: -832px -1280px } #Achievement_415 { background-position: -896px -1280px } #Achievement_416 { background-position: -960px -1280px } #Achievement_417 { background-position: -1024px -1280px } #Achievement_418 { background-position: -1088px -1280px } #Achievement_419 { background-position: -1152px -1280px } #Achievement_420 { background-position: -1216px -1280px } #Achievement_421 { background-position: -0px -1344px } #Achievement_422 { background-position: -64px -1344px } #Achievement_423 { background-position: -128px -1344px } #Achievement_424 { background-position: -192px -1344px } #Achievement_425 { background-position: -256px -1344px } #Achievement_426 { background-position: -320px -1344px } #Achievement_427 { background-position: -384px -1344px } #Achievement_428 { background-position: -448px -1344px } #Achievement_429 { background-position: -512px -1344px } #Achievement_430 { background-position: -576px -1344px } #Achievement_431 { background-position: -640px -1344px } #Achievement_432 { background-position: -704px -1344px } #Achievement_433 { background-position: -768px -1344px } #Achievement_434 { background-position: -832px -1344px } #Achievement_435 { background-position: -896px -1344px } #Achievement_436 { background-position: -960px -1344px } #Achievement_437 { background-position: -1024px -1344px } #Achievement_438 { background-position: -1088px -1344px } #Achievement_439 { background-position: -1152px -1344px } #Achievement_440 { background-position: -1216px -1344px } #Achievement_441 { background-position: -0px -1408px } #Achievement_442 { background-position: -64px -1408px } #Achievement_443 { background-position: -128px -1408px } #Achievement_444 { background-position: -192px -1408px } #Achievement_445 { background-position: -256px -1408px } #Achievement_446 { background-position: -320px -1408px } #Achievement_447 { background-position: -384px -1408px } #Achievement_448 { background-position: -448px -1408px } #Achievement_449 { background-position: -512px -1408px } #Achievement_450 { background-position: -576px -1408px } #Achievement_451 { background-position: -640px -1408px } #Achievement_452 { background-position: -704px -1408px } #Achievement_453 { background-position: -768px -1408px } #Achievement_454 { background-position: -832px -1408px } #Achievement_455 { background-position: -896px -1408px } #Achievement_456 { background-position: -960px -1408px } #Achievement_457 { background-position: -1024px -1408px } #Achievement_458 { background-position: -1088px -1408px } #Achievement_459 { background-position: -1152px -1408px } #Achievement_460 { background-position: -1216px -1408px } #Achievement_461 { background-position: -0px -1472px } #Achievement_462 { background-position: -64px -1472px } #Achievement_463 { background-position: -128px -1472px } #Achievement_464 { background-position: -192px -1472px } #Achievement_465 { background-position: -256px -1472px } #Achievement_466 { background-position: -320px -1472px } #Achievement_467 { background-position: -384px -1472px } #Achievement_468 { background-position: -448px -1472px } #Achievement_469 { background-position: -512px -1472px } #Achievement_470 { background-position: -576px -1472px } #Achievement_471 { background-position: -640px -1472px } #Achievement_472 { background-position: -704px -1472px } #Achievement_473 { background-position: -768px -1472px } #Achievement_474 { background-position: -832px -1472px } #Achievement_475 { background-position: -896px -1472px } #Achievement_476 { background-position: -960px -1472px } #Achievement_477 { background-position: -1024px -1472px } #Achievement_478 { background-position: -1088px -1472px } #Achievement_479 { background-position: -1152px -1472px } #Achievement_480 { background-position: -1216px -1472px } #Achievement_481 { background-position: -0px -1536px } #Achievement_482 { background-position: -64px -1536px } #Achievement_483 { background-position: -128px -1536px } #Achievement_484 { background-position: -192px -1536px } #Achievement_485 { background-position: -256px -1536px } #Achievement_486 { background-position: -320px -1536px } #Achievement_487 { background-position: -384px -1536px } #Achievement_488 { background-position: -448px -1536px } #Achievement_489 { background-position: -512px -1536px } #Achievement_490 { background-position: -576px -1536px } #Achievement_491 { background-position: -640px -1536px } #Achievement_492 { background-position: -704px -1536px } #Achievement_493 { background-position: -768px -1536px } #Achievement_494 { background-position: -832px -1536px } #Achievement_495 { background-position: -896px -1536px } #Achievement_496 { background-position: -960px -1536px } #Achievement_497 { background-position: -1024px -1536px } #Achievement_498 { background-position: -1088px -1536px } #Achievement_499 { background-position: -1152px -1536px } #Achievement_500 { background-position: -1216px -1536px } #Achievement_501 { background-position: -0px -1600px } #Achievement_502 { background-position: -64px -1600px } #Achievement_503 { background-position: -128px -1600px } #Achievement_504 { background-position: -192px -1600px } #Achievement_505 { background-position: -256px -1600px } #Achievement_506 { background-position: -320px -1600px } #Achievement_507 { background-position: -384px -1600px } #Achievement_508 { background-position: -448px -1600px } #Achievement_509 { background-position: -512px -1600px } #Achievement_510 { background-position: -576px -1600px } #Achievement_511 { background-position: -640px -1600px } #Achievement_512 { background-position: -704px -1600px } #Achievement_513 { background-position: -768px -1600px } #Achievement_514 { background-position: -832px -1600px } #Achievement_515 { background-position: -896px -1600px } #Achievement_516 { background-position: -960px -1600px } #Achievement_517 { background-position: -1024px -1600px } #Achievement_518 { background-position: -1088px -1600px } #Achievement_519 { background-position: -1152px -1600px } #Achievement_520 { background-position: -1216px -1600px } #Achievement_521 { background-position: -0px -1664px } #Achievement_522 { background-position: -64px -1664px } #Achievement_523 { background-position: -128px -1664px } #Achievement_524 { background-position: -192px -1664px } #Achievement_525 { background-position: -256px -1664px } #Achievement_526 { background-position: -320px -1664px } #Achievement_527 { background-position: -384px -1664px } #Achievement_528 { background-position: -448px -1664px } #Achievement_529 { background-position: -512px -1664px } #Achievement_530 { background-position: -576px -1664px } #Achievement_531 { background-position: -640px -1664px } #Achievement_532 { background-position: -704px -1664px } #Achievement_533 { background-position: -768px -1664px } #Achievement_534 { background-position: -832px -1664px } #Achievement_535 { background-position: -896px -1664px } #Achievement_536 { background-position: -960px -1664px } #Achievement_537 { background-position: -1024px -1664px } #Achievement_538 { background-position: -1088px -1664px } #Achievement_539 { background-position: -1152px -1664px } #Achievement_540 { background-position: -1216px -1664px } #Achievement_541 { background-position: -0px -1728px } #Achievement_542 { background-position: -64px -1728px } #Achievement_543 { background-position: -128px -1728px } #Achievement_544 { background-position: -192px -1728px } #Achievement_545 { background-position: -256px -1728px } #Achievement_546 { background-position: -320px -1728px } #Achievement_547 { background-position: -384px -1728px } #Achievement_548 { background-position: -448px -1728px } #Achievement_549 { background-position: -512px -1728px } #Achievement_550 { background-position: -576px -1728px } #Achievement_551 { background-position: -640px -1728px } #Achievement_552 { background-position: -704px -1728px } #Achievement_553 { background-position: -768px -1728px } #Achievement_554 { background-position: -832px -1728px } #Achievement_555 { background-position: -896px -1728px } #Achievement_556 { background-position: -960px -1728px } #Achievement_557 { background-position: -1024px -1728px } #Achievement_558 { background-position: -1088px -1728px } #Achievement_559 { background-position: -1152px -1728px } #Achievement_560 { background-position: -1216px -1728px } #Achievement_561 { background-position: -0px -1792px } #Achievement_562 { background-position: -64px -1792px } #Achievement_563 { background-position: -128px -1792px } #Achievement_564 { background-position: -192px -1792px } #Achievement_565 { background-position: -256px -1792px } #Achievement_566 { background-position: -320px -1792px } #Achievement_567 { background-position: -384px -1792px } #Achievement_568 { background-position: -448px -1792px } #Achievement_569 { background-position: -512px -1792px } #Achievement_570 { background-position: -576px -1792px } #Achievement_571 { background-position: -640px -1792px } #Achievement_572 { background-position: -704px -1792px } #Achievement_573 { background-position: -768px -1792px } #Achievement_574 { background-position: -832px -1792px } #Achievement_575 { background-position: -896px -1792px } #Achievement_576 { background-position: -960px -1792px } #Achievement_577 { background-position: -1024px -1792px } #Achievement_578 { background-position: -1088px -1792px } #Achievement_579 { background-position: -1152px -1792px } #Achievement_580 { background-position: -1216px -1792px } #Achievement_581 { background-position: -0px -1856px } #Achievement_582 { background-position: -64px -1856px } #Achievement_583 { background-position: -128px -1856px } #Achievement_584 { background-position: -192px -1856px } #Achievement_585 { background-position: -256px -1856px } #Achievement_586 { background-position: -320px -1856px } #Achievement_587 { background-position: -384px -1856px } #Achievement_588 { background-position: -448px -1856px } #Achievement_589 { background-position: -512px -1856px } #Achievement_590 { background-position: -576px -1856px } #Achievement_591 { background-position: -640px -1856px } #Achievement_592 { background-position: -704px -1856px } #Achievement_593 { background-position: -768px -1856px } #Achievement_594 { background-position: -832px -1856px } #Achievement_595 { background-position: -896px -1856px } #Achievement_596 { background-position: -960px -1856px } #Achievement_597 { background-position: -1024px -1856px } #Achievement_598 { background-position: -1088px -1856px } #Achievement_599 { background-position: -1152px -1856px } #Achievement_600 { background-position: -1216px -1856px } #Achievement_601 { background-position: -0px -1920px } #Achievement_602 { background-position: -64px -1920px } #Achievement_603 { background-position: -128px -1920px } #Achievement_604 { background-position: -192px -1920px } #Achievement_605 { background-position: -256px -1920px } #Achievement_606 { background-position: -320px -1920px } #Achievement_607 { background-position: -384px -1920px } #Achievement_608 { background-position: -448px -1920px } #Achievement_609 { background-position: -512px -1920px } #Achievement_610 { background-position: -576px -1920px } #Achievement_611 { background-position: -640px -1920px } #Achievement_612 { background-position: -704px -1920px } #Achievement_613 { background-position: -768px -1920px } #Achievement_614 { background-position: -832px -1920px } #Achievement_615 { background-position: -896px -1920px } #Achievement_616 { background-position: -960px -1920px } #Achievement_617 { background-position: -1024px -1920px } #Achievement_618 { background-position: -1088px -1920px } #Achievement_619 { background-position: -1152px -1920px } #Achievement_620 { background-position: -1216px -1920px } #Achievement_621 { background-position: -0px -1984px } #Achievement_622 { background-position: -64px -1984px } #Achievement_623 { background-position: -128px -1984px } #Achievement_624 { background-position: -192px -1984px } #Achievement_625 { background-position: -256px -1984px } #Achievement_626 { background-position: -320px -1984px } #Achievement_627 { background-position: -384px -1984px } #Achievement_628 { background-position: -448px -1984px } #Achievement_629 { background-position: -512px -1984px } #Achievement_630 { background-position: -576px -1984px } #Achievement_631 { background-position: -640px -1984px } #Achievement_632 { background-position: -704px -1984px } #Achievement_633 { background-position: -768px -1984px } #Achievement_634 { background-position: -832px -1984px } #Achievement_635 { background-position: -896px -1984px } #Achievement_636 { background-position: -960px -1984px } #Achievement_637 { background-position: -1024px -1984px } #trinket_001 { background-position: -0px -0px } #trinket_002 { background-position: -32px -0px } #trinket_003 { background-position: -64px -0px } #trinket_004 { background-position: -96px -0px } #trinket_005 { background-position: -128px -0px } #trinket_006 { background-position: -160px -0px } #trinket_007 { background-position: -192px -0px } #trinket_008 { background-position: -224px -0px } #trinket_009 { background-position: -256px -0px } #trinket_010 { background-position: -288px -0px } #trinket_011 { background-position: -320px -0px } #trinket_012 { background-position: -352px -0px } #trinket_013 { background-position: -384px -0px } #trinket_014 { background-position: -416px -0px } #trinket_015 { background-position: -448px -0px } #trinket_016 { background-position: -480px -0px } #trinket_017 { background-position: -512px -0px } #trinket_018 { background-position: -544px -0px } #trinket_019 { background-position: -576px -0px } #trinket_020 { background-position: -608px -0px } #trinket_021 { background-position: -0px -32px } #trinket_022 { background-position: -32px -32px } #trinket_023 { background-position: -64px -32px } #trinket_024 { background-position: -96px -32px } #trinket_025 { background-position: -128px -32px } #trinket_026 { background-position: -160px -32px } #trinket_027 { background-position: -192px -32px } #trinket_028 { background-position: -224px -32px } #trinket_029 { background-position: -256px -32px } #trinket_030 { background-position: -288px -32px } #trinket_031 { background-position: -320px -32px } #trinket_032 { background-position: -352px -32px } #trinket_033 { background-position: -384px -32px } #trinket_034 { background-position: -416px -32px } #trinket_035 { background-position: -448px -32px } #trinket_036 { background-position: -480px -32px } #trinket_037 { background-position: -512px -32px } #trinket_038 { background-position: -544px -32px } #trinket_039 { background-position: -576px -32px } #trinket_040 { background-position: -608px -32px } #trinket_041 { background-position: -0px -64px } #trinket_042 { background-position: -32px -64px } #trinket_043 { background-position: -64px -64px } #trinket_044 { background-position: -96px -64px } #trinket_045 { background-position: -128px -64px } #trinket_046 { background-position: -160px -64px } #trinket_047 { background-position: -192px -64px } #trinket_048 { background-position: -224px -64px } #trinket_049 { background-position: -256px -64px } #trinket_050 { background-position: -288px -64px } #trinket_051 { background-position: -320px -64px } #trinket_052 { background-position: -352px -64px } #trinket_053 { background-position: -384px -64px } #trinket_054 { background-position: -416px -64px } #trinket_055 { background-position: -448px -64px } #trinket_056 { background-position: -480px -64px } #trinket_057 { background-position: -512px -64px } #trinket_058 { background-position: -544px -64px } #trinket_059 { background-position: -576px -64px } #trinket_060 { background-position: -608px -64px } #trinket_061 { background-position: -0px -96px } #trinket_062 { background-position: -32px -96px } #trinket_063 { background-position: -64px -96px } #trinket_064 { background-position: -96px -96px } #trinket_065 { background-position: -128px -96px } #trinket_066 { background-position: -160px -96px } #trinket_067 { background-position: -192px -96px } #trinket_068 { background-position: -224px -96px } #trinket_069 { background-position: -256px -96px } #trinket_070 { background-position: -288px -96px } #trinket_071 { background-position: -320px -96px } #trinket_072 { background-position: -352px -96px } #trinket_073 { background-position: -384px -96px } #trinket_074 { background-position: -416px -96px } #trinket_075 { background-position: -448px -96px } #trinket_076 { background-position: -480px -96px } #trinket_077 { background-position: -512px -96px } #trinket_078 { background-position: -544px -96px } #trinket_079 { background-position: -576px -96px } #trinket_080 { background-position: -608px -96px } #trinket_081 { background-position: -0px -128px } #trinket_082 { background-position: -32px -128px } #trinket_083 { background-position: -64px -128px } #trinket_084 { background-position: -96px -128px } #trinket_085 { background-position: -128px -128px } #trinket_086 { background-position: -160px -128px } #trinket_087 { background-position: -192px -128px } #trinket_088 { background-position: -224px -128px } #trinket_089 { background-position: -256px -128px } #trinket_090 { background-position: -288px -128px } #trinket_091 { background-position: -320px -128px } #trinket_092 { background-position: -352px -128px } #trinket_093 { background-position: -384px -128px } #trinket_094 { background-position: -416px -128px } #trinket_095 { background-position: -448px -128px } #trinket_096 { background-position: -480px -128px } #trinket_097 { background-position: -512px -128px } #trinket_098 { background-position: -544px -128px } #trinket_099 { background-position: -576px -128px } #trinket_100 { background-position: -608px -128px } #trinket_101 { background-position: -0px -160px } #trinket_102 { background-position: -32px -160px } #trinket_103 { background-position: -64px -160px } #trinket_104 { background-position: -96px -160px } #trinket_105 { background-position: -128px -160px } #trinket_106 { background-position: -160px -160px } #trinket_107 { background-position: -192px -160px } #trinket_108 { background-position: -224px -160px } #trinket_109 { background-position: -256px -160px } #trinket_110 { background-position: -288px -160px } #trinket_111 { background-position: -320px -160px } #trinket_112 { background-position: -352px -160px } #trinket_113 { background-position: -384px -160px } #trinket_114 { background-position: -416px -160px } #trinket_115 { background-position: -448px -160px } #trinket_116 { background-position: -480px -160px } #trinket_117 { background-position: -512px -160px } #trinket_118 { background-position: -544px -160px } #trinket_119 { background-position: -576px -160px } #trinket_120 { background-position: -608px -160px } #trinket_121 { background-position: -0px -192px } #trinket_122 { background-position: -32px -192px } #trinket_123 { background-position: -64px -192px } #trinket_124 { background-position: -96px -192px } #trinket_125 { background-position: -128px -192px } #trinket_126 { background-position: -160px -192px } #trinket_127 { background-position: -192px -192px } #trinket_128 { background-position: -224px -192px } #trinket_129 { background-position: -256px -192px } #trinket_130 { background-position: -288px -192px } #trinket_131 { background-position: -320px -192px } #trinket_132 { background-position: -352px -192px } #trinket_133 { background-position: -384px -192px } #trinket_134 { background-position: -416px -192px } #trinket_135 { background-position: -448px -192px } #trinket_136 { background-position: -480px -192px } #trinket_137 { background-position: -512px -192px } #trinket_138 { background-position: -544px -192px } #trinket_139 { background-position: -576px -192px } #trinket_140 { background-position: -608px -192px } #trinket_141 { background-position: -0px -224px } #trinket_142 { background-position: -32px -224px } #trinket_143 { background-position: -64px -224px } #trinket_144 { background-position: -96px -224px } #trinket_145 { background-position: -128px -224px } #trinket_146 { background-position: -160px -224px } #trinket_147 { background-position: -192px -224px } #trinket_148 { background-position: -224px -224px } #trinket_149 { background-position: -256px -224px } #trinket_150 { background-position: -288px -224px } #trinket_151 { background-position: -320px -224px } #trinket_152 { background-position: -352px -224px } #trinket_153 { background-position: -384px -224px } #trinket_154 { background-position: -416px -224px } #trinket_155 { background-position: -448px -224px } #trinket_156 { background-position: -480px -224px } #trinket_157 { background-position: -512px -224px } #trinket_158 { background-position: -544px -224px } #trinket_159 { background-position: -576px -224px } #trinket_160 { background-position: -608px -224px } #trinket_161 { background-position: -0px -256px } #trinket_162 { background-position: -32px -256px } #trinket_163 { background-position: -64px -256px } #trinket_164 { background-position: -96px -256px } #trinket_165 { background-position: -128px -256px } #trinket_166 { background-position: -160px -256px } #trinket_167 { background-position: -192px -256px } #trinket_168 { background-position: -224px -256px } #trinket_169 { background-position: -256px -256px } #trinket_170 { background-position: -288px -256px } #trinket_171 { background-position: -320px -256px } #trinket_172 { background-position: -352px -256px } #trinket_173 { background-position: -384px -256px } #trinket_174 { background-position: -416px -256px } #trinket_175 { background-position: -448px -256px } #trinket_176 { background-position: -480px -256px } #trinket_177 { background-position: -512px -256px } #trinket_178 { background-position: -544px -256px } #trinket_179 { background-position: -576px -256px } #trinket_180 { background-position: -608px -256px } #trinket_181 { background-position: -0px -288px } #trinket_182 { background-position: -32px -288px } #trinket_183 { background-position: -64px -288px } #trinket_184 { background-position: -96px -288px } #trinket_185 { background-position: -128px -288px } #trinket_186 { background-position: -160px -288px } #trinket_187 { background-position: -192px -288px } #trinket_188 { background-position: -224px -288px } #trinket_189 { background-position: -256px -288px } #collectibles_001 { background-position: -32px -0px } #collectibles_002 { background-position: -64px -0px } #collectibles_003 { background-position: -96px -0px } #collectibles_004 { background-position: -128px -0px } #collectibles_005 { background-position: -160px -0px } #collectibles_006 { background-position: -192px -0px } #collectibles_007 { background-position: -224px -0px } #collectibles_008 { background-position: -256px -0px } #collectibles_009 { background-position: -288px -0px } #collectibles_010 { background-position: -320px -0px } #collectibles_011 { background-position: -352px -0px } #collectibles_012 { background-position: -384px -0px } #collectibles_013 { background-position: -416px -0px } #collectibles_014 { background-position: -448px -0px } #collectibles_015 { background-position: -480px -0px } #collectibles_016 { background-position: -512px -0px } #collectibles_017 { background-position: -544px -0px } #collectibles_018 { background-position: -576px -0px } #collectibles_019 { background-position: -608px -0px } #collectibles_020 { background-position: -0px -32px } #collectibles_021 { background-position: -32px -32px } #collectibles_022 { background-position: -64px -32px } #collectibles_023 { background-position: -96px -32px } #collectibles_024 { background-position: -128px -32px } #collectibles_025 { background-position: -160px -32px } #collectibles_026 { background-position: -192px -32px } #collectibles_027 { background-position: -224px -32px } #collectibles_028 { background-position: -256px -32px } #collectibles_029 { background-position: -288px -32px } #collectibles_030 { background-position: -320px -32px } #collectibles_031 { background-position: -352px -32px } #collectibles_032 { background-position: -384px -32px } #collectibles_033 { background-position: -416px -32px } #collectibles_034 { background-position: -448px -32px } #collectibles_035 { background-position: -480px -32px } #collectibles_036 { background-position: -512px -32px } #collectibles_037 { background-position: -544px -32px } #collectibles_038 { background-position: -576px -32px } #collectibles_039 { background-position: -608px -32px } #collectibles_040 { background-position: -0px -64px } #collectibles_041 { background-position: -32px -64px } #collectibles_042 { background-position: -64px -64px } #collectibles_044 { background-position: -96px -64px } #collectibles_045 { background-position: -128px -64px } #collectibles_046 { background-position: -160px -64px } #collectibles_047 { background-position: -192px -64px } #collectibles_048 { background-position: -224px -64px } #collectibles_049 { background-position: -256px -64px } #collectibles_050 { background-position: -288px -64px } #collectibles_051 { background-position: -320px -64px } #collectibles_052 { background-position: -352px -64px } #collectibles_053 { background-position: -384px -64px } #collectibles_054 { background-position: -416px -64px } #collectibles_055 { background-position: -448px -64px } #collectibles_056 { background-position: -480px -64px } #collectibles_057 { background-position: -512px -64px } #collectibles_058 { background-position: -544px -64px } #collectibles_059 { background-position: -576px -64px } #collectibles_060 { background-position: -608px -64px } #collectibles_062 { background-position: -0px -96px } #collectibles_063 { background-position: -32px -96px } #collectibles_064 { background-position: -64px -96px } #collectibles_065 { background-position: -96px -96px } #collectibles_066 { background-position: -128px -96px } #collectibles_067 { background-position: -160px -96px } #collectibles_068 { background-position: -192px -96px } #collectibles_069 { background-position: -224px -96px } #collectibles_070 { background-position: -256px -96px } #collectibles_071 { background-position: -288px -96px } #collectibles_072 { background-position: -320px -96px } #collectibles_073 { background-position: -352px -96px } #collectibles_074 { background-position: -384px -96px } #collectibles_075 { background-position: -416px -96px } #collectibles_076 { background-position: -448px -96px } #collectibles_077 { background-position: -480px -96px } #collectibles_078 { background-position: -512px -96px } #collectibles_079 { background-position: -544px -96px } #collectibles_080 { background-position: -576px -96px } #collectibles_081 { background-position: -608px -96px } #collectibles_082 { background-position: -0px -128px } #collectibles_083 { background-position: -32px -128px } #collectibles_084 { background-position: -64px -128px } #collectibles_085 { background-position: -96px -128px } #collectibles_086 { background-position: -128px -128px } #collectibles_087 { background-position: -160px -128px } #collectibles_088 { background-position: -192px -128px } #collectibles_089 { background-position: -224px -128px } #collectibles_090 { background-position: -256px -128px } #collectibles_091 { background-position: -288px -128px } #collectibles_092 { background-position: -320px -128px } #collectibles_093 { background-position: -352px -128px } #collectibles_094 { background-position: -384px -128px } #collectibles_095 { background-position: -416px -128px } #collectibles_096 { background-position: -448px -128px } #collectibles_097 { background-position: -480px -128px } #collectibles_098 { background-position: -512px -128px } #collectibles_099 { background-position: -544px -128px } #collectibles_100 { background-position: -576px -128px } #collectibles_101 { background-position: -608px -128px } #collectibles_102 { background-position: -0px -160px } #collectibles_103 { background-position: -32px -160px } #collectibles_104 { background-position: -64px -160px } #collectibles_105 { background-position: -96px -160px } #collectibles_106 { background-position: -128px -160px } #collectibles_107 { background-position: -160px -160px } #collectibles_108 { background-position: -192px -160px } #collectibles_109 { background-position: -224px -160px } #collectibles_110 { background-position: -256px -160px } #collectibles_111 { background-position: -288px -160px } #collectibles_112 { background-position: -320px -160px } #collectibles_113 { background-position: -352px -160px } #collectibles_114 { background-position: -384px -160px } #collectibles_115 { background-position: -416px -160px } #collectibles_116 { background-position: -448px -160px } #collectibles_117 { background-position: -480px -160px } #collectibles_118 { background-position: -512px -160px } #collectibles_119 { background-position: -544px -160px } #collectibles_120 { background-position: -576px -160px } #collectibles_121 { background-position: -608px -160px } #collectibles_122 { background-position: -0px -192px } #collectibles_123 { background-position: -32px -192px } #collectibles_124 { background-position: -64px -192px } #collectibles_125 { background-position: -96px -192px } #collectibles_126 { background-position: -128px -192px } #collectibles_127 { background-position: -160px -192px } #collectibles_128 { background-position: -192px -192px } #collectibles_129 { background-position: -224px -192px } #collectibles_130 { background-position: -256px -192px } #collectibles_131 { background-position: -288px -192px } #collectibles_132 { background-position: -320px -192px } #collectibles_133 { background-position: -352px -192px } #collectibles_134 { background-position: -384px -192px } #collectibles_135 { background-position: -416px -192px } #collectibles_136 { background-position: -448px -192px } #collectibles_137 { background-position: -480px -192px } #collectibles_138 { background-position: -512px -192px } #collectibles_139 { background-position: -544px -192px } #collectibles_140 { background-position: -576px -192px } #collectibles_141 { background-position: -608px -192px } #collectibles_142 { background-position: -0px -224px } #collectibles_143 { background-position: -32px -224px } #collectibles_144 { background-position: -64px -224px } #collectibles_145 { background-position: -96px -224px } #collectibles_146 { background-position: -128px -224px } #collectibles_147 { background-position: -160px -224px } #collectibles_148 { background-position: -192px -224px } #collectibles_149 { background-position: -224px -224px } #collectibles_150 { background-position: -256px -224px } #collectibles_151 { background-position: -288px -224px } #collectibles_152 { background-position: -320px -224px } #collectibles_153 { background-position: -352px -224px } #collectibles_154 { background-position: -384px -224px } #collectibles_155 { background-position: -416px -224px } #collectibles_156 { background-position: -448px -224px } #collectibles_157 { background-position: -480px -224px } #collectibles_158 { background-position: -512px -224px } #collectibles_159 { background-position: -544px -224px } #collectibles_160 { background-position: -576px -224px } #collectibles_161 { background-position: -608px -224px } #collectibles_162 { background-position: -0px -256px } #collectibles_163 { background-position: -32px -256px } #collectibles_164 { background-position: -64px -256px } #collectibles_165 { background-position: -96px -256px } #collectibles_166 { background-position: -128px -256px } #collectibles_167 { background-position: -160px -256px } #collectibles_168 { background-position: -192px -256px } #collectibles_169 { background-position: -224px -256px } #collectibles_170 { background-position: -256px -256px } #collectibles_171 { background-position: -288px -256px } #collectibles_172 { background-position: -320px -256px } #collectibles_173 { background-position: -352px -256px } #collectibles_174 { background-position: -384px -256px } #collectibles_175 { background-position: -416px -256px } #collectibles_176 { background-position: -448px -256px } #collectibles_177 { background-position: -480px -256px } #collectibles_178 { background-position: -512px -256px } #collectibles_179 { background-position: -544px -256px } #collectibles_180 { background-position: -576px -256px } #collectibles_181 { background-position: -608px -256px } #collectibles_182 { background-position: -0px -288px; } #collectibles_183 { background-position: -32px -288px } #collectibles_184 { background-position: -64px -288px } #collectibles_185 { background-position: -96px -288px } #collectibles_186 { background-position: -128px -288px } #collectibles_187 { background-position: -160px -288px } #collectibles_188 { background-position: -192px -288px } #collectibles_189 { background-position: -224px -288px } #collectibles_190 { background-position: -256px -288px } #collectibles_191 { background-position: -288px -288px } #collectibles_192 { background-position: -320px -288px } #collectibles_193 { background-position: -352px -288px } #collectibles_194 { background-position: -384px -288px } #collectibles_195 { background-position: -416px -288px } #collectibles_196 { background-position: -448px -288px } #collectibles_197 { background-position: -480px -288px } #collectibles_198 { background-position: -512px -288px } #collectibles_199 { background-position: -544px -288px } #collectibles_200 { background-position: -576px -288px } #collectibles_201 { background-position: -608px -288px } #collectibles_202 { background-position: -0px -320px } #collectibles_203 { background-position: -32px -320px } #collectibles_204 { background-position: -64px -320px } #collectibles_205 { background-position: -96px -320px } #collectibles_206 { background-position: -128px -320px } #collectibles_207 { background-position: -160px -320px } #collectibles_208 { background-position: -192px -320px } #collectibles_209 { background-position: -224px -320px } #collectibles_210 { background-position: -256px -320px } #collectibles_211 { background-position: -288px -320px } #collectibles_212 { background-position: -320px -320px } #collectibles_213 { background-position: -352px -320px } #collectibles_214 { background-position: -384px -320px } #collectibles_215 { background-position: -416px -320px } #collectibles_216 { background-position: -448px -320px } #collectibles_217 { background-position: -480px -320px } #collectibles_218 { background-position: -512px -320px } #collectibles_219 { background-position: -544px -320px } #collectibles_220 { background-position: -576px -320px } #collectibles_221 { background-position: -608px -320px } #collectibles_222 { background-position: -0px -352px } #collectibles_223 { background-position: -32px -352px } #collectibles_224 { background-position: -64px -352px } #collectibles_225 { background-position: -96px -352px } #collectibles_226 { background-position: -128px -352px } #collectibles_227 { background-position: -160px -352px } #collectibles_228 { background-position: -192px -352px } #collectibles_229 { background-position: -224px -352px } #collectibles_230 { background-position: -256px -352px } #collectibles_231 { background-position: -288px -352px } #collectibles_232 { background-position: -320px -352px } #collectibles_233 { background-position: -352px -352px } #collectibles_234 { background-position: -384px -352px } #collectibles_236 { background-position: -416px -352px } #collectibles_237 { background-position: -448px -352px } #collectibles_238 { background-position: -480px -352px } #collectibles_239 { background-position: -512px -352px } #collectibles_240 { background-position: -544px -352px } #collectibles_241 { background-position: -576px -352px } #collectibles_242 { background-position: -608px -352px } #collectibles_243 { background-position: -0px -384px } #collectibles_244 { background-position: -32px -384px } #collectibles_245 { background-position: -64px -384px } #collectibles_246 { background-position: -96px -384px } #collectibles_247 { background-position: -128px -384px } #collectibles_248 { background-position: -160px -384px } #collectibles_249 { background-position: -192px -384px } #collectibles_250 { background-position: -224px -384px } #collectibles_251 { background-position: -256px -384px } #collectibles_252 { background-position: -288px -384px } #collectibles_253 { background-position: -320px -384px } #collectibles_254 { background-position: -352px -384px } #collectibles_255 { background-position: -384px -384px } #collectibles_256 { background-position: -416px -384px } #collectibles_257 { background-position: -448px -384px } #collectibles_258 { background-position: -480px -384px } #collectibles_259 { background-position: -512px -384px } #collectibles_260 { background-position: -544px -384px } #collectibles_261 { background-position: -576px -384px } #collectibles_262 { background-position: -608px -384px } #collectibles_263 { background-position: -0px -416px } #collectibles_264 { background-position: -32px -416px } #collectibles_265 { background-position: -64px -416px } #collectibles_266 { background-position: -96px -416px } #collectibles_267 { background-position: -128px -416px } #collectibles_268 { background-position: -160px -416px } #collectibles_269 { background-position: -192px -416px } #collectibles_270 { background-position: -224px -416px } #collectibles_271 { background-position: -256px -416px } #collectibles_272 { background-position: -288px -416px } #collectibles_273 { background-position: -320px -416px } #collectibles_274 { background-position: -352px -416px } #collectibles_275 { background-position: -384px -416px } #collectibles_276 { background-position: -416px -416px } #collectibles_277 { background-position: -448px -416px } #collectibles_278 { background-position: -480px -416px } #collectibles_279 { background-position: -512px -416px } #collectibles_280 { background-position: -544px -416px } #collectibles_281 { background-position: -576px -416px } #collectibles_282 { background-position: -608px -416px } #collectibles_283 { background-position: -0px -448px } #collectibles_284 { background-position: -32px -448px } #collectibles_285 { background-position: -64px -448px } #collectibles_286 { background-position: -96px -448px } #collectibles_287 { background-position: -128px -448px } #collectibles_288 { background-position: -160px -448px } #collectibles_289 { background-position: -192px -448px } #collectibles_290 { background-position: -224px -448px } #collectibles_291 { background-position: -256px -448px } #collectibles_292 { background-position: -288px -448px } #collectibles_293 { background-position: -320px -448px } #collectibles_294 { background-position: -352px -448px } #collectibles_295 { background-position: -384px -448px } #collectibles_296 { background-position: -416px -448px } #collectibles_297 { background-position: -448px -448px } #collectibles_298 { background-position: -480px -448px } #collectibles_299 { background-position: -512px -448px } #collectibles_300 { background-position: -544px -448px } #collectibles_301 { background-position: -576px -448px } #collectibles_302 { background-position: -608px -448px } #collectibles_303 { background-position: -0px -480px } #collectibles_304 { background-position: -32px -480px } #collectibles_305 { background-position: -64px -480px } #collectibles_306 { background-position: -96px -480px } #collectibles_307 { background-position: -128px -480px } #collectibles_308 { background-position: -160px -480px } #collectibles_309 { background-position: -192px -480px } #collectibles_310 { background-position: -224px -480px } #collectibles_311 { background-position: -256px -480px } #collectibles_312 { background-position: -288px -480px } #collectibles_313 { background-position: -320px -480px } #collectibles_314 { background-position: -352px -480px } #collectibles_315 { background-position: -384px -480px } #collectibles_316 { background-position: -416px -480px } #collectibles_317 { background-position: -448px -480px } #collectibles_318 { background-position: -480px -480px } #collectibles_319 { background-position: -512px -480px } #collectibles_320 { background-position: -544px -480px } #collectibles_321 { background-position: -576px -480px } #collectibles_322 { background-position: -608px -480px } #collectibles_323 { background-position: -0px -512px } #collectibles_324 { background-position: -32px -512px } #collectibles_325 { background-position: -64px -512px } #collectibles_326 { background-position: -96px -512px } #collectibles_327 { background-position: -128px -512px } #collectibles_328 { background-position: -160px -512px } #collectibles_329 { background-position: -192px -512px } #collectibles_330 { background-position: -224px -512px } #collectibles_331 { background-position: -256px -512px } #collectibles_332 { background-position: -288px -512px } #collectibles_333 { background-position: -320px -512px } #collectibles_334 { background-position: -352px -512px } #collectibles_335 { background-position: -384px -512px } #collectibles_336 { background-position: -416px -512px } #collectibles_337 { background-position: -448px -512px } #collectibles_338 { background-position: -480px -512px } #collectibles_339 { background-position: -512px -512px } #collectibles_340 { background-position: -544px -512px } #collectibles_341 { background-position: -576px -512px } #collectibles_342 { background-position: -608px -512px } #collectibles_343 { background-position: -0px -544px } #collectibles_344 { background-position: -32px -544px } #collectibles_345 { background-position: -64px -544px } #collectibles_346 { background-position: -96px -544px } #collectibles_347 { background-position: -128px -544px } #collectibles_348 { background-position: -160px -544px } #collectibles_349 { background-position: -192px -544px } #collectibles_350 { background-position: -224px -544px } #collectibles_351 { background-position: -256px -544px } #collectibles_352 { background-position: -288px -544px } #collectibles_353 { background-position: -320px -544px } #collectibles_354 { background-position: -352px -544px } #collectibles_355 { background-position: -384px -544px } #collectibles_356 { background-position: -416px -544px } #collectibles_357 { background-position: -448px -544px } #collectibles_358 { background-position: -480px -544px } #collectibles_359 { background-position: -512px -544px } #collectibles_360 { background-position: -544px -544px } #collectibles_361 { background-position: -576px -544px } #collectibles_362 { background-position: -608px -544px } #collectibles_363 { background-position: -0px -576px } #collectibles_364 { background-position: -32px -576px } #collectibles_365 { background-position: -64px -576px } #collectibles_366 { background-position: -96px -576px } #collectibles_367 { background-position: -128px -576px } #collectibles_368 { background-position: -160px -576px } #collectibles_369 { background-position: -192px -576px } #collectibles_370 { background-position: -224px -576px } #collectibles_371 { background-position: -256px -576px } #collectibles_372 { background-position: -288px -576px } #collectibles_373 { background-position: -320px -576px } #collectibles_374 { background-position: -352px -576px } #collectibles_375 { background-position: -384px -576px } #collectibles_376 { background-position: -416px -576px } #collectibles_377 { background-position: -448px -576px } #collectibles_378 { background-position: -480px -576px } #collectibles_379 { background-position: -512px -576px } #collectibles_380 { background-position: -544px -576px } #collectibles_381 { background-position: -576px -576px } #collectibles_382 { background-position: -608px -576px } #collectibles_383 { background-position: -0px -608px } #collectibles_384 { background-position: -32px -608px } #collectibles_385 { background-position: -64px -608px } #collectibles_386 { background-position: -96px -608px } #collectibles_387 { background-position: -128px -608px } #collectibles_388 { background-position: -160px -608px } #collectibles_389 { background-position: -192px -608px } #collectibles_390 { background-position: -224px -608px } #collectibles_391 { background-position: -256px -608px } #collectibles_392 { background-position: -288px -608px } #collectibles_393 { background-position: -320px -608px } #collectibles_394 { background-position: -352px -608px } #collectibles_395 { background-position: -384px -608px } #collectibles_396 { background-position: -416px -608px } #collectibles_397 { background-position: -448px -608px } #collectibles_398 { background-position: -480px -608px } #collectibles_399 { background-position: -512px -608px } #collectibles_400 { background-position: -544px -608px } #collectibles_401 { background-position: -576px -608px } #collectibles_402 { background-position: -608px -608px } #collectibles_403 { background-position: -0px -640px } #collectibles_404 { background-position: -32px -640px } #collectibles_405 { background-position: -64px -640px } #collectibles_406 { background-position: -96px -640px } #collectibles_407 { background-position: -128px -640px } #collectibles_408 { background-position: -160px -640px } #collectibles_409 { background-position: -192px -640px } #collectibles_410 { background-position: -224px -640px } #collectibles_411 { background-position: -256px -640px } #collectibles_412 { background-position: -288px -640px } #collectibles_413 { background-position: -320px -640px } #collectibles_414 { background-position: -352px -640px } #collectibles_415 { background-position: -384px -640px } #collectibles_416 { background-position: -416px -640px } #collectibles_417 { background-position: -448px -640px } #collectibles_418 { background-position: -480px -640px } #collectibles_419 { background-position: -512px -640px } #collectibles_420 { background-position: -544px -640px } #collectibles_421 { background-position: -576px -640px } #collectibles_422 { background-position: -608px -640px } #collectibles_423 { background-position: -0px -672px } #collectibles_424 { background-position: -32px -672px } #collectibles_425 { background-position: -64px -672px } #collectibles_426 { background-position: -96px -672px } #collectibles_427 { background-position: -128px -672px } #collectibles_428 { background-position: -160px -672px } #collectibles_429 { background-position: -192px -672px } #collectibles_430 { background-position: -224px -672px } #collectibles_431 { background-position: -256px -672px } #collectibles_432 { background-position: -288px -672px } #collectibles_433 { background-position: -320px -672px } #collectibles_434 { background-position: -352px -672px } #collectibles_435 { background-position: -384px -672px } #collectibles_436 { background-position: -416px -672px } #collectibles_437 { background-position: -448px -672px } #collectibles_438 { background-position: -480px -672px } #collectibles_439 { background-position: -512px -672px } #collectibles_440 { background-position: -544px -672px } #collectibles_441 { background-position: -576px -672px } #collectibles_442 { background-position: -608px -672px } #collectibles_443 { background-position: -0px -704px } #collectibles_444 { background-position: -32px -704px } #collectibles_445 { background-position: -64px -704px } #collectibles_446 { background-position: -96px -704px } #collectibles_447 { background-position: -128px -704px } #collectibles_448 { background-position: -160px -704px } #collectibles_449 { background-position: -192px -704px } #collectibles_450 { background-position: -224px -704px } #collectibles_451 { background-position: -256px -704px } #collectibles_452 { background-position: -288px -704px } #collectibles_453 { background-position: -320px -704px } #collectibles_454 { background-position: -352px -704px } #collectibles_455 { background-position: -384px -704px } #collectibles_456 { background-position: -416px -704px } #collectibles_457 { background-position: -448px -704px } #collectibles_458 { background-position: -480px -704px } #collectibles_459 { background-position: -512px -704px } #collectibles_460 { background-position: -544px -704px } #collectibles_461 { background-position: -576px -704px } #collectibles_462 { background-position: -608px -704px } #collectibles_463 { background-position: -0px -736px } #collectibles_464 { background-position: -32px -736px } #collectibles_465 { background-position: -64px -736px } #collectibles_466 { background-position: -96px -736px } #collectibles_467 { background-position: -128px -736px } #collectibles_468 { background-position: -160px -736px } #collectibles_469 { background-position: -192px -736px } #collectibles_470 { background-position: -224px -736px } #collectibles_471 { background-position: -256px -736px } #collectibles_472 { background-position: -288px -736px } #collectibles_473 { background-position: -320px -736px } #collectibles_474 { background-position: -352px -736px } #collectibles_475 { background-position: -384px -736px } #collectibles_476 { background-position: -416px -736px } #collectibles_477 { background-position: -448px -736px } #collectibles_478 { background-position: -480px -736px } #collectibles_479 { background-position: -512px -736px } #collectibles_480 { background-position: -544px -736px } #collectibles_481 { background-position: -576px -736px } #collectibles_482 { background-position: -608px -736px } #collectibles_483 { background-position: -0px -768px } #collectibles_484 { background-position: -32px -768px } #collectibles_485 { background-position: -64px -768px } #collectibles_486 { background-position: -96px -768px } #collectibles_487 { background-position: -128px -768px } #collectibles_488 { background-position: -160px -768px } #collectibles_489 { background-position: -192px -768px } #collectibles_490 { background-position: -224px -768px } #collectibles_491 { background-position: -256px -768px } #collectibles_492 { background-position: -288px -768px } #collectibles_493 { background-position: -320px -768px } #collectibles_494 { background-position: -352px -768px } #collectibles_495 { background-position: -384px -768px } #collectibles_496 { background-position: -416px -768px } #collectibles_497 { background-position: -448px -768px } #collectibles_498 { background-position: -480px -768px } #collectibles_499 { background-position: -512px -768px } #collectibles_500 { background-position: -544px -768px } #collectibles_501 { background-position: -576px -768px } #collectibles_502 { background-position: -608px -768px } #collectibles_503 { background-position: -0px -800px } #collectibles_504 { background-position: -32px -800px } #collectibles_505 { background-position: -64px -800px } #collectibles_506 { background-position: -96px -800px } #collectibles_507 { background-position: -128px -800px } #collectibles_508 { background-position: -160px -800px } #collectibles_509 { background-position: -192px -800px } #collectibles_510 { background-position: -224px -800px } #collectibles_511 { background-position: -256px -800px } #collectibles_512 { background-position: -288px -800px } #collectibles_513 { background-position: -320px -800px } #collectibles_514 { background-position: -352px -800px } #collectibles_515 { background-position: -384px -800px } #collectibles_516 { background-position: -416px -800px } #collectibles_517 { background-position: -448px -800px } #collectibles_518 { background-position: -480px -800px } #collectibles_519 { background-position: -512px -800px } #collectibles_520 { background-position: -544px -800px } #collectibles_521 { background-position: -576px -800px } #collectibles_522 { background-position: -608px -800px } #collectibles_523 { background-position: -0px -832px } #collectibles_524 { background-position: -32px -832px } #collectibles_525 { background-position: -64px -832px } #collectibles_526 { background-position: -96px -832px } #collectibles_527 { background-position: -128px -832px } #collectibles_528 { background-position: -160px -832px } #collectibles_529 { background-position: -192px -832px } #collectibles_530 { background-position: -224px -832px } #collectibles_531 { background-position: -256px -832px } #collectibles_532 { background-position: -288px -832px } #collectibles_533 { background-position: -320px -832px } #collectibles_534 { background-position: -352px -832px } #collectibles_535 { background-position: -384px -832px } #collectibles_536 { background-position: -416px -832px } #collectibles_537 { background-position: -448px -832px } #collectibles_538 { background-position: -480px -832px } #collectibles_539 { background-position: -512px -832px } #collectibles_540 { background-position: -544px -832px } #collectibles_541 { background-position: -576px -832px } #collectibles_542 { background-position: -608px -832px } #collectibles_543 { background-position: -0px -864px } #collectibles_544 { background-position: -32px -864px } #collectibles_545 { background-position: -64px -864px } #collectibles_546 { background-position: -96px -864px } #collectibles_547 { background-position: -128px -864px } #collectibles_548 { background-position: -160px -864px } #collectibles_549 { background-position: -192px -864px } #collectibles_550 { background-position: -224px -864px } #collectibles_551 { background-position: -256px -864px } #collectibles_552 { background-position: -288px -864px } #collectibles_553 { background-position: -320px -864px } #collectibles_554 { background-position: -352px -864px } #collectibles_555 { background-position: -384px -864px } #collectibles_556 { background-position: -416px -864px } #collectibles_557 { background-position: -448px -864px } #collectibles_558 { background-position: -480px -864px } #collectibles_559 { background-position: -512px -864px } #collectibles_560 { background-position: -544px -864px } #collectibles_561 { background-position: -576px -864px } #collectibles_562 { background-position: -608px -864px } #collectibles_563 { background-position: -0px -896px } #collectibles_564 { background-position: -32px -896px } #collectibles_565 { background-position: -64px -896px } #collectibles_566 { background-position: -96px -896px } #collectibles_567 { background-position: -128px -896px } #collectibles_568 { background-position: -160px -896px } #collectibles_569 { background-position: -192px -896px } #collectibles_570 { background-position: -224px -896px } #collectibles_571 { background-position: -256px -896px } #collectibles_572 { background-position: -288px -896px } #collectibles_573 { background-position: -320px -896px } #collectibles_574 { background-position: -352px -896px } #collectibles_575 { background-position: -384px -896px } #collectibles_576 { background-position: -416px -896px } #collectibles_577 { background-position: -448px -896px } #collectibles_578 { background-position: -480px -896px } #collectibles_579 { background-position: -512px -896px } #collectibles_580 { background-position: -544px -896px } #collectibles_581 { background-position: -576px -896px } #collectibles_582 { background-position: -608px -896px } #collectibles_583 { background-position: -0px -928px } #collectibles_584 { background-position: -32px -928px } #collectibles_585 { background-position: -64px -928px } #collectibles_586 { background-position: -96px -928px } #collectibles_588 { background-position: -128px -928px } #collectibles_589 { background-position: -160px -928px } #collectibles_590 { background-position: -192px -928px } #collectibles_591 { background-position: -224px -928px } #collectibles_592 { background-position: -256px -928px } #collectibles_593 { background-position: -288px -928px } #collectibles_594 { background-position: -320px -928px } #collectibles_595 { background-position: -352px -928px } #collectibles_596 { background-position: -384px -928px } #collectibles_597 { background-position: -416px -928px } #collectibles_598 { background-position: -448px -928px } #collectibles_599 { background-position: -480px -928px } #collectibles_600 { background-position: -512px -928px } #collectibles_601 { background-position: -544px -928px } #collectibles_602 { background-position: -576px -928px } #collectibles_603 { background-position: -608px -928px } #collectibles_604 { background-position: -0px -960px } #collectibles_605 { background-position: -32px -960px } #collectibles_606 { background-position: -64px -960px } #collectibles_607 { background-position: -96px -960px } #collectibles_608 { background-position: -128px -960px } #collectibles_609 { background-position: -160px -960px } #collectibles_610 { background-position: -192px -960px } #collectibles_611 { background-position: -224px -960px } #collectibles_612 { background-position: -256px -960px } #collectibles_614 { background-position: -288px -960px } #collectibles_615 { background-position: -320px -960px } #collectibles_616 { background-position: -352px -960px } #collectibles_617 { background-position: -384px -960px } #collectibles_618 { background-position: -416px -960px } #collectibles_619 { background-position: -448px -960px } #collectibles_621 { background-position: -480px -960px } #collectibles_622 { background-position: -512px -960px } #collectibles_623 { background-position: -544px -960px } #collectibles_624 { background-position: -576px -960px } #collectibles_625 { background-position: -608px -960px } #collectibles_626 { background-position: -0px -992px } #collectibles_627 { background-position: -32px -992px } #collectibles_628 { background-position: -64px -992px } #collectibles_629 { background-position: -96px -992px } #collectibles_631 { background-position: -128px -992px } #collectibles_632 { background-position: -160px -992px } #collectibles_633 { background-position: -192px -992px } #collectibles_634 { background-position: -224px -992px } #collectibles_635 { background-position: -256px -992px } #collectibles_636 { background-position: -288px -992px } #collectibles_637 { background-position: -320px -992px } #collectibles_638 { background-position: -352px -992px } #collectibles_639 { background-position: -384px -992px } #collectibles_640 { background-position: -416px -992px } #collectibles_641 { background-position: -448px -992px } #collectibles_642 { background-position: -480px -992px } #collectibles_643 { background-position: -512px -992px } #collectibles_644 { background-position: -544px -992px } #collectibles_645 { background-position: -576px -992px } #collectibles_646 { background-position: -608px -992px } #collectibles_647 { background-position: -0px -1024px } #collectibles_649 { background-position: -32px -1024px } #collectibles_650 { background-position: -64px -1024px } #collectibles_651 { background-position: -96px -1024px } #collectibles_652 { background-position: -128px -1024px } #collectibles_653 { background-position: -160px -1024px } #collectibles_654 { background-position: -192px -1024px } #collectibles_655 { background-position: -224px -1024px } #collectibles_656 { background-position: -256px -1024px } #collectibles_657 { background-position: -288px -1024px } #collectibles_658 { background-position: -320px -1024px } #collectibles_659 { background-position: -352px -1024px } #collectibles_660 { background-position: -384px -1024px } #collectibles_661 { background-position: -416px -1024px } #collectibles_663 { background-position: -448px -1024px } #collectibles_664 { background-position: -480px -1024px } #collectibles_665 { background-position: -512px -1024px } #collectibles_667 { background-position: -544px -1024px } #collectibles_668 { background-position: -576px -1024px } #collectibles_669 { background-position: -608px -1024px } #collectibles_670 { background-position: -0px -1056px } #collectibles_671 { background-position: -32px -1056px } #collectibles_672 { background-position: -64px -1056px } #collectibles_673 { background-position: -96px -1056px } #collectibles_674 { background-position: -128px -1056px } #collectibles_675 { background-position: -160px -1056px } #collectibles_676 { background-position: -192px -1056px } #collectibles_677 { background-position: -224px -1056px } #collectibles_678 { background-position: -256px -1056px } #collectibles_679 { background-position: -288px -1056px } #collectibles_680 { background-position: -320px -1056px } #collectibles_681 { background-position: -352px -1056px } #collectibles_682 { background-position: -384px -1056px } #collectibles_683 { background-position: -416px -1056px } #collectibles_684 { background-position: -448px -1056px } #collectibles_685 { background-position: -480px -1056px } #collectibles_686 { background-position: -512px -1056px } #collectibles_687 { background-position: -544px -1056px } #collectibles_688 { background-position: -576px -1056px } #collectibles_689 { background-position: -608px -1056px } #collectibles_690 { background-position: -0px -1088px } #collectibles_691 { background-position: -32px -1088px } #collectibles_692 { background-position: -64px -1088px } #collectibles_693 { background-position: -96px -1088px } #collectibles_694 { background-position: -128px -1088px } #collectibles_695 { background-position: -160px -1088px } #collectibles_696 { background-position: -192px -1088px } #collectibles_697 { background-position: -224px -1088px } #collectibles_698 { background-position: -256px -1088px } #collectibles_699 { background-position: -288px -1088px } #collectibles_700 { background-position: -320px -1088px } #collectibles_701 { background-position: -352px -1088px } #collectibles_702 { background-position: -384px -1088px } #collectibles_703 { background-position: -416px -1088px } #collectibles_704 { background-position: -448px -1088px } #collectibles_705 { background-position: -480px -1088px } #collectibles_706 { background-position: -512px -1088px } #collectibles_707 { background-position: -544px -1088px } #collectibles_708 { background-position: -576px -1088px } #collectibles_709 { background-position: -608px -1088px } #collectibles_710 { background-position: -0px -1120px } #collectibles_711 { background-position: -32px -1120px } #collectibles_712 { background-position: -64px -1120px } #collectibles_713 { background-position: -96px -1120px } #collectibles_714 { background-position: -128px -1120px } #collectibles_715 { background-position: -160px -1120px } #collectibles_716 { background-position: -192px -1120px } #collectibles_717 { background-position: -224px -1120px } #collectibles_719 { background-position: -256px -1120px } #collectibles_720 { background-position: -288px -1120px } #collectibles_721 { background-position: -320px -1120px } #collectibles_722 { background-position: -352px -1120px } #collectibles_723 { background-position: -384px -1120px } #collectibles_724 { background-position: -416px -1120px } #collectibles_725 { background-position: -448px -1120px } #collectibles_726 { background-position: -480px -1120px } #collectibles_727 { background-position: -512px -1120px } #collectibles_728 { background-position: -544px -1120px } #collectibles_729 { background-position: -576px -1120px } #collectibles_730 { background-position: -608px -1120px } #collectibles_731 { background-position: -0px -1152px } #collectibles_732 { background-position: -32px -1152px } #collectibles_633 { animation-name: collectible-dogma-anim; animation-duration: 500ms; animation-iteration-count: infinite; animation-timing-function: step-start } @keyframes collectible-dogma-anim { 0% { background-position: -64px -1152px } 3% { background-position: -96px -1152px } 6% { background-position: -128px -1152px } 10% { background-position: -160px -1152px } 13% { background-position: -192px -1152px } 17% { background-position: -224px -1152px } 20% { background-position: -256px -1152px } 24% { background-position: -288px -1152px } 27% { background-position: -320px -1152px } 31% { background-position: -352px -1152px } 34% { background-position: -384px -1152px } 37% { background-position: -416px -1152px } 41% { background-position: -448px -1152px } 44% { background-position: -480px -1152px } 48% { background-position: -512px -1152px } 51% { background-position: -544px -1152px } 55% { background-position: -576px -1152px } 58% { background-position: -608px -1152px } 62% { background-position: -0px -1184px } 65% { background-position: -32px -1184px } 68% { background-position: -64px -1184px } 72% { background-position: -96px -1184px } 75% { background-position: -128px -1184px } 79% { background-position: -160px -1184px } 82% { background-position: -192px -1184px } 86% { background-position: -224px -1184px } 89% { background-position: -256px -1184px } 93% { background-position: -288px -1184px } 96% { background-position: -320px -1184px } 100% { background-position: -352px -1184px } } #cards_001 { background-position: -0px -0px } #cards_002 { background-position: -32px -0px } #cards_003 { background-position: -64px -0px } #cards_004 { background-position: -96px -0px } #cards_005 { background-position: -128px -0px } #cards_006 { background-position: -160px -0px } #cards_007 { background-position: -192px -0px } #cards_008 { background-position: -224px -0px } #cards_009 { background-position: -256px -0px } #cards_010 { background-position: -288px -0px } #cards_011 { background-position: -320px -0px } #cards_012 { background-position: -352px -0px } #cards_013 { background-position: -384px -0px } #cards_014 { background-position: -416px -0px } #cards_015 { background-position: -448px -0px } #cards_016 { background-position: -480px -0px } #cards_017 { background-position: -512px -0px } #cards_018 { background-position: -544px -0px } #cards_019 { background-position: -576px -0px } #cards_020 { background-position: -608px -0px } #cards_021 { background-position: -0px -32px } #cards_022 { background-position: -32px -32px } #cards_023 { background-position: -64px -32px } #cards_024 { background-position: -96px -32px } #cards_025 { background-position: -128px -32px } #cards_026 { background-position: -160px -32px } #cards_027 { background-position: -192px -32px } #cards_028 { background-position: -224px -32px } #cards_029 { background-position: -256px -32px } #cards_030 { background-position: -288px -32px } #cards_031 { background-position: -320px -32px } #cards_032 { background-position: -0px -0px !important } #cards_033 { background-position: -32px -0px !important } #cards_034 { background-position: -64px -0px !important } #cards_035 { background-position: -96px -0px !important } #cards_036 { background-position: -128px -0px !important } #cards_037 { background-position: -160px -0px !important } #cards_038 { background-position: -192px -0px !important } #cards_039 { background-position: -224px -0px !important } #cards_040 { background-position: -608px -32px } #cards_041 { background-position: -0px -64px } #cards_042 { background-position: -32px -64px } #cards_043 { background-position: -64px -64px } #cards_044 { background-position: -96px -64px } #cards_045 { background-position: -128px -64px } #cards_046 { background-position: -160px -64px } #cards_047 { background-position: -192px -64px } #cards_048 { background-position: -224px -64px } #cards_049 { background-position: -256px -64px } #cards_050 { background-position: -288px -64px } #cards_051 { background-position: -320px -64px } #cards_052 { background-position: -352px -64px } #cards_053 { background-position: -384px -64px } #cards_054 { background-position: -416px -64px } #cards_055 { background-position: -448px -64px } #cards_056 { background-position: -480px -64px } #cards_057 { background-position: -512px -64px } #cards_058 { background-position: -544px -64px } #cards_059 { background-position: -576px -64px } #cards_060 { background-position: -608px -64px } #cards_061 { background-position: -0px -96px } #cards_062 { background-position: -32px -96px } #cards_063 { background-position: -64px -96px } #cards_064 { background-position: -96px -96px } #cards_065 { background-position: -128px -96px } #cards_066 { background-position: -160px -96px } #cards_067 { background-position: -192px -96px } #cards_068 { background-position: -224px -96px } #cards_069 { background-position: -256px -96px } #cards_070 { background-position: -288px -96px } #cards_071 { background-position: -320px -96px } #cards_072 { background-position: -352px -96px } #cards_073 { background-position: -384px -96px } #cards_074 { background-position: -416px -96px } #cards_075 { background-position: -448px -96px } #cards_076 { background-position: -480px -96px } #cards_077 { background-position: -512px -96px } #cards_078 { background-position: -544px -96px } #cards_079 { background-position: -576px -96px } #cards_080 { background-position: -608px -96px } #cards_081 { background-position: -0px -128px } #cards_082 { background-position: -32px -128px } #cards_083 { background-position: -64px -128px } #cards_084 { background-position: -96px -128px } #cards_085 { background-position: -128px -128px } #cards_086 { background-position: -160px -128px } #cards_087 { background-position: -192px -128px } #cards_088 { background-position: -224px -128px } #cards_089 { background-position: -256px -128px } #cards_090 { background-position: -288px -128px } #cards_091 { background-position: -320px -128px } #cards_092 { background-position: -352px -128px } #cards_093 { background-position: -384px -128px } #cards_094 { background-position: -416px -128px } #cards_095 { background-position: -448px -128px } #cards_096 { background-position: -480px -128px } #cards_097 { background-position: -512px -128px } .crafting_recipe { transform: scale(2); margin: 8px; image-rendering: pixelated; width: 16px; height: 16px; background-image: url(https://huiji-public.huijistatic.com/isaac/uploads/8/89/Crafting_ui_sprite.png) } .crafting_recipe_0 { background-position: -0px -0px } .crafting_recipe_1 { background-position: -16px -0px } .crafting_recipe_2 { background-position: -32px -0px } .crafting_recipe_3 { background-position: -48px -0px } .crafting_recipe_4 { background-position: -64px -0px } .crafting_recipe_5 { background-position: -80px -0px } .crafting_recipe_6 { background-position: -96px -0px } .crafting_recipe_7 { background-position: -112px -0px } .crafting_recipe_8 { background-position: -0px -16px } .crafting_recipe_9 { background-position: -16px -16px } .crafting_recipe_10 { background-position: -32px -16px } .crafting_recipe_11 { background-position: -48px -16px } .crafting_recipe_12 { background-position: -64px -16px } .crafting_recipe_13 { background-position: -80px -16px } .crafting_recipe_14 { background-position: -96px -16px } .crafting_recipe_15 { background-position: -112px -16px } .crafting_recipe_16 { background-position: -0px -32px } .crafting_recipe_17 { background-position: -16px -32px } .crafting_recipe_18 { background-position: -32px -32px } .crafting_recipe_19 { background-position: -48px -32px } .crafting_recipe_20 { background-position: -64px -32px } .crafting_recipe_21 { background-position: -80px -32px } .crafting_recipe_22 { background-position: -96px -32px } .crafting_recipe_23 { background-position: -112px -32px } .crafting_recipe_24 { background-position: -0px -48px } .crafting_recipe_25 { background-position: -16px -48px } .crafting_recipe_26 { background-position: -32px -48px } .crafting_recipe_27 { background-position: -48px -48px } .crafting_recipe_28 { background-position: -64px -48px } .crafting_recipe_29 { background-position: -80px -48px } .crafting_recipe_30 { background-position: -96px -48px } .collectibles { background-image: url(./collectibles.png) } .icons { display: inline-block; width: 30px; height: 30px; vertical-align: middle } article .content img { display: inline !important }

「学习笔记」Git 基础

2. Git 基础

git status

  • git status:查看当前状态
    • git status -s:简化输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)

new file: README
modified: CONTRIBUTING.md

$ git status -s
M README
MM Rakefile
A lib/git.rb
M lib/simplegit.rb
?? LICENSE.txt

.gitignore

可以使用 glob 模式匹配。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 忽略所有前缀长度 >= 2 的 .a 文件,例如忽略 foo.a 但不忽略 p.a
??*.a

# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a

# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO

# 忽略任何目录下名为 build 的文件夹
build/

# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt

# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf

git diff

  • git diff:比较工作和暂存
  • git diff --staged:比较暂存和最新提交

git commit

  • git commit -a:自动将已跟踪文件 update
    • 不等于 git add -A

git rm

  • git rm <file>:也会移除工作区文件
    • --cached 避免
  • git mv <old_file> <new_file>

git log

  • -p -2:显示最近两次提交的差异
  • --pretty=online:单行显示
  • --graph:显示分支的树形图

2.4 撤销操作

  • git commit --amend:修补最后一次提交
  • git reset HEAD <file>:撤销文件的暂存
  • git checkout -- <file>:撤销文件的修改(危险

2.5 远程仓库的使用

  • git remote -v:查看远程仓库名称和 url
  • git remote add <shortname> <url>:添加远程仓库
  • git remote show <remote>:查看远程仓库的更多信息
    • rename/remove
  • git fetch <remote>:从远程仓库拉取数据
  • git push <remote> <branch>:推送数据到远程仓库

2.6 打标签

查询:

  • git tag:列出标签
    • -l "v1.8.5*":列出所有符合模式的标签
  • git show <tagname>:查看标签信息

创建:

  • git tag -a <tagname> -m "my version 1.4":创建附注标签
  • git tag <tagname>:创建轻量标签
  • git tag -a <tagname> 9fceb02:补办标签

删除:

  • git tag -d <tagname>:删除标签

标签不会在 git push 时自动推送,必须手动推送标签:

  • 添加:git push origin <tagname>git push origin --tags
  • 删除:git push origin --delete <tagname>

2.7 Git 别名

  • git config --global alias.unstage 'reset HEAD --'
    • git unstage <file>:等价于 git reset HEAD -- <file>
  • git config --global alias.visual '!echo hello'
    • git visual:等价于 echo hello

3. Git 分支

3.1 分支简介

Git 储存三种对象:

  • commit:储存 commit 信息,指向对应快照的 tree 根节点
  • tree:储存路径树结构
  • blob:储存文件

HEAD 指向当前所在分支。

  • 创建:git branch <newbranch>
  • 删除:git branch -d <branch>
  • 切换:git checkout <branch>

也可以用 git checkout -b <newbranch> 直接创建并切换。

3.2 分支的新建与合并

  • git merge <branch>HEAD = merge(HEAD, branch)
    • --no-ff:禁用快进合并

快进:若 HEADbranch 的祖先,则可以直接跳到 branch,称为快进。

如果出现冲突,需要手动去对应文件里修改,再用 git addgit commit

1
2
3
4
5
6
7
<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>> iss53:index.html

3.6 变基

1
2
3
4
5
git checkout experiment
git rebase master

git checkout master
git merge experiment

变基:提取当前分支(experiment)中到最近公共祖先引入的修改,然后在目标分支(master)上重新应用,并修改当前分支的提交。(即 HEAD' = branch + (HEAD - LCA)

整合结果相同,但历史更加简洁。

进阶:

  • git rebase --onto master server client,将 client 减去 server 的修改应用到 master 上。
  • git rebase master server,将 server 的修改应用到 master 上。

变基前:

变基后:

风险:如果提交存在于你的仓库之外,而别人可能基于这些提交进行开发,那么不要执行变基。——也就是说,只在本地分支上使用变基。

Figure 47. 你将相同的内容又合并了一次,生成了一个新的提交

Figure 47. 你将相同的内容又合并了一次,生成了一个新的提交

高级魔法:用 git rebase teamone/master 可以实现智能变基合并(丢弃 C4 和 C6)。

合并和变基的区别:

至此,你已在实战中学习了变基和合并的用法,你一定会想问,到底哪种方式更好。 在回答这个问题之前,让我们退后一步,想讨论一下提交历史到底意味着什么。

有一种观点认为,仓库的提交历史即是 记录实际发生过什么。 它是针对历史的文档,本身就有价值,不能乱改。 从这个角度看来,改变提交历史是一种亵渎,你使用 谎言 掩盖了实际发生过的事情。 如果由合并产生的提交历史是一团糟怎么办? 既然事实就是如此,那么这些痕迹就应该被保留下来,让后人能够查阅。

另一种观点则正好相反,他们认为提交历史是 项目过程中发生的事。 没人会出版一本书的第一版草稿,软件维护手册也是需要反复修订才能方便使用。 持这一观点的人会使用 rebase 及 filter-branch 等工具来编写故事,怎么方便后来的读者就怎么写。

总的原则是,只对尚未推送或分享给别人的本地修改执行变基操作清理历史, 从不对已推送至别处的提交执行变基操作,这样,你才能享受到两种方式带来的便利。

「学习笔记」Web 开发基础

HTML 入门

<head>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<head>
<meta charset="utf-8" />

<meta name="author" content="Chris Mills" />
<meta
name="description"
content="The MDN Web Docs site
provides information about Open Web technologies
including HTML, CSS, and APIs for both Web sites and
progressive web apps." />

<title>MDN Web Docs</title>

<link rel="icon" href="favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="my-css-file.css" />
<script src="my-js-file.js" defer></script>
</head>

效果:

效果

其中 <script> 里的 defer 是让浏览器加载完全部的 HTML 后再运行该脚本。

<ol> 和 <ul>

1
2
3
4
5
<ol>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ol>

输入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<input type="text" placeholder="请输入" />
<input type="password" placeholder="请输入密码" />
<input type="checkbox" />
<input type="submit" value="提交" />
<input type="reset" value="重置" />
<input type="button" value="按钮" />
<input type="file" />
<input type="hidden" />
<input type="image" />
<input type="color" />
<input type="date" />

<button onclick="displayHi()">按钮文字</button>

/*
类型:
* onclick
* onchange
* onload
* onkeydown
* onmouseover
* onmouseout
*/


CSS 入门

清除性模板

1
2
3
4
5
6
7
* {
text-decoration: none;
color: black;
box-sizing: border-box;
margin: 0;
padding: 0;
}

盒模型

标准盒:

替代盒(常用):

1
2
3
* {
box-sizing: border-box;
}

标准盒的 width 等于内容宽度,替代盒的 width 等于内容宽度、边框宽度和 padding 宽度的总和。

定位

  • position: static:默认跟随文档流
  • position: relative:相对于自身位置移动一点点,但是会占位
  • position: absolute:相对最近的非 static 祖先元素定位,不占位
  • position: fixed:相对视窗定位
  • position: sticky:正常显示时为 static,但如果滚动到相对容器的特定位置则变为 fixed(由 top, left, right, bottom 指定)

选择器速查表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
a[attr^="value"] /* 以 value 开头 */
a[attr$="value"] /* 以 value 结尾 */
a[attr*="value"] /* 包含 value */


a:link /* 链接没有被访问过 */
a:visited /* 链接已被访问过 */
a:hover /* 鼠标移动到链接上 */
a:focus /* 鼠标点击链接时 */
a:active /* 链接正在被点击 */

input:required /* 必须填写 */
input:checked /* 选中 */
input:disabled /* 禁用 */

a:first-child /* 第一个 */
a:last-child /* 最后一个 */
a:nth-child(an + b | even | odd) /* 为父元素的第 an + b (n >= 0) 个,奇数个或偶数个儿子 */

a:first-of-type /* 同上,但是只计数 <a> */
a:last-of-type
a:nth-of-type(an + b | even | odd)

p::before /* 前面 */
p::after /* 后面 */
p::first-letter /* 第一个字 */
p::first-line /* 第一行 */

背景

1
2
3
4
5
6
7
8
.a {
background-color: #f0f0f0; /* 背景颜色 */
background-image: url("front.png"), url("bg.png"); /* 背景图片,前面的图片会放在后面的图片上 */
background-repeat: no-repeat | repeat-x | repeat-y | repeat; /* 背景图片重复,默认 repeat */
background-position: left top | 50% 50% | 0 0 | cover | contain; /* 背景图片位置,默认 0 0 */
background-size: 100px 100px | 50% 50% | cover | contain; /* 背景图片大小,默认 auto; cover 按 max(img_width, img_height) 放缩,contain 按 min(img_width, img_height) 放缩 */
background-attachment: scroll | fixed; /* 背景图片是否随滚动,默认 scroll */
}

颜色

1
2
3
4
5
6
7
#f0e1a6
rgb(2 35 125)
rgb(2 35 125 / .6)
hsl(120 100% 50%)
hsl(350 100% 50% / .6)
linear-gradient(90deg, rgb(119 0 255 / 39%), rgb(0 212 255 / 100%)) /* 从左到右,左边是第一个颜色,右边是第二个颜色;90deg 是逆时针旋转 */
linear-gradient(0deg, rgb(119 0 255 / 39%), rgb(0 212 255 / 100%)) /* 从上到下,上边是第一个颜色,下边是第二个颜色 */

媒体查询

1

min-width 和 max-width

用于响应式设计。min-width 属性表示最小宽度,限制 width 必定不小于 min-width

长度单位

  • px
  • em:本元素的 font-size
  • rem<html>font-size
  • vh / vw
    • vmin / vmax
  • %:相对父元素的大小

Javascript 入门

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
"use strict";


let a = "ab";
let b = {first: "John", last: "Doe", number: 584};
let c = [3, 7, , , 5]; // 中间是 undefined

console.log(b.first); // John
console.log(b["first"]); // John


let a = "string";
a.length // 6
a.constructor // 返回 a 的构造函数


let b = 35.13;
b.toString() // "35.13"
b.toString(2) // "100011.0010001010001111010111000010100011110101110000101"
b.toFixed(4) // "35.1300"
b.toExponential(4) // "3.5130e+1"
b.toPrecision(5) // "35.130"


let a;
console.log(a); // undefined
a = null;
console.log(a); // null


typeof [1, 2, 3, 4] // object
typeof false // boolean



`I am ${name}.`



switch (x) {
case 1:
// do sth
break;
case 2:
// do sth
break;
default:
// do sth
}


for (const x in arr) {
if (x instanceof Number) {
console.log(`${x} is number\n`); // 自动换行
}
}



str.search(/Runoob/i)
str.replace(/Runoob/i, "Google")
/Runoob/i.test(str) // Boolean
/Runoob/i.exec(str) // Array / String



try {
// 可能会出错的代码
throw "出错信息";
} catch (error) {
// 出错时执行的代码
} finally {
// 无论如何都会执行的代码
}

debugger; // 断点

数据类型

  • 数据类型:String, Number, Boolean, Object, Function, Symbol
  • 对象类型:Object, Date, Array
  • 其他:null, undefined

大数精度问题

在 $[-2^{53} + 1, 2^{53} - 1]$ 之间的整数可以精确表示,但过大的整数 / 任意小数难以精确表示。

可以考虑:

  1. parseFloat(res.toFixed(12)),缺点是大数仍然会出错;
  2. 将小数转为整数再除以 $10^k$(如 $0.1 \times 0.2 = 1 \times 2 \div 100$),缺点是大数可溢出;
  3. 转为字符串模拟计算。

bignumber.js,decimal.js,以及 big.js 采用第三种方案。

null 和 undefined

在 JavaScript 中, null 用于对象, undefined 用于变量,属性和方法。

对象只有被定义才有可能为 null,否则为 undefined。

如果我们想测试对象是否存在,在对象还没定义时将会抛出一个错误。

错误的使用方式:

1
if (myObj !== null && typeof myObj !== "undefined") 

正确的方式是我们需要先使用 typeof 来检测对象是否已定义:

1
if (typeof myObj !== "undefined" && myObj !== null) 

显式函数绑定

在 JavaScript 中函数也是对象,对象则有方法,apply 和 call 就是函数对象的方法。这两个方法异常强大,他们允许切换函数执行的上下文环境(context),即 this 绑定的对象。

在下面实例中,当我们使用 person2 作为参数来调用 person1.fullName 方法时, this 将指向 person2, 即便它是 person1 的方法:

1
2
3
4
5
6
7
8
9
10
var person1 = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
}
var person2 = {
firstName:"John",
lastName: "Doe",
}
person1.fullName.call(person2); // 返回 "John Doe"

json

1
2
let obj = JSON.parse(json);
let json = JSON.stringify(obj);

javascript:void(0)

void(func) 会使用 js 计算 func,但返回的值固定为 undefined

1
2
<a href="javascript:void(0)">死链接</a>
<a href="javascript:void(alert('hi!'))">点了就会和你打招呼的链接</a>

arguments

相当于 python 里的 args。

1
2
3
4
5
6
function sumAll() {
var i, sum = 0;
for (i = 0; i < arguments.length; i++)
sum += arguments[i];
return sum;
}

正则表达式入门

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
\d{4} // 4 个数字
a{3,5} // 3 到 5 个 a

(first)-\1, (second)-\2 // \1 表示第一个括号匹配的内容,\2 表示第二个括号匹配的内容
(?:first), (second)-\1 // (?:) 表示不捕获,\1 实际上是 second

(c|r)at|dog

^string // 以 string 开头
string$ // 以 string 结尾

\w // 匹配字母、数字、下划线
\d // 匹配数字
\s // 匹配空白字符

[0-9]{1,2}(?=PM) // 后面必须带 PM,但 PM 不会被匹配进来
[0-9]{1,2}(?!PM) // 后面不能带 PM
(?<=\$)\d+ // 前面必须带 $
(?<!\$)\d+ // 前面不能带 $

/ ... /g // 表示可以多次匹配
/ ... /m // 表示多行匹配
/ ... /i // 表示忽略大小写

// 贪心匹配:默认尽可能多地匹配

.*? // 非贪心匹配
.*?r

\w+@[a-z|0-9]+\.[a-z]+

Promise

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const a = new Promise((resolve, reject) => {
if (true) {
resolve("success");
} else {
reject("fail");
}
});

a.then((res) => {
console.log(res);
}).catch((err) => {
console.log(err);
}).finally(() => {
console.log("finished");
});

const b = new Promise((resolve, reject) => {
resolve(a);
})

注意:resolve, reject 不会暂停该 Promise 的运行,例如若 resolve(a); console.log("hi"); 则根本不会等待 a 变为 fulfilled 就直接输出 hi

闭包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const pack = (() => {
let val = 0;
let setVal;
let getVal;

setVal = (newVal) => {
val = newVal;
return {setVal: setVal, getVal: getVal};
};
getVal = () => val;
return {setVal: setVal, getVal: getVal};
})()

pack.setVal(7);
console.log(pack.getVal());

1
2
3
4
5
6
7
8
9
10
11
12
class ClassName {
constructor(...) { ... }
method1() { ... }
static method2() { ... }
}

class Dog extends Animal {
constructor(...) {
super(...);
...
}
};

apply, call 和 bind

  • call:正常传参
  • apply:传入参数数组
  • bind:返回一个新函数,可以生成回调函数
1
2
3
4
5
func.call(this, arg1, arg2);
func.apply(this, [arg1, arg2]);

const newFunc = func.bind(obj);
newFunc();

DOM

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
let element = document.getElementById("id");
let elements = document.getElementsByTagName("p");
// elements 为 HTMLCollection 对象,严格来说不是数组,没有 valueOf(), pop() 等
let myNodeList = document.querySelectorAll("p");

element.style.color = "red";
element.addEventListener("click", () => { alert("hi!"); });
element.addEventListener("click", () => { alert("hi!"); }, false); // useCapture, default = false
element.removeEventListener("click", () => { alert("hi!"); });


parent.appendChild(child);
parent.insertBefore(node, referenceNode);
parent.replaceChild(newNode, oldNode);
parent.removeChild(child); // or child.parentNode.removeChild(child);

事件冒泡和事件捕获

冒泡:里面先触发。可以看作从里往外,气泡不断向上级冒出的过程。

捕获:外面先触发。可以看作从外往里捕捉的过程。

展开和解构语法

1
2
[...a]              // 展开
[x, y] = [y, x + y] // 解构

迭代器和生成器

function* func(...) { ... } 来创建一个生成器,在生成器里写 yield valueyield* [value1, value2, ...] 可以卡住生成器并暂时返回该值。

let it = func(...) 来创建一个迭代器(**注意没有 new**),it.next().valueit.next().done 判断是否结束。

也可以直接使用 for-in 循环、[...it] 等语法展开。

也可以在 Person[Symbol.iterator] = function* () { ... } 里定义迭代器,使得该 object 支持迭代。

实例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function* makeRangeIterator(start = 0, end = Infinity, step = 1) {
let iterationCount = 0;
for (let i = start; i < end; i += step) {
iterationCount++;
yield i;
}
return iterationCount;
}

let it = makeRangeIterator(1, 10, 2); // 注意没有 new!

let result = it.next();
while (!result.done) {
console.log(result.value); // 1 3 5 7 9
result = it.next();
}

console.log(`已迭代序列的大小:${result.value}`); // 5

高级应用:带参数的 next()

yield value 也有返回值,会返回 it.next(arg) 中的参数 arg(可选)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function* fibonacci() {
let current = 0;
let next = 1;
while (true) {
const reset = yield current;
[current, next] = [next, next + current];
if (reset) {
current = 0;
next = 1;
}
}
}

const sequence = fibonacci();
console.log(sequence.next().value); // 0
console.log(sequence.next().value); // 1
console.log(sequence.next().value); // 1
console.log(sequence.next().value); // 2
console.log(sequence.next().value); // 3
console.log(sequence.next().value); // 5
console.log(sequence.next().value); // 8
console.log(sequence.next(true).value); // 0
console.log(sequence.next().value); // 1
console.log(sequence.next().value); // 1
console.log(sequence.next().value); // 2

模块

1
2
export { name as newName, func, func2 };
export name from "./sub.js";
1
2
3
import { newName, draw as newDraw, reportPerimeter } from "./module.js";
import * as Module from "./module.js";
// Module.draw()

在 HTML 中:

1
<script type="module" src="main.js"></script>

动态加载

import(path) 返回一个 Promise 对象,其 resolve 的返回值为 Module 本身,可以用 then 来处理 。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
squareBtn.addEventListener("click", () => {
import("/js-examples/modules/dynamic-module-imports/modules/square.js").then(
(Module) => {
let square1 = new Module.Square(
myCanvas.ctx,
myCanvas.listId,
50,
50,
100,
"blue",
);
square1.draw();
square1.reportArea();
square1.reportPerimeter();
},
);
});

Prototype

一些细项

  • id = setInterval(fn, delay, ...args), clearInterval(id)

基本数据类型

Number

  • Number.parseInt
  • Number.parseFloat

String

  • String.fromCharCode / String.charCodeAt

  • String.match

  • String.indexOf / String.lastIndexOf

  • String.toUpperCase / String.toLowerCase

  • String.split

  • String.substring(begin, end) (等价于特殊判断的 String[begin:end]

    • begin > end 时会交换,当 begin < 0 时会取 0,当 end > len 时会取 len
  • Array.slice(begin, end)(可取负值)