Animation_moverment #4

Open
opened 2024-02-18 14:43:38 +00:00 by gtillers · 0 comments

import pygame, sys
pygame.init()

WIDTH, HEIGHT = 400, 400

class Player(pygame.sprite.Sprite):
def init(self, pos_x, pos_y, x, y):
super().init()
#sprites
self.sprites = []
self.in_animation = False
self.sprites.append(pygame.image.load("Sprites/Idle/Player_right.png"))
self.sprites.append(pygame.image.load("Sprites/Running/Player_run_right_1.png"))
self.sprites.append(pygame.image.load("Sprites/Running/Player_run_right_2.png"))
self.sprites.append(pygame.image.load("Sprites/Running/Player_run_right_3.png"))
self.sprites.append(pygame.image.load("Sprites/Running/Player_run_right_4.png"))
self.sprites.append(pygame.image.load("Sprites/Running/Player_run_right_5.png"))
self.sprites.append(pygame.image.load("Sprites/Running/Player_run_right_6.png"))
self.current_sprite = 0
self.image = self.sprites[self.current_sprite]

    self.rect = self.image.get_rect()
    self.rect.topleft = [pos_x,pos_y]

#movement
    self.rect = pygame.Rect(x, y, 32, 32)
    self. x = int(x)
    self.y = int(y)
    self.velX = 0
    self.VelY = 0
    self.left_pressed = False
    self.right_pressed = False
    self.down_pressed = False
    self.up_pressed = False
    self.speed = 3

def animate(self):
self.in_animation = True

def update(self):
#animation
if self.in_animation == True:
self.current_sprite += 0.2

    if self.current_sprite >= len(self.sprites):
        self.current_sprite = 0
        self.in_animation = False 
    self.image = self.sprites[int(self.current_sprite)]

#sprite
self.velX = 0
self.velY = 0
if self.left_pressed and not self.right_pressed:
    self.velX = -self.speed
if self.right_pressed and not self.left_pressed:
    self.velX = self.speed
if self.up_pressed and not self.down_pressed:
    self.velY = -self.speed
if self.down_pressed and not self.up_pressed:
    self.velY = self.speed

self.x += self.velX
self.y += self.velY
self.rect = pygame.Rect(self.x, self.y, 32, 32)

screen = pygame.display.set_mode((1920, 1015))
pygame.display.set_caption("Game_name")

clock = pygame.time.Clock()

moving_sprites = pygame.sprite.Group()
player = Player(100, 100, WIDTH/2, HEIGHT/2)
moving_sprites.add(player)

while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()

if event.type == pygame.KEYDOWN:
    if event.key == pygame.K_a:
        player.left_pressed = True
    if event.key == pygame.K_d:
        player.right_pressed = True
        player.animate()
    if event.key == pygame.K_w:
        player.up_pressed = True
    if event.key == pygame.K_s:
        player.down_pressed = True

    

if event.type == pygame.KEYUP:
    if event.key == pygame.K_a:
        player.left_pressed = False
    if event.key == pygame.K_d:
        player.right_pressed = False
    if event.key == pygame.K_w:
        player.up_pressed = False
    if event.key == pygame.K_s:
        player.down_pressed = False



screen.fill("cyan")
moving_sprites.draw(screen)
pygame.display.flip()
dt = clock.tick(60)/1000
moving_sprites.update()
import pygame, sys pygame.init() WIDTH, HEIGHT = 400, 400 class Player(pygame.sprite.Sprite): def __init__(self, pos_x, pos_y, x, y): super().__init__() #sprites self.sprites = [] self.in_animation = False self.sprites.append(pygame.image.load("Sprites/Idle/Player_right.png")) self.sprites.append(pygame.image.load("Sprites/Running/Player_run_right_1.png")) self.sprites.append(pygame.image.load("Sprites/Running/Player_run_right_2.png")) self.sprites.append(pygame.image.load("Sprites/Running/Player_run_right_3.png")) self.sprites.append(pygame.image.load("Sprites/Running/Player_run_right_4.png")) self.sprites.append(pygame.image.load("Sprites/Running/Player_run_right_5.png")) self.sprites.append(pygame.image.load("Sprites/Running/Player_run_right_6.png")) self.current_sprite = 0 self.image = self.sprites[self.current_sprite] self.rect = self.image.get_rect() self.rect.topleft = [pos_x,pos_y] #movement self.rect = pygame.Rect(x, y, 32, 32) self. x = int(x) self.y = int(y) self.velX = 0 self.VelY = 0 self.left_pressed = False self.right_pressed = False self.down_pressed = False self.up_pressed = False self.speed = 3 def animate(self): self.in_animation = True def update(self): #animation if self.in_animation == True: self.current_sprite += 0.2 if self.current_sprite >= len(self.sprites): self.current_sprite = 0 self.in_animation = False self.image = self.sprites[int(self.current_sprite)] #sprite self.velX = 0 self.velY = 0 if self.left_pressed and not self.right_pressed: self.velX = -self.speed if self.right_pressed and not self.left_pressed: self.velX = self.speed if self.up_pressed and not self.down_pressed: self.velY = -self.speed if self.down_pressed and not self.up_pressed: self.velY = self.speed self.x += self.velX self.y += self.velY self.rect = pygame.Rect(self.x, self.y, 32, 32) screen = pygame.display.set_mode((1920, 1015)) pygame.display.set_caption("Game_name") clock = pygame.time.Clock() moving_sprites = pygame.sprite.Group() player = Player(100, 100, WIDTH/2, HEIGHT/2) moving_sprites.add(player) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_a: player.left_pressed = True if event.key == pygame.K_d: player.right_pressed = True player.animate() if event.key == pygame.K_w: player.up_pressed = True if event.key == pygame.K_s: player.down_pressed = True if event.type == pygame.KEYUP: if event.key == pygame.K_a: player.left_pressed = False if event.key == pygame.K_d: player.right_pressed = False if event.key == pygame.K_w: player.up_pressed = False if event.key == pygame.K_s: player.down_pressed = False screen.fill("cyan") moving_sprites.draw(screen) pygame.display.flip() dt = clock.tick(60)/1000 moving_sprites.update()
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: gtillers/Game#4
There is no content yet.