
Cat 2D Pixel Art
A downloadable asset pack
Download NowName your own price
Cat: 14 animations!
- Idle - 8 frames
- Walk - 12 frames
- Run - 8 frames
- Attack 1 - 8 frames
- Attack 2 - 9 frames
- Scare - 11 frames
- Jump - 3 frames
- Hurt - 4 frames
- Lick - 15 frames
- Sleep - 8 frames
- Wall Slide - 3 frames
- Climb - 9 frames
- Eat - 7 frames
- Death - 9 frames
Sprite size: 32x32 px.
Canvas size: 80x64 px.

- You can use this asset in any game project, personal or commercial.
- DO NOT resell or redistribute AS A GAME ASSET, it has to be part of a project.
- Credit is not required but it is appreciated.
- Modify to suit your needs.
- You are NOT allowed to turn any of my assets to an NFT.
Your support helps in the development of this asset and all future assets of this series.
Click here and rate this asset!
- E-mail: mattz.pixel@gmail.com
- Discord: mattz_21
Download
Download NowName your own price
Click download now to get access to the following files:
FREE_Cat 2D Pixel Art.zip 67 kB
FULL_Cat 2D Pixel Art.zip 92 kB
if you pay $3 USD or more






Comments
Log in with itch.io to leave a comment.
Hi, loved this. How much do you charge to create a custom sprite of a tuxedo cat for me? I need it for a project.
Love this very much! Would you consider making away/toward camera versions of the walking animation?
thanks! cute cat
Thank you for this asset!
I used it in my first indie game Teckel Adventure. Really helped during development.
Steam page: https://store.steampowered.com/app/4512740/Teckel_Adventure/
im having a bit of a problem with it: I am trying to use it in a game im making with pygame-ce, my code is:
import pygame
pygame.init()
# Screen setup
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Cat Cruise: The Quest for Catnip")
# Colors
SKY_BLUE = (135, 206, 250)
PLATFORM_COLOR = (139, 69, 19)
CATNIP_COLOR = (124, 252, 0)
# Clock
clock = pygame.time.Clock()
FPS = 60
# Load and scale sprite sheet frames
def load_frames(sheet, frame_width, frame_height, num_frames, scale_to):
frames = []
for i in range(num_frames):
frame = sheet.subsurface(pygame.Rect(i * frame_width, 0, frame_width, frame_height))
scaled = pygame.transform.scale(frame, scale_to)
frames.append(scaled)
return frames
sprite_sheet = pygame.image.load("RUN.png").convert_alpha()
cat_frames = load_frames(sprite_sheet, 32, 32, 8, (64, 64))
# Player setup
player_width, player_height = 64, 64
player_x, player_y = 100, HEIGHT - player_height - 100
player_vel_x = 0
player_vel_y = 0
player_speed = 5
jump_strength = 15
gravity = 0.8
on_ground = False
# Animation
frame_index = 0
frame_timer = 0
frame_speed = 5
moving_left = False
moving_right = False
# Platforms
platforms = [
pygame.Rect(0, HEIGHT - 40, WIDTH, 40),
pygame.Rect(200, 450, 150, 20),
pygame.Rect(400, 350, 150, 20),
pygame.Rect(600, 250, 150, 20),
]
# Catnip goal
catnip = pygame.Rect(700, 200, 30, 30)
# Game loop
running = True
while running:
clock.tick(FPS)
screen.fill(SKY_BLUE)
# Events
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Movement input
keys = pygame.key.get_pressed()
player_vel_x = 0
moving_left = keys[pygame.K_LEFT]
moving_right = keys[pygame.K_RIGHT]
if moving_left:
player_vel_x = -player_speed
if moving_right:
player_vel_x = player_speed
if keys[pygame.K_SPACE] and on_ground:
player_vel_y = -jump_strength
on_ground = False
# Apply gravity
player_vel_y += gravity
# Move player
player_x += player_vel_x
player_y += player_vel_y
player_rect = pygame.Rect(player_x, player_y, player_width, player_height)
# Collision detection
on_ground = False
for platform in platforms:
if player_rect.colliderect(platform):
if player_vel_y > 0:
player_y = platform.top - player_height
player_vel_y = 0
on_ground = True
# Win condition
if player_rect.colliderect(catnip):
print("YOU FOUND THE CATNIP! 🐱🌿")
running = False
# Animation update
if moving_left or moving_right:
frame_timer += 1
if frame_timer >= frame_speed:
frame_index = (frame_index + 1) % len(cat_frames)
frame_timer = 0
else:
frame_index = 0 # Idle frame
# Draw platforms
for platform in platforms:
pygame.draw.rect(screen, PLATFORM_COLOR, platform)
# Draw catnip
pygame.draw.rect(screen, CATNIP_COLOR, catnip)
# Draw player sprite
current_frame = cat_frames[frame_index]
if moving_left:
current_frame = pygame.transform.flip(current_frame, True, False)
screen.blit(current_frame, (player_x, player_y))
# Update display
pygame.display.flip()
pygame.quit() and im using the RUN animation.
So, an issue I am having is the actual frames of the file are not 32x32 pixels as I had expected (should have checked), but as a result my project is using a scaled version of the cat sprite. I think you have run into the same issue. I asked Claude about your issue (since it can access the sprite sheet in my project) and it seems you did the same thing I first did see its output:
I checked the actual sprite sheet (RUN.png in reference/FULL_Cat 2D_Pixel_Art/Sprites/) rather than guessing. Here's what I found and why their code breaks:
The sheet is 640×64 px with 8 frames, so each frame cell is 80×64 px — not 32×32.
Their load_frames call:
cat_frames = load_frames(sprite_sheet, 32, 32, 8, (64, 64))
uses frame_width=32, frame_height=32. With those values, subsurface only walks the first 32*8 = 256 px of the 640px-wide sheet (leaving the last 3 frames' worth of image untouched), and each slice only grabs the top 32 rows of a 64px-tall cell. Since the actual cat artwork in each 80×64 cell sits roughly at x:[20–63], y:[23–47] (I measured the pixel bounding box directly), a 32×32 window starting at multiples of 32 cuts straight through the middle of each cat — so frames come out as half-cats, mostly blank/transparent, or with the wrong cat spliced next to a fragment of the next one. That's almost certainly the "not working" symptom (garbled, clipped, or invisible sprite).
Fix:
cat_frames = load_frames(sprite_sheet, 80, 64, 8, (64, 64))
num_frames=8 was already correct — just the width/height per frame was wrong. Everything else in their loop (subsurface, scale, flip for direction) is fine once the slice dimensions match the sheet.
Hi Mattz! i add u in discord tell me if u are interested in make the enemies of my project game, Thanks for ur attention, HonestlyStudios
This is fantastic! What is the resolution of the kitty so I can properly format my game?
Thank you! Already bought it! Looking forward for another cuties :D
As one of my followers said: «there are thousands of dragons and knights... We need casual thigs too!»
Really well-made animations, i just wish there was a small jump since the included jump is like a transition from the running animations so it looks kind of clunky when you jump while walking or idling
I've added a new jump animation that should work well when you're walking or idling.
Thanks for the feedback and sorry for the delay in replying.
Whoa this is REALLY well done, the cat is super cute and the animation is expressive. Well done! Would love to see more animations or even a dog version!
So cute!
Just out of curiosity... what is included in the full version?
fantastic A+