├── .gitignore ├── PICO-8.ttf ├── palette.png ├── palette.xcf ├── unicorn.png ├── controls.png ├── screensize.png ├── screensize.xcf ├── palette_numbers.png ├── picoPalette.pyxel ├── picoPalette_palette.png ├── README.md ├── main.css ├── index_en.html ├── index.html ├── index_fr.html ├── tracker.svg └── controls.svg /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /PICO-8.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ztiromoritz/pico-8-spick/HEAD/PICO-8.ttf -------------------------------------------------------------------------------- /palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ztiromoritz/pico-8-spick/HEAD/palette.png -------------------------------------------------------------------------------- /palette.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ztiromoritz/pico-8-spick/HEAD/palette.xcf -------------------------------------------------------------------------------- /unicorn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ztiromoritz/pico-8-spick/HEAD/unicorn.png -------------------------------------------------------------------------------- /controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ztiromoritz/pico-8-spick/HEAD/controls.png -------------------------------------------------------------------------------- /screensize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ztiromoritz/pico-8-spick/HEAD/screensize.png -------------------------------------------------------------------------------- /screensize.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ztiromoritz/pico-8-spick/HEAD/screensize.xcf -------------------------------------------------------------------------------- /palette_numbers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ztiromoritz/pico-8-spick/HEAD/palette_numbers.png -------------------------------------------------------------------------------- /picoPalette.pyxel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ztiromoritz/pico-8-spick/HEAD/picoPalette.pyxel -------------------------------------------------------------------------------- /picoPalette_palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ztiromoritz/pico-8-spick/HEAD/picoPalette_palette.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # pico-8-spick 2 | A PICO-8 Cheatsheet. Intended to be helpfull for people learning and having fun with PICO-8 and Lua. 3 | * [German](https://github.com/ztiromoritz/pico-8-spick/raw/master/build/pico-8-spickzettel.pdf) 4 | * [English](https://github.com/ztiromoritz/pico-8-spick/raw/master/build/pico-8-cheatsheet.pdf) 5 | * [French](https://github.com/ztiromoritz/pico-8-spick/raw/master/build/pico-8-antiseche.pdf) 6 | -------------------------------------------------------------------------------- /main.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "pico8"; 3 | src: url("./PICO-8.ttf"); 4 | } 5 | 6 | * { 7 | margin: 0; 8 | padding: 0; 9 | } 10 | 11 | * { 12 | -webkit-padding-start: 0px; 13 | } 14 | 15 | body { 16 | background-color: #aaa; 17 | } 18 | 19 | .page { 20 | font-family: Courier, monospace; 21 | height: 277mm; 22 | width: 210mm; 23 | margin: 0 auto; 24 | background-color: #fff; 25 | /* background-color: #ff00ff; */ 26 | } 27 | 28 | .title { 29 | width: 205mm; 30 | height: 1mm; 31 | margin: 2.5mm; 32 | padding-top: 3mm; 33 | font-family: pico8, monospace; 34 | font-size: 10px; 35 | /*background-color: #00ff00;*/ 36 | } 37 | 38 | .column { 39 | height: 287mm; 40 | width: 65mm; 41 | margin: 2.5mm; 42 | /*background-color: #00ff00; */ 43 | float: left 44 | } 45 | 46 | .block { 47 | width: 100%; 48 | background-color: #eee; 49 | margin-top: 1mm; 50 | margin-bottom: 0mm; 51 | background-color: #eee; 52 | } 53 | 54 | .shortcut { 55 | font-size: 14px; 56 | } 57 | 58 | .block h3 { 59 | margin-top: 1mm; 60 | margin-left: 1mm; 61 | margin-bottom: 1mm; 62 | 63 | 64 | } 65 | 66 | .block h4 { 67 | margin-top: 2mm; 68 | } 69 | 70 | pre, 71 | .gray { 72 | background-color: #ddd; 73 | } 74 | 75 | code::first-line { 76 | line-height: 0px; 77 | } 78 | 79 | code { 80 | font-family: pico8, monospace; 81 | line-height: 1.4; 82 | font-size: 11px; 83 | } 84 | 85 | .pdf { 86 | font-family: pico8, monospace; 87 | font-size: 12px; 88 | padding: 5px; 89 | width: 180px; 90 | height: 80px; 91 | line-height: 1.4; 92 | background-color: white; 93 | position: absolute; 94 | right: 10px; 95 | top: 10px; 96 | } 97 | 98 | pre,p { 99 | padding-left:1mm; 100 | } 101 | p { 102 | font-size: 11px; 103 | } 104 | 105 | @media print { 106 | .pdf { 107 | display: none; 108 | } 109 | } 110 | 111 | .musicoverlay { 112 | display: block; 113 | font-weight: bolder; 114 | font-face: monospace; 115 | font-size: 24px; 116 | background-color: #ddd; 117 | position: absolute; 118 | } 119 | .ov_effect { 120 | top: 2px; 121 | left: 157px; 122 | width: 83px; 123 | } 124 | .ov_instrument { 125 | top: 2px; 126 | left: 2px; 127 | width: 140px; 128 | } 129 | .ov_tone { 130 | top: 31px; 131 | left: 2px; 132 | width: 70px; 133 | } 134 | .ov_octave { 135 | top: 67px; 136 | left: 3px; 137 | width: 95px; 138 | } 139 | .ov_volume { 140 | top: 67px; 141 | left: 101px; 142 | width: 110px; 143 | } 144 | 145 | -------------------------------------------------------------------------------- /index_en.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | pico-8 cheatsheet 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |

15 | PICO-8 Cheatsheet 16 |

17 |
18 |
19 |
20 |

Commandline

21 |
 22 | HELP
 23 | SAVE GAME.P8
 24 | LOAD GAME.P8
 25 | RUN
 26 | SPLORE
 27 | 
28 |
29 | 30 |
31 | 32 |

Variables & Types

33 |
A=nil
 34 | X=23
 35 | local S="TEXT"
 36 | T={name="Joe", age="32"}
 37 | 
38 |
39 |
40 | 41 |

Operators

42 |
+ - * / ^ %
 43 | < > <= >= ~= ==
 44 | #list  "A".."B"
 45 | and or not
 46 | 
47 |
48 | 49 |
50 | 51 |

Functions

52 |
FUNCTION ADD(a,b)
 53 |  RETURN A+B
 54 | END
55 |
56 | 57 |
58 | 59 |

If-Statement

60 |
IF (X  < 33) THEN
 61 |  PRINT("HALLO")
 62 | else
 63 |  print("hey")
 64 | END
65 |
66 | 67 |
68 |

Loops

69 |
--UP
 70 | FOR I = 1,10 DO
 71 |  PRINT(I)
 72 | END
 73 | 
 74 | --DOWN
 75 | FOR A=10,0,-2 DO
 76 |  PRINT(A)
 77 | END
 78 | 
 79 | --ARRAY
 80 | FOR S IN ALL(SHIPS) DO
 81 |  PRINT(S.NAME)
 82 | END
 83 | 
 84 | --Table
 85 | FOR K,V IN PAIRS(M) DO
 86 |  PRINT("K:"..K..",V:"..V)
 87 | END
88 | 89 | 90 | 91 |
92 |
93 |

Tables

94 |
t={a="x",b=1}
 95 | add(t, v)
 96 | del(t, v)
 97 | t={1,2,3,4}
 98 | print(t[1]) --1-based!! 
99 |
100 |
101 | 102 | 103 |
104 |
105 |

Special callbacks

106 |
_init() _update() _draw()
107 |
108 |
109 |

Sprites

110 |
spr(n, x, y, [w, h],
111 |   [flip_x], [flip_y])
112 | sspr(sx, sy, sw, sh,
113 |   dx, dy, [dw, dh],
114 |   [flip_x], [flip_y])
115 |
116 |
117 |

Colors

118 | 119 |
120 |
121 |
122 |

Pixel

123 |
pset(x, y, [c])
124 | pget(x,y)
125 | 126 |
127 |
128 |

Shapes

129 |
rect(x0,y0,x1,y1, [col])
130 | rectfill(x0,y0,x1,y1,[c])
131 | circ(x, y, r, [c])
132 | circfill(x, y, r, [c])
133 | line(x0, y0, x1, y1, [c])
134 |
135 |
136 |

Screen

137 |
cls()
138 | camera([x, y])
139 | clip([x, y, w, h])
140 | 141 | 142 |
143 |
144 |

Map

145 |
mget(x, y)
146 | mset(x, y, v)
147 | map(map_x, map_y,
148 |   screen_x, screen_y,
149 |   width, height, [layer])
150 | 151 |
152 | 153 | 154 | 155 | 156 |
157 | 158 |
159 |
160 |

Controls

161 |
162 | 163 | 164 |
165 |

166 | Player 1: 167 |
  ⬅︎⬆︎⬇︎➡︎ Y,X/C,V/N,M 168 |
Player 2: 169 |
  ASDF, LSHIFT, A 170 |
171 |

172 |
btn([i, [p]])
173 | btnp([i, [p]]) 
174 |
175 | 176 | 177 |
178 |

Sound

179 |
sfx(n, [chan, offset])
180 | music([n, [fade, mask]])
181 |
182 |
183 |

Tracker

184 |
185 | 186 |
187 |
0 none
188 | 1 slide
189 | 2 vibrato
190 | 3 drop (drum)
191 | 4 fade in
192 | 5 fade out
193 | 6 fast arpeggio
194 | 7 slow arpeggio
195 |
196 |
197 |

Math

198 |
abs(x),atan2(dx, dy),
199 | cos(x),sin(x),
200 | flr(x),max(x,y),min(x,y),
201 | rnd(x),sgn(x),sqrt(x)
202 |
203 | 204 |
205 |

Shortcuts

Common: 206 |
 Save: CTRL+S 207 |
 Change Mode: ESC 208 |
 Restart cart: CTRL+R 209 |
Editor 210 |
 Undo:CTRL+Z 211 |
 Redo:CTRL+Y 212 |
 Search:CTRL+F 213 |
 Search-Next:CTRL+G 214 |
 Next Function:Alt+⬆︎⬇︎ 215 |
216 | 217 |
218 |
219 | Pico-8 Cheatsheet. Version 2.1(en). 220 | Collected by @ztiromoritz. 221 | Font: Joseph White. 222 | TTF by RhythmLynx. 223 | Inspired by @neko250/pico-8 api and @obone/picozine-3. 224 |
225 |
226 |
227 |
228 |
229 | German Version 230 |
231 | French Version 232 |
233 | PDF (DE) 234 |
235 | PDF (EN) 236 |
237 | PDF (FR) 238 |
239 | 240 | 241 | 242 | 243 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | pico-8 cheatsheet - Das Wichtigste - Version 2.1 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |

15 | PICO-8 SPICKZETTEL 16 |

17 |
18 |
19 |
20 |

Kommandozeile

21 |
 22 | HELP
 23 | SAVE GAME.P8
 24 | LOAD GAME.P8
 25 | RUN
 26 | SPLORE
 27 | 
28 |
29 | 30 |
31 | 32 |

Variablen & Typen

33 |
A=nil
 34 | X=23
 35 | S="TEXT"
 36 | T={ name="Moritz",
 37 |     loc="Dortmund"}
 38 | 
39 |
40 |
41 | 42 |

Operatoren

43 |
+ - * / ^ %
 44 | < > <= >= ~= ==
 45 | #list  "A".."B"
 46 | and or not
 47 | 
48 |
49 | 50 |
51 | 52 |

Funktionen

53 |
FUNCTION ADD(a,b)
 54 |  RETURN A+B
 55 | END
56 |
57 | 58 |
59 | 60 |

If-Anweisungen

61 |
IF (X  < 33) THEN
 62 |  PRINT("HALLO")
 63 | else
 64 |  print("hey")
 65 | END
66 |
67 | 68 |
69 |

Schleifen

70 |
--RAUF
 71 | FOR I = 1,10 DO
 72 |  PRINT(I)
 73 | END
 74 | 
 75 | --RUNTER
 76 | FOR A=10,0,-2 DO
 77 |  PRINT(A)
 78 | END
 79 | 
 80 | --ARRAY
 81 | FOR S IN ALL(SHIPS) DO
 82 |  PRINT(S.NAME)
 83 | END
 84 | 
 85 | --TABELLE
 86 | FOR K,V IN PAIRS(M) DO
 87 |  PRINT("K:"..K..",V:"..V)
 88 | END
89 | 90 | 91 | 92 |
93 |
94 |

Tabellen

95 |
t={a="x",b=1}
 96 | add(t, v)
 97 | del(t, v)
 98 | t={1,2,3,4}
 99 | print(t[1]) --1-basiert!! 
100 |
101 |
102 | 103 | 104 |
105 |
106 |

Sonderfunktionen

107 |
_init() _update() _draw()
108 |
109 | 110 |
111 |

Sprites

112 |
spr(n, x, y, [w, h],
113 |   [flip_x], [flip_y])
114 | sspr(sx, sy, sw, sh,
115 |   dx, dy, [dw, dh],
116 |   [flip_x], [flip_y])
117 |
118 | 119 |
120 |

Farben

121 | 122 |
123 |
124 |
125 |

Pixel

126 |
pset(x, y, [c])
127 | pget(x,y)
128 | 129 |
130 |
131 |

Formen

132 |
rect(x0,y0,x1,y1, [col])
133 | rectfill(x0,y0,x1,y1,[c])
134 | circ(x, y, r, [c])
135 | circfill(x, y, r, [c])
136 | line(x0, y0, x1, y1, [c])
137 |
138 |
139 |

Screen

140 |
cls()
141 | camera([x, y])
142 | clip([x, y, w, h])
143 | 144 | 145 |
146 |
147 |

Map

148 |
mget(x, y)
149 | mset(x, y, v)
150 | map(map_x, map_y,
151 |   screen_x, screen_y,
152 |   width, height, [layer])
153 | 154 |
155 | 156 | 157 | 158 | 159 |
160 | 161 |
162 |
163 |

Eingabe

164 |
165 | 166 | 167 |
168 |

169 | Player 1: 170 |
  ⬅︎⬆︎⬇︎➡︎ C,V bzw. N,M 171 |
Player 2: 172 |
  ASDF, LSHIFT, A 173 |
174 |

175 |
btn([i, [p]])
176 | btnp([i, [p]]) 
177 |
178 | 179 | 180 |
181 |

Sound

182 |
sfx(n, [chan, offset])
183 | music([n, [fade, mask]])
184 |
185 |
186 |

Tracker

187 |
188 | 189 |
190 |
0 none
191 | 1 slide
192 | 2 vibrato
193 | 3 drop (drum)
194 | 4 fade in
195 | 5 fade out
196 | 6 fast arpeggio
197 | 7 slow arpeggio
198 |
199 |
200 |

Mathe

201 |
abs(x),atan2(dx, dy),
202 | cos(x),sin(x),
203 | flr(x),max(x,y),min(x,y),
204 | rnd(x),sgn(x),sqrt(x)
205 |
206 | 207 |
208 |

Tastenkürzel

209 | Allgemein: 210 |
 Speichern: CTRL+S 211 |
 Modus wechseln: ESC 212 |
 Neustarten: CTRL+R 213 |
Editor: 214 |
 Undo:CTRL+Z 215 |
 Redo:CTRL+Y 216 |
 Suchen:CTRL+F 217 |
 Weitersuchen:CTRL+G 218 |
 Nächste Function:Alt+⬆︎⬇ 219 |
220 | 221 |
222 |
223 | German Pico-8 Cheatsheet. Version 2.1 Zusammengestellt von @ztiromoritz. Font von Joseph White. 224 | TTF von RhythmLynx. Spickzettel ist inspiriert von @neko250/pico-8 api und @obone/picozine-3. 225 |
226 |
227 |
228 |
229 |
230 | English Version 231 |
232 | French Version 233 |
234 | PDF (DE) 235 |
236 | PDF (EN) 237 |
238 | PDF (FR) 239 |
240 | 241 | 242 | 243 | 244 | -------------------------------------------------------------------------------- /index_fr.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Antishèches Pico-8 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 |

15 | Antisheches PICO-8 16 |

17 |
18 |
19 |
20 |

Ligne de commande

21 |
 22 | HELP
 23 | SAVE GAME.P8
 24 | LOAD GAME.P8
 25 | RUN
 26 | SPLORE
 27 | 
28 |
29 | 30 |
31 | 32 |

Variables & Types

33 |
A=nil
 34 | X=23
 35 | local S="TEXT"
 36 | T={name="Joe", age="32"}
 37 | 
38 |
39 |
40 | 41 |

Opérateurs

42 |
+ - * / ^ %
 43 | < > <= >= ~= ==
 44 | #list  "A".."B"
 45 | and or not
 46 | 
47 |
48 | 49 |
50 | 51 |

Fonctions

52 |
FUNCTION ADD(a,b)
 53 |  RETURN A+B
 54 | END
55 |
56 | 57 |
58 | 59 |

Bloc If

60 |
IF (X  < 33) THEN
 61 |  PRINT("HALLO")
 62 | else
 63 |  print("hey")
 64 | END
65 |
66 | 67 |
68 |

Boucles

69 |
--Incrementer
 70 | FOR I = 1,10 DO
 71 |  PRINT(I)
 72 | END
 73 | 
 74 | --Decrementer
 75 | FOR A=10,0,-2 DO
 76 |  PRINT(A)
 77 | END
 78 | 
 79 | --Collection
 80 | FOR S IN ALL(SHIPS) DO
 81 |  PRINT(S.NAME)
 82 | END
 83 | 
 84 | --Table
 85 | FOR K,V IN PAIRS(M) DO
 86 |  PRINT("K:"..K..",V:"..V)
 87 | END
88 | 89 | 90 | 91 |
92 |
93 |

Tableaux

94 |
t={a="x",b=1}
 95 | add(t, v)
 96 | del(t, v)
 97 | t={1,2,3,4}
 98 | print(t[1]) --Commence A 1!
99 |
100 |
101 | 102 | 103 |
104 |
105 |

Fonctions spéciales

106 |
_init() _update() _draw()
107 |
108 |
109 |

Sprites

110 |
spr(n, x, y, [w, h],
111 |   [flip_x], [flip_y])
112 | sspr(sx, sy, sw, sh,
113 |   dx, dy, [dw, dh],
114 |   [flip_x], [flip_y])
115 |
116 |
117 |

Couleurs

118 | 119 |
120 |
121 |
122 |

Pixel

123 |
pset(x, y, [c])
124 | pget(x,y)
125 | 126 |
127 |
128 |

Formes

129 |
rect(x0,y0,x1,y1, [col])
130 | rectfill(x0,y0,x1,y1,[c])
131 | circ(x, y, r, [c])
132 | circfill(x, y, r, [c])
133 | line(x0, y0, x1, y1, [c])
134 |
135 |
136 |

Écran

137 |
cls()
138 | camera([x, y])
139 | clip([x, y, w, h])
140 | 141 | 142 |
143 |
144 |

Tilemap

145 |
mget(x, y)
146 | mset(x, y, v)
147 | map(map_x, map_y,
148 |   screen_x, screen_y,
149 |   width, height, [layer])
150 | 151 |
152 | 153 | 154 | 155 | 156 |
157 | 158 |
159 |
160 |

Contrôles

161 |
162 | 163 | 164 |
165 |

166 | Joueur 1: 167 |
  ⬅︎⬆︎⬇︎➡︎ Y,X/C,V/N,M 168 |
Joueur 2: 169 |
  ASDF, LSHIFT, A 170 |
171 |

172 |
btn([i, [p]])
173 | btnp([i, [p]]) 
174 |
175 | 176 | 177 |
178 |

Son

179 |
sfx(n, [chan, offset])
180 | music([n, [fade, mask]])
181 |
182 |
183 |

Musique

184 |
185 |
effet
186 |
note
187 | 188 |
189 |
0 aucun
190 | 1 glissando
191 | 2 vibrato
192 | 3 percussion
193 | 4 fondu ouverture
194 | 5 fondu fermeture
195 | 6 arpeggio rapide
196 | 7 arpeggio lent
197 |
198 |
199 |

Maths

200 |
abs(x),atan2(dx, dy),
201 | cos(x),sin(x),
202 | flr(x),max(x,y),min(x,y),
203 | rnd(x),sgn(x),sqrt(x)
204 |
205 | 206 |
207 |

Raccourcis

Communs: 208 |
 Sauver: CTRL+S 209 |
 Changer mode: ESC 210 |
 Relancer jeu: CTRL+R 211 |
Éditeur: 212 |
 Annuler: CTRL+Z 213 |
 Rétablir: CTRL+Y 214 |
 Chercher: CTRL+F 215 |
 Chercher suiv.: CTRL+G 216 |
 Fonction suiv.: Alt+⬆︎⬇︎ 217 |
218 | 219 |
220 |
221 | Pico-8 Cheatsheet. Version 2.1(fr). 222 | Collected by @ztiromoritz. 223 | French Translation by @gozilu. 224 | Font: Joseph White. 225 | TTF by RhythmLynx. 226 | Inspired by @neko250/pico-8 api and @obone/picozine-3. 227 |
228 |
229 |
230 |
231 |
232 | Version Allemande 233 |
234 | Version Anglaise 235 |
236 | PDF (DE) 237 |
238 | PDF (EN) 239 |
240 | PDF (FR) 241 |
242 | 243 | 244 | 245 | 246 | -------------------------------------------------------------------------------- /tracker.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | 22 | 44 | 46 | 47 | 49 | image/svg+xml 50 | 52 | 53 | 54 | 55 | 56 | 61 | 108 | 114 | tone 125 | 131 | instrument 142 | 148 | octave 159 | volume 170 | 176 | effect 187 | 193 | 194 | 195 | -------------------------------------------------------------------------------- /controls.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 21 | 43 | 45 | 46 | 48 | image/svg+xml 49 | 51 | 52 | 53 | 54 | 55 | 60 | 76 | 93 | 110 | 127 | 2 138 | 3 149 | 0 160 | 1 171 | 180 | 189 | 4 200 | 5 211 | 212 | 213 | --------------------------------------------------------------------------------