Browse Source

optimize ship sprite so thruster is visible at 45 degrees

Thomas B 1 month ago
parent
commit
e5eead6cbc
4 changed files with 32 additions and 21 deletions
  1. BIN
      data/rockshp_spr24.png
  2. BIN
      data/rockshp_spr24.xcf
  3. 28
    17
      src/main.c
  4. 4
    4
      src/sprites.c

BIN
data/rockshp_spr24.png View File


BIN
data/rockshp_spr24.xcf View File


+ 28
- 17
src/main.c View File

194
 
194
 
195
     if (++frame >= 60) {
195
     if (++frame >= 60) {
196
         frame = 0;
196
         frame = 0;
197
-        if (++state >= 10) {
197
+        if (++state >= 12) {
198
             state = 0;
198
             state = 0;
199
         }
199
         }
200
     }
200
     }
204
     int32_t score = 0;
204
     int32_t score = 0;
205
     obj_do(&spd_off_x, &spd_off_y, &score, hiwater, 1);
205
     obj_do(&spd_off_x, &spd_off_y, &score, hiwater, 1);
206
 
206
 
207
-    switch (state) {
208
-        case 0:
209
-        case 2:
210
-            spr_draw(SPR_SHIP, FLIP_NONE, -4, -42 - 1, 4, hiwater);
211
-            break;
207
+    /*
208
+     * 0: right
209
+     * 1: right shoot
210
+     * 2: right
211
+     * 3: top-right (add)
212
+     * 4: top
213
+     * 5: top-left
214
+     * 6: left
215
+     * 7: left shoot
216
+     * 8: left
217
+     * 9: top-left (add)
218
+     * 10: top
219
+     * 11: top-right
220
+     */
212
 
221
 
222
+    switch (state) {
213
         case 1:
223
         case 1:
214
-            spr_draw(SPR_SHIP, FLIP_NONE, -4, -42 - 1, 4, hiwater);
215
             if (frame == 0) {
224
             if (frame == 0) {
216
                 obj_add(SPR_SHOT, SHIP_OFF, -42, SHOT_SPEED, 0);
225
                 obj_add(SPR_SHOT, SHIP_OFF, -42, SHOT_SPEED, 0);
217
                 sample_play(SFX_SHOT);
226
                 sample_play(SFX_SHOT);
218
             }
227
             }
228
+        case 0:
229
+        case 2:
230
+            spr_draw(SPR_SHIP, FLIP_NONE, -4, -42 - 1, 4, hiwater);
219
             break;
231
             break;
220
 
232
 
221
         case 3:
233
         case 3:
222
             if (frame == 30) {
234
             if (frame == 30) {
223
                 obj_add(SPR_LIGHT, 42, -42, 0, 0);
235
                 obj_add(SPR_LIGHT, 42, -42, 0, 0);
224
             }
236
             }
225
-            spr_draw(SPR_SHIP, FLIP_NONE, -1, -42 + 4, 0, hiwater);
237
+        case 11:
238
+            spr_draw(SPR_SHIP, FLIP_NONE, 1, -42 - 1, 2, hiwater);
226
             break;
239
             break;
227
 
240
 
228
-        case 8:
241
+        case 9:
229
             if (frame == 30) {
242
             if (frame == 30) {
230
                 obj_add(SPR_DARK, -42, -42, 0, 0);
243
                 obj_add(SPR_DARK, -42, -42, 0, 0);
231
             }
244
             }
232
-            spr_draw(SPR_SHIP, FLIP_NONE, -1, -42 + 4, 0, hiwater);
245
+        case 5:
246
+            spr_draw(SPR_SHIP, FLIP_X, -1, -42 - 1, 2, hiwater);
233
             break;
247
             break;
234
 
248
 
235
         case 4:
249
         case 4:
236
-        case 9:
250
+        case 10:
237
             spr_draw(SPR_SHIP, FLIP_NONE, -1, -42 + 4, 0, hiwater);
251
             spr_draw(SPR_SHIP, FLIP_NONE, -1, -42 + 4, 0, hiwater);
238
             break;
252
             break;
239
 
253
 
240
-        case 5:
241
         case 7:
254
         case 7:
242
-            spr_draw(SPR_SHIP, FLIP_X, 4, -42, 4, hiwater);
243
-            break;
244
-
245
-        case 6:
246
-            spr_draw(SPR_SHIP, FLIP_X, 4, -42, 4, hiwater);
247
             if (frame == 0) {
255
             if (frame == 0) {
248
                 obj_add(SPR_SHOT, -SHIP_OFF, -42, -SHOT_SPEED, 0);
256
                 obj_add(SPR_SHOT, -SHIP_OFF, -42, -SHOT_SPEED, 0);
249
                 sample_play(SFX_SHOT);
257
                 sample_play(SFX_SHOT);
250
             }
258
             }
259
+        case 6:
260
+        case 8:
261
+            spr_draw(SPR_SHIP, FLIP_X, 4, -42, 4, hiwater);
251
             break;
262
             break;
252
     }
263
     }
253
 }
264
 }

+ 4
- 4
src/sprites.c View File

129
             break;
129
             break;
130
 
130
 
131
         case ROT_45:
131
         case ROT_45:
132
-            spr_draw(SPR_SHIP, FLIP_NONE, -6, 0, moving ? 3 : 2, hiwater);
132
+            spr_draw(SPR_SHIP, FLIP_NONE, 1, -1, moving ? 3 : 2, hiwater);
133
             break;
133
             break;
134
 
134
 
135
         case ROT_90:
135
         case ROT_90:
137
             break;
137
             break;
138
 
138
 
139
         case ROT_135:
139
         case ROT_135:
140
-            spr_draw(SPR_SHIP, FLIP_Y, -6, 0, moving ? 3 : 2, hiwater);
140
+            spr_draw(SPR_SHIP, FLIP_Y, 1, 1, moving ? 3 : 2, hiwater);
141
             break;
141
             break;
142
 
142
 
143
         case ROT_180:
143
         case ROT_180:
145
             break;
145
             break;
146
 
146
 
147
         case ROT_225:
147
         case ROT_225:
148
-            spr_draw(SPR_SHIP, FLIP_XY, 6, 0, moving ? 3 : 2, hiwater);
148
+            spr_draw(SPR_SHIP, FLIP_XY, -1, 1, moving ? 3 : 2, hiwater);
149
             break;
149
             break;
150
 
150
 
151
         case ROT_270:
151
         case ROT_270:
153
             break;
153
             break;
154
 
154
 
155
         case ROT_315:
155
         case ROT_315:
156
-            spr_draw(SPR_SHIP, FLIP_X, 6, 0, moving ? 3 : 2, hiwater);
156
+            spr_draw(SPR_SHIP, FLIP_X, -1, -1, moving ? 3 : 2, hiwater);
157
             break;
157
             break;
158
 
158
 
159
         default:
159
         default:

Loading…
Cancel
Save