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


StatusReleased
CategoryAssets
Rating
Rated 5.0 out of 5 stars
(36 total ratings)
AuthorMattz Art
GenreAdventure
Tags2D, 32x32, Animals, Animation, Cats, Cozy, Cute, pet, Pixel Art
ContentNo generative AI was used

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.

(1 edit)

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

(+1)

This is fantastic! What is the resolution of the kitty so I can properly format my game?

(1 edit)

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!»

(+1)

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

(+1)

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!

(+1)

Just out of curiosity... what is included in the full version?

(+1)

Only in FULL_Cat 2D Pixel Art/Sprites: ATTACK 2.png  
Only in FULL_Cat 2D Pixel Art/Sprites: BOWL.png
Only in FULL_Cat 2D Pixel Art/Sprites: CLIMB.png
Only in FULL_Cat 2D Pixel Art/Sprites: DEATH.png
Only in FULL_Cat 2D Pixel Art/Sprites: EAT.png
Only in FULL_Cat 2D Pixel Art/Sprites: LICK.png
Only in FULL_Cat 2D Pixel Art/Sprites: SCARE.png
Only in FULL_Cat 2D Pixel Art/Sprites: SLEEP.png
Only in FULL_Cat 2D Pixel Art/Sprites: SLIDE.png
Only in FULL_Cat 2D Pixel Art/Sprites: WAKING UP.png
(-1)

fantastic A+

Pixel art of an orange and white cat sleeping on a reflective surface with Zs above its head.Pixel art cat character climbing between two dark platforms against a gray background