import pygame
pygame.init()
jan = pygame.display.set_mode((1000,563))
pygame.display.set_caption(‘Dino’)
walkRight = (pygame.image.load(‘Walk (1).png’), pygame.image.load(‘Walk (2).png’), pygame.image.load(‘Walk (3).png’), pygame.image.load(‘Walk (4).png’), pygame.image.load(‘Walk (5).png’), pygame.image.load(‘Walk (6).png’), pygame.image.load(‘Walk (7).png’), pygame.image.load(‘Walk (8).png’), pygame.image.load(‘Walk (9).png’), pygame.image.load(‘Walk (10).png’), pygame.image.load(‘Walk (11).png’), pygame.image.load(‘Walk (12).png’), pygame.image.load(‘Walk (13).png’), pygame.image.load(‘Walk (14).png’), pygame.image.load(‘Walk (15).png’))
walkLeft = (pygame.image.load(‘Walkleft (1).png’), pygame.image.load(‘Walkleft (2).png’), pygame.image.load(‘Walkleft (3).png’), pygame.image.load(‘Walkleft (4).png’), pygame.image.load(‘Walkleft (5).png’), pygame.image.load(‘Walkleft (6).png’), pygame.image.load(‘Walkleft (7).png’), pygame.image.load(‘Walkleft (8).png’), pygame.image.load(‘Walkleft (9).png’), pygame.image.load(‘Walkleft (10).png’), pygame.image.load(‘Walkleft (11).png’), pygame.image.load(‘Walkleft (12).png’), pygame.image.load(‘Walkleft (13).png’), pygame.image.load(‘Walkleft (14).png’), pygame.image.load(‘Walkleft (15).png’))
bg = pygame.image.load(‘bg.png’)
char = pygame.image.load(‘standing.png’)
chal = pygame.image.load(‘standingl.png’)
clock = pygame.time.Clock()
score = 0
class jogador(object):
def init(self, x, y, width, height):
self.x = x
self.y = y
self.width = width
self.height = height
self.vel = 5
self.isJump = False
self.jumpCount = 10
self.right = False
self.walkCount = 0
self.left = False
self.standing = True
self.hitbox = (self.x +20, self.y +2, 50, 83)
def draw(self,jan):
if self.walkCount + 1 >= 45:
self.walkCount = 0
if not(self.standing):
if self.right:
jan.blit(walkRight(self.walkCount//3), (self.x,self.y))
self.walkCount += 1
elif self.left:
jan.blit(walkLeft(self.walkCount//3), (self.x,self.y))
self.walkCount += 1
else:
if self.right:
jan.blit(char, (self.x, self.y))
else:
jan.blit(chal, (self.x, self.y))
self.hitbox = (self.x +20, self.y +2, 50, 83)
#pygame.draw.rect(jan, (255,0,0), self.hitbox, 2)
class proj(object):
def init(self, x, y, radius, color, facing):
self.x = x
self.y = y
self.radius = radius
self.color = color
self.facing = facing
self.vel = 8 * facing
def draw(self,jan):
pygame.draw.circle(jan, self.color, (self.x, self.y), self.radius)
class inimi(object):
walkRight = (pygame.image.load(‘R1E.png’), pygame.image.load(‘R2E.png’), pygame.image.load(‘R3E.png’), pygame.image.load(‘R4E.png’), pygame.image.load(‘R5E.png’), pygame.image.load(‘R6E.png’), pygame.image.load(‘R7E.png’), pygame.image.load(‘R8E.png’), pygame.image.load(‘R9E.png’), pygame.image.load(‘R10E.png’), pygame.image.load(‘R11E.png’))
walkLeft = (pygame.image.load(‘L1E.png’), pygame.image.load(‘L2E.png’), pygame.image.load(‘L3E.png’), pygame.image.load(‘L4E.png’), pygame.image.load(‘L5E.png’), pygame.image.load(‘L6E.png’), pygame.image.load(‘L7E.png’), pygame.image.load(‘L8E.png’), pygame.image.load(‘L9E.png’), pygame.image.load(‘L10E.png’), pygame.image.load(‘L11E.png’))
def __init__(self, x, y, width, height, end):
self.x = x
self.y = y
self.width = width
self.height = height
self.end = end
self.path = (self.x, self.end)
self.walkCount = 0
self.vel = 3
self.hitbox = (self.x + 17, self.y + 2, 31, 57)
self.health = 10
self.visible = True
def draw(self,jan):
self.move()
if self.visible:
if self.walkCount + 1 >= 33:
self.walkCount = 0
if self.vel > 0:
jan.blit(self.walkRight(self.walkCount //3), (self.x, self.y))
self.walkCount += 1
else:
jan.blit(self.walkLeft(self.walkCount //3), (self.x, self.y))
self.walkCount += 1
pygame.draw.rect(jan, (255,0,0), (self.hitbox(0), self.hitbox(1) - 20, 50, 10))
pygame.draw.rect(jan, (0,128,0), (self.hitbox(0), self.hitbox(1) - 20, 50 - (5 * (10 - self.health)), 10))
self.hitbox = (self.x + 17, self.y + 2, 31, 57)
#pygame.draw.rect(jan, (255,0,0), self.hitbox,2)
def move(self):
if self.vel > 0:
if self.x + self.vel < self.path(1):
self.x += self.vel
else:
self.vel = self.vel * -1
self.walkCount = 0
else:
if self.x - self.vel > self.path(0):
self.x += self.vel
else:
self.vel = self.vel * -1
self.walkCount = 0
def hit(self):
if self.health > 0:
self.visible -= 1
else:
self.visible = False
print ('hit')
def redrawGameWindow():
jan.blit(bg, (0,0))
cara.draw(jan)
text = font.render(‘Score: ‘ + str(score), 1, (0,0,0))
jan.blit(text, (50,10))
enimi.draw(jan)
for bala in balas:
bala.draw(jan)
pygame.display.update()
#mainloop
font = pygame.font.SysFont(‘comicsans’,30, True, True)
cara = jogador(200,450,64,64)
rod = True
enimi = inimi(200,480,64,64,650)
tiro = 0
balas = ()
while rod:
clock.tick(27)
if tiro > 0:
tiro += 1
if tiro > 3:
tiro = 0
for event in pygame.event.get():
if event.type == pygame.QUIT:
rod = False
for bala in balas:
#se estamos em cima do retangul ou embaixo
if bala.y - bala.radius < enimi.hitbox(1) + enimi.hitbox(3) and bala.y + bala.radius > enimi.hitbox(1):
#se tá do lado direito ou esquerdo
if bala.x + bala.radius > enimi.hitbox(0) and bala.x - bala.radius < enimi.hitbox(0) + enimi.hitbox(2):
enimi.hit()
score += 1
balas.pop(balas.index(bala))
if bala.x < 1000 and bala.x > 0:
bala.x += bala.vel
else:
balas.pop(balas.index(bala))
keys = pygame.key.get_pressed()
if keys(pygame.K_SPACE) and tiro == 0:
if cara.left:
facing = -1
else:
facing = 1
if len(balas) < 5:
balas.append(proj(round(cara.x + cara.width //2), round(cara.y + cara.height//1,5), 6, (0,0,0), facing ))
tiro = 1
#fazendo com que ele não saia da tela
if keys(pygame.K_LEFT) and cara.x > cara.vel:
cara.x -= cara.vel
cara.left = True
cara.right = False
cara.standing = False
elif keys(pygame.K_RIGHT) and cara.x < 1000 - cara.width - cara.vel:
cara.x += cara.vel
cara.right = True
cara.left = False
cara.standing = False
else:
cara.standing = True
cara.walkCount = 0
if not(cara.isJump):
if keys(pygame.K_UP):
cara.isJump = True
cara.right = False
cara.left = False
cara.walkCount = 0
else:
if cara.jumpCount >= -10:
neg = 1
if cara.jumpCount < 0:
neg = -1
cara.y -= (cara.jumpCount ** 2) * 0.5 * neg
cara.jumpCount -= 1
else:
cara.isJump = False
cara.jumpCount = 10
redrawGameWindow()
pygame.quit()