diff options
| author | _Tradam <[email protected]> | 2021-12-16 19:22:26 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-12-16 19:22:26 -0500 |
| commit | 5954b9beb4d4a3b4f248d72d1851195f030558a8 (patch) | |
| tree | fecd8aa840a25afdb502915b0fdb4d03b7ed339a /samples/99_genre_mario | |
| parent | 2f845281f133849256b57bb08fd3e9ae57600784 (diff) | |
| parent | eaa29e72939f5edf61735ccbb73c36ee89369f65 (diff) | |
| download | dragonruby-game-toolkit-contrib-master.tar.gz dragonruby-game-toolkit-contrib-master.zip | |
Diffstat (limited to 'samples/99_genre_mario')
| -rw-r--r-- | samples/99_genre_mario/01_jumping/app/main.rb | 78 | ||||
| -rw-r--r-- | samples/99_genre_mario/01_jumping/replay.txt | 52 | ||||
| -rw-r--r-- | samples/99_genre_mario/01_jumping/sprites/square/red.png | bin | 0 -> 335 bytes | |||
| -rw-r--r-- | samples/99_genre_mario/02_jumping_and_collisions/app/main.rb | 281 | ||||
| -rw-r--r-- | samples/99_genre_mario/02_jumping_and_collisions/replay.txt | 159 | ||||
| -rw-r--r-- | samples/99_genre_mario/02_jumping_and_collisions/sprites/square/red.png | bin | 0 -> 335 bytes | |||
| -rw-r--r-- | samples/99_genre_mario/02_jumping_and_collisions/sprites/square/white.png | bin | 0 -> 325 bytes |
7 files changed, 570 insertions, 0 deletions
diff --git a/samples/99_genre_mario/01_jumping/app/main.rb b/samples/99_genre_mario/01_jumping/app/main.rb new file mode 100644 index 0000000..2d12a22 --- /dev/null +++ b/samples/99_genre_mario/01_jumping/app/main.rb @@ -0,0 +1,78 @@ +def tick args + defaults args + render args + input args + calc args +end + +def defaults args + args.state.player.x ||= args.grid.w.half + args.state.player.y ||= 0 + args.state.player.size ||= 100 + args.state.player.dy ||= 0 + args.state.player.action ||= :jumping + args.state.jump.power = 20 + args.state.jump.increase_frames = 10 + args.state.jump.increase_power = 1 + args.state.gravity = -1 +end + +def render args + args.outputs.sprites << { + x: args.state.player.x - + args.state.player.size.half, + y: args.state.player.y, + w: args.state.player.size, + h: args.state.player.size, + path: 'sprites/square/red.png' + } +end + +def input args + if args.inputs.keyboard.key_down.space + if args.state.player.action == :standing + args.state.player.action = :jumping + args.state.player.dy = args.state.jump.power + + # record when the action took place + current_frame = args.state.tick_count + args.state.player.action_at = current_frame + end + end + + # if the space bar is being held + if args.inputs.keyboard.key_held.space + # is the player jumping + is_jumping = args.state.player.action == :jumping + + # when was the jump performed + time_of_jump = args.state.player.action_at + + # how much time has passed since the jump + jump_elapsed_time = time_of_jump.elapsed_time + + # how much time is allowed for increasing power + time_allowed = args.state.jump.increase_frames + + # if the player is jumping + # and the elapsed time is less than + # the allowed time + if is_jumping && jump_elapsed_time < time_allowed + # increase the dy by the increase power + power_to_add = args.state.jump.increase_power + args.state.player.dy += power_to_add + end + end +end + +def calc args + if args.state.player.action == :jumping + args.state.player.y += args.state.player.dy + args.state.player.dy += args.state.gravity + end + + if args.state.player.y < 0 + args.state.player.y = 0 + args.state.player.action = :standing + end +end diff --git a/samples/99_genre_mario/01_jumping/replay.txt b/samples/99_genre_mario/01_jumping/replay.txt new file mode 100644 index 0000000..d56d585 --- /dev/null +++ b/samples/99_genre_mario/01_jumping/replay.txt @@ -0,0 +1,52 @@ +replay_version 2.0 +stopped_at 574 +seed 100 +recorded_at 2021-11-20 16:44:37 -0600 +[:mouse_button_up, 1, 0, 1, 1, 3] +[:key_down_raw, 32, 0, 2, 2, 89] +[:key_up_raw, 32, 0, 2, 3, 92] +[:key_down_raw, 32, 0, 2, 4, 193] +[:key_up_raw, 32, 0, 2, 5, 195] +[:key_down_raw, 32, 0, 2, 6, 258] +[:key_down_raw, 32, 0, 2, 7, 273] +[:key_down_raw, 32, 0, 2, 8, 275] +[:key_down_raw, 32, 0, 2, 9, 277] +[:key_down_raw, 32, 0, 2, 10, 279] +[:key_down_raw, 32, 0, 2, 11, 281] +[:key_down_raw, 32, 0, 2, 12, 283] +[:key_down_raw, 32, 0, 2, 13, 285] +[:key_down_raw, 32, 0, 2, 14, 287] +[:key_down_raw, 32, 0, 2, 15, 289] +[:key_down_raw, 32, 0, 2, 16, 291] +[:key_down_raw, 32, 0, 2, 17, 293] +[:key_down_raw, 32, 0, 2, 18, 295] +[:key_down_raw, 32, 0, 2, 19, 297] +[:key_down_raw, 32, 0, 2, 20, 299] +[:key_down_raw, 32, 0, 2, 21, 301] +[:key_down_raw, 32, 0, 2, 22, 303] +[:key_down_raw, 32, 0, 2, 23, 305] +[:key_down_raw, 32, 0, 2, 24, 307] +[:key_up_raw, 32, 0, 2, 25, 307] +[:key_down_raw, 32, 0, 2, 26, 336] +[:key_up_raw, 32, 0, 2, 27, 339] +[:key_down_raw, 32, 0, 2, 28, 389] +[:key_up_raw, 32, 0, 2, 29, 392] +[:key_down_raw, 32, 0, 2, 30, 444] +[:key_down_raw, 32, 0, 2, 31, 459] +[:key_down_raw, 32, 0, 2, 32, 461] +[:key_down_raw, 32, 0, 2, 33, 463] +[:key_down_raw, 32, 0, 2, 34, 465] +[:key_down_raw, 32, 0, 2, 35, 467] +[:key_down_raw, 32, 0, 2, 36, 469] +[:key_down_raw, 32, 0, 2, 37, 471] +[:key_down_raw, 32, 0, 2, 38, 473] +[:key_down_raw, 32, 0, 2, 39, 475] +[:key_down_raw, 32, 0, 2, 40, 477] +[:key_down_raw, 32, 0, 2, 41, 479] +[:key_down_raw, 32, 0, 2, 42, 481] +[:key_down_raw, 32, 0, 2, 43, 483] +[:key_down_raw, 32, 0, 2, 44, 485] +[:key_up_raw, 32, 0, 2, 45, 485] +[:key_down_raw, 96, 0, 2, 46, 509] +[:key_up_raw, 96, 0, 2, 47, 512] +[:key_down_raw, 13, 0, 2, 48, 574] diff --git a/samples/99_genre_mario/01_jumping/sprites/square/red.png b/samples/99_genre_mario/01_jumping/sprites/square/red.png Binary files differnew file mode 100644 index 0000000..a59443e --- /dev/null +++ b/samples/99_genre_mario/01_jumping/sprites/square/red.png diff --git a/samples/99_genre_mario/02_jumping_and_collisions/app/main.rb b/samples/99_genre_mario/02_jumping_and_collisions/app/main.rb new file mode 100644 index 0000000..52d9135 --- /dev/null +++ b/samples/99_genre_mario/02_jumping_and_collisions/app/main.rb @@ -0,0 +1,281 @@ +class Game + attr_gtk + + def tick + defaults + render + input + calc + end + + def defaults + return if state.tick_count != 0 + + player.x = 64 + player.y = 800 + player.size = 50 + player.dx = 0 + player.dy = 0 + player.action = :falling + + player.max_speed = 20 + player.jump_power = 15 + player.jump_air_time = 15 + player.jump_increase_power = 1 + + state.gravity = -1 + state.drag = 0.001 + state.tile_size = 64 + state.tiles ||= [ + { ordinal_x: 0, ordinal_y: 0 }, + { ordinal_x: 1, ordinal_y: 0 }, + { ordinal_x: 2, ordinal_y: 0 }, + { ordinal_x: 3, ordinal_y: 0 }, + { ordinal_x: 4, ordinal_y: 0 }, + { ordinal_x: 5, ordinal_y: 0 }, + { ordinal_x: 6, ordinal_y: 0 }, + { ordinal_x: 7, ordinal_y: 0 }, + { ordinal_x: 8, ordinal_y: 0 }, + { ordinal_x: 9, ordinal_y: 0 }, + { ordinal_x: 10, ordinal_y: 0 }, + { ordinal_x: 11, ordinal_y: 0 }, + { ordinal_x: 12, ordinal_y: 0 }, + + { ordinal_x: 9, ordinal_y: 3 }, + { ordinal_x: 10, ordinal_y: 3 }, + { ordinal_x: 11, ordinal_y: 3 }, + ] + + tiles.each do |t| + t.rect = { x: t.ordinal_x * 64, + y: t.ordinal_y * 64, + w: 64, + h: 64 } + end + end + + def render + render_player + render_tiles + # render_grid + end + + def input + input_jump + input_move + end + + def calc + calc_player_rect + calc_left + calc_right + calc_below + calc_above + calc_player_dy + calc_player_dx + calc_game_over + end + + def render_player + outputs.sprites << { + x: player.x, + y: player.y, + w: player.size, + h: player.size, + path: 'sprites/square/red.png' + } + end + + def render_tiles + outputs.sprites << state.tiles.map do |t| + t.merge path: 'sprites/square/white.png', + x: t.ordinal_x * 64, + y: t.ordinal_y * 64, + w: 64, + h: 64 + end + end + + def render_grid + if state.tick_count == 0 + outputs[:grid].background_color = [0, 0, 0, 0] + outputs[:grid].borders << available_brick_locations + outputs[:grid].labels << available_brick_locations.map do |b| + [ + b.merge(text: "#{b.ordinal_x},#{b.ordinal_y}", + x: b.x + 2, + y: b.y + 2, + size_enum: -3, + vertical_alignment_enum: 0, + blendmode_enum: 0), + b.merge(text: "#{b.x},#{b.y}", + x: b.x + 2, + y: b.y + 2 + 20, + size_enum: -3, + vertical_alignment_enum: 0, + blendmode_enum: 0) + ] + end + end + + outputs.sprites << { x: 0, y: 0, w: 1280, h: 720, path: :grid } + end + + def input_jump + if inputs.keyboard.key_down.space + player_jump + end + + if inputs.keyboard.key_held.space + player_jump_increase_air_time + end + end + + def input_move + if player.dx.abs < 20 + if inputs.keyboard.left + player.dx -= 2 + elsif inputs.keyboard.right + player.dx += 2 + end + end + end + + def calc_game_over + if player.y < -64 + player.x = 64 + player.y = 800 + player.dx = 0 + player.dy = 0 + end + end + + def calc_player_rect + player.rect = player_current_rect + player.next_rect = player_next_rect + player.prev_rect = player_prev_rect + end + + def calc_player_dx + player.dx = player_next_dx + player.x += player.dx + end + + def calc_player_dy + player.y += player.dy + player.dy = player_next_dy + end + + def calc_below + return unless player.dy < 0 + tiles_below = tiles_find { |t| t.rect.top <= player.prev_rect.y } + collision = tiles_find_colliding tiles_below, (player.rect.merge y: player.next_rect.y) + if collision + player.y = collision.rect.y + state.tile_size + player.dy = 0 + player.action = :standing + else + player.action = :falling + end + end + + def calc_left + return unless player.dx < 0 && player_next_dx < 0 + tiles_left = tiles_find { |t| t.rect.right <= player.prev_rect.left } + collision = tiles_find_colliding tiles_left, (player.rect.merge x: player.next_rect.x) + return unless collision + player.x = collision.rect.right + player.dx = 0 + end + + def calc_right + return unless player.dx > 0 && player_next_dx > 0 + tiles_right = tiles_find { |t| t.rect.left >= player.prev_rect.right } + collision = tiles_find_colliding tiles_right, (player.rect.merge x: player.next_rect.x) + return unless collision + player.x = collision.rect.left - player.rect.w + player.dx = 0 + end + + def calc_above + return unless player.dy > 0 + tiles_above = tiles_find { |t| t.rect.y >= player.prev_rect.y } + collision = tiles_find_colliding tiles_above, (player.rect.merge y: player.next_rect.y) + return unless collision + player.dy = 0 + player.y = collision.rect.bottom - player.rect.h + end + + def player_current_rect + { x: player.x, y: player.y, w: player.size, h: player.size } + end + + def available_brick_locations + (0..19).to_a + .product(0..11) + .map do |(ordinal_x, ordinal_y)| + { ordinal_x: ordinal_x, + ordinal_y: ordinal_y, + x: ordinal_x * 64, + y: ordinal_y * 64, + w: 64, + h: 64 } + end + end + + def player + state.player ||= args.state.new_entity :player + end + + def player_next_dy + player.dy + state.gravity + state.drag ** 2 * -1 + end + + def player_next_dx + player.dx * 0.8 + end + + def player_next_rect + player.rect.merge x: player.x + player_next_dx, + y: player.y + player_next_dy + end + + def player_prev_rect + player.rect.merge x: player.x - player.dx, + y: player.y - player.dy + end + + def player_jump + return if player.action != :standing + player.action = :jumping + player.dy = state.player.jump_power + current_frame = state.tick_count + player.action_at = current_frame + end + + def player_jump_increase_air_time + return if player.action != :jumping + return if player.action_at.elapsed_time >= player.jump_air_time + player.dy += player.jump_increase_power + end + + def tiles + state.tiles + end + + def tiles_find_colliding tiles, target + tiles.find { |t| t.rect.intersect_rect? target } + end + + def tiles_find &block + tiles.find_all(&block) + end +end + +def tick args + $game ||= Game.new + $game.args = args + $game.tick +end + +$gtk.reset diff --git a/samples/99_genre_mario/02_jumping_and_collisions/replay.txt b/samples/99_genre_mario/02_jumping_and_collisions/replay.txt new file mode 100644 index 0000000..17e610f --- /dev/null +++ b/samples/99_genre_mario/02_jumping_and_collisions/replay.txt @@ -0,0 +1,159 @@ +replay_version 2.0 +stopped_at 913 +seed 100 +recorded_at 2021-11-20 17:04:30 -0600 +[:mouse_move, 784, 90, 2, 1, 1] +[:mouse_button_up, 1, 0, 1, 2, 4] +[:mouse_move, 785, 90, 2, 3, 7] +[:key_down_raw, 1073741903, 0, 2, 4, 63] +[:key_down_raw, 1073741903, 0, 2, 5, 78] +[:key_down_raw, 1073741903, 0, 2, 6, 81] +[:key_down_raw, 1073741903, 0, 2, 7, 83] +[:key_down_raw, 1073741903, 0, 2, 8, 85] +[:key_down_raw, 1073741903, 0, 2, 9, 87] +[:key_down_raw, 1073741903, 0, 2, 10, 89] +[:key_down_raw, 1073741903, 0, 2, 11, 91] +[:key_down_raw, 1073741903, 0, 2, 12, 93] +[:key_down_raw, 1073741903, 0, 2, 13, 95] +[:key_down_raw, 1073741903, 0, 2, 14, 97] +[:key_down_raw, 1073741903, 0, 2, 15, 99] +[:key_down_raw, 1073741903, 0, 2, 16, 101] +[:key_down_raw, 1073741903, 0, 2, 17, 103] +[:key_down_raw, 1073741903, 0, 2, 18, 105] +[:key_down_raw, 1073741903, 0, 2, 19, 107] +[:key_down_raw, 1073741903, 0, 2, 20, 109] +[:key_down_raw, 1073741903, 0, 2, 21, 111] +[:key_down_raw, 1073741903, 0, 2, 22, 113] +[:key_down_raw, 1073741903, 0, 2, 23, 115] +[:key_down_raw, 1073741903, 0, 2, 24, 117] +[:key_down_raw, 1073741903, 0, 2, 25, 119] +[:key_down_raw, 1073741903, 0, 2, 26, 121] +[:key_up_raw, 1073741903, 0, 2, 27, 121] +[:key_down_raw, 1073741904, 0, 2, 28, 155] +[:key_up_raw, 1073741904, 0, 2, 29, 159] +[:key_down_raw, 32, 0, 2, 30, 170] +[:key_up_raw, 32, 0, 2, 31, 176] +[:key_down_raw, 1073741903, 0, 2, 32, 189] +[:key_up_raw, 1073741903, 0, 2, 33, 199] +[:key_down_raw, 1073741904, 0, 2, 34, 235] +[:key_up_raw, 1073741904, 0, 2, 35, 249] +[:key_down_raw, 32, 0, 2, 36, 258] +[:key_down_raw, 1073741903, 0, 2, 37, 262] +[:key_down_raw, 1073741903, 0, 2, 38, 277] +[:key_down_raw, 1073741903, 0, 2, 39, 279] +[:key_down_raw, 1073741903, 0, 2, 40, 281] +[:key_down_raw, 1073741903, 0, 2, 41, 283] +[:key_down_raw, 1073741903, 0, 2, 42, 285] +[:key_down_raw, 1073741903, 0, 2, 43, 287] +[:key_up_raw, 32, 0, 2, 44, 288] +[:key_down_raw, 1073741903, 0, 2, 45, 289] +[:key_up_raw, 1073741903, 0, 2, 46, 290] +[:key_down_raw, 1073741904, 0, 2, 47, 309] +[:key_down_raw, 32, 0, 2, 48, 320] +[:key_up_raw, 32, 0, 2, 49, 330] +[:key_down_raw, 32, 0, 2, 50, 335] +[:key_up_raw, 32, 0, 2, 51, 339] +[:key_up_raw, 1073741904, 0, 2, 52, 355] +[:key_down_raw, 1073741903, 0, 2, 53, 361] +[:key_down_raw, 1073741903, 0, 2, 54, 376] +[:key_down_raw, 1073741903, 0, 2, 55, 378] +[:key_down_raw, 1073741903, 0, 2, 56, 380] +[:key_down_raw, 1073741903, 0, 2, 57, 382] +[:key_down_raw, 1073741903, 0, 2, 58, 384] +[:key_down_raw, 1073741903, 0, 2, 59, 386] +[:key_down_raw, 1073741903, 0, 2, 60, 388] +[:key_down_raw, 1073741903, 0, 2, 61, 390] +[:key_down_raw, 1073741903, 0, 2, 62, 392] +[:key_down_raw, 1073741903, 0, 2, 63, 394] +[:key_down_raw, 1073741903, 0, 2, 64, 396] +[:key_down_raw, 1073741903, 0, 2, 65, 398] +[:key_down_raw, 1073741903, 0, 2, 66, 400] +[:key_down_raw, 1073741903, 0, 2, 67, 402] +[:key_up_raw, 1073741903, 0, 2, 68, 403] +[:key_down_raw, 32, 0, 2, 69, 408] +[:key_up_raw, 32, 0, 2, 70, 415] +[:key_down_raw, 32, 0, 2, 71, 435] +[:key_up_raw, 32, 0, 2, 72, 450] +[:key_down_raw, 32, 0, 2, 73, 461] +[:key_up_raw, 32, 0, 2, 74, 473] +[:key_down_raw, 1073741903, 0, 2, 75, 480] +[:key_up_raw, 1073741903, 0, 2, 76, 491] +[:key_down_raw, 32, 0, 2, 77, 495] +[:key_down_raw, 32, 0, 2, 78, 509] +[:key_down_raw, 32, 0, 2, 79, 511] +[:key_down_raw, 32, 0, 2, 80, 515] +[:key_down_raw, 32, 0, 2, 81, 515] +[:key_down_raw, 32, 0, 2, 82, 517] +[:key_up_raw, 32, 0, 2, 83, 519] +[:key_down_raw, 1073741903, 0, 2, 84, 525] +[:key_down_raw, 32, 0, 2, 85, 537] +[:key_up_raw, 1073741903, 0, 2, 86, 539] +[:key_up_raw, 32, 0, 2, 87, 549] +[:key_down_raw, 1073741904, 0, 2, 88, 567] +[:key_down_raw, 1073741904, 0, 2, 89, 582] +[:key_down_raw, 1073741904, 0, 2, 90, 584] +[:key_down_raw, 1073741904, 0, 2, 91, 586] +[:key_down_raw, 1073741904, 0, 2, 92, 588] +[:key_down_raw, 1073741904, 0, 2, 93, 591] +[:key_down_raw, 1073741904, 0, 2, 94, 593] +[:key_down_raw, 1073741904, 0, 2, 95, 594] +[:key_up_raw, 1073741904, 0, 2, 96, 595] +[:key_down_raw, 1073741904, 0, 2, 97, 623] +[:key_down_raw, 1073741904, 0, 2, 98, 640] +[:key_down_raw, 1073741904, 0, 2, 99, 640] +[:key_down_raw, 1073741904, 0, 2, 100, 642] +[:key_down_raw, 1073741904, 0, 2, 101, 645] +[:key_down_raw, 1073741904, 0, 2, 102, 647] +[:key_down_raw, 1073741904, 0, 2, 103, 649] +[:key_down_raw, 1073741904, 0, 2, 104, 651] +[:key_up_raw, 1073741904, 0, 2, 105, 652] +[:key_down_raw, 1073741903, 0, 2, 106, 683] +[:key_down_raw, 1073741903, 0, 2, 107, 698] +[:key_down_raw, 1073741903, 0, 2, 108, 700] +[:key_down_raw, 1073741903, 0, 2, 109, 702] +[:key_down_raw, 1073741903, 0, 2, 110, 704] +[:key_down_raw, 1073741903, 0, 2, 111, 706] +[:key_down_raw, 1073741903, 0, 2, 112, 708] +[:key_down_raw, 1073741903, 0, 2, 113, 710] +[:key_down_raw, 1073741903, 0, 2, 114, 712] +[:key_down_raw, 1073741903, 0, 2, 115, 714] +[:key_down_raw, 1073741903, 0, 2, 116, 716] +[:key_down_raw, 1073741903, 0, 2, 117, 718] +[:key_down_raw, 1073741903, 0, 2, 118, 720] +[:key_down_raw, 1073741903, 0, 2, 119, 722] +[:key_down_raw, 1073741903, 0, 2, 120, 724] +[:key_down_raw, 1073741903, 0, 2, 121, 726] +[:key_down_raw, 1073741903, 0, 2, 122, 728] +[:key_down_raw, 1073741903, 0, 2, 123, 730] +[:key_down_raw, 1073741903, 0, 2, 124, 732] +[:key_down_raw, 1073741903, 0, 2, 125, 734] +[:key_down_raw, 1073741903, 0, 2, 126, 736] +[:key_down_raw, 1073741903, 0, 2, 127, 738] +[:key_down_raw, 1073741903, 0, 2, 128, 740] +[:key_down_raw, 1073741903, 0, 2, 129, 742] +[:key_down_raw, 1073741903, 0, 2, 130, 744] +[:key_down_raw, 1073741903, 0, 2, 131, 746] +[:key_down_raw, 1073741903, 0, 2, 132, 748] +[:key_down_raw, 32, 0, 2, 133, 748] +[:key_down_raw, 32, 0, 2, 134, 763] +[:key_down_raw, 32, 0, 2, 135, 765] +[:key_down_raw, 32, 0, 2, 136, 767] +[:key_down_raw, 32, 0, 2, 137, 769] +[:key_down_raw, 32, 0, 2, 138, 771] +[:key_up_raw, 32, 0, 2, 139, 773] +[:key_down_raw, 1073741904, 0, 2, 140, 775] +[:key_up_raw, 1073741903, 0, 2, 141, 776] +[:key_down_raw, 1073741904, 0, 2, 142, 790] +[:key_down_raw, 1073741904, 0, 2, 143, 792] +[:key_down_raw, 1073741904, 0, 2, 144, 794] +[:key_down_raw, 1073741904, 0, 2, 145, 796] +[:key_down_raw, 1073741904, 0, 2, 146, 798] +[:key_down_raw, 1073741904, 0, 2, 147, 801] +[:key_down_raw, 1073741904, 0, 2, 148, 803] +[:key_down_raw, 1073741904, 0, 2, 149, 804] +[:key_down_raw, 1073741904, 0, 2, 150, 807] +[:key_down_raw, 1073741904, 0, 2, 151, 809] +[:key_up_raw, 1073741904, 0, 2, 152, 810] +[:key_down_raw, 96, 0, 2, 153, 854] +[:key_up_raw, 96, 0, 2, 154, 858] +[:key_down_raw, 13, 0, 2, 155, 913] diff --git a/samples/99_genre_mario/02_jumping_and_collisions/sprites/square/red.png b/samples/99_genre_mario/02_jumping_and_collisions/sprites/square/red.png Binary files differnew file mode 100644 index 0000000..a59443e --- /dev/null +++ b/samples/99_genre_mario/02_jumping_and_collisions/sprites/square/red.png diff --git a/samples/99_genre_mario/02_jumping_and_collisions/sprites/square/white.png b/samples/99_genre_mario/02_jumping_and_collisions/sprites/square/white.png Binary files differnew file mode 100644 index 0000000..7a233ea --- /dev/null +++ b/samples/99_genre_mario/02_jumping_and_collisions/sprites/square/white.png |
