ADD A NEW ONE

This commit is contained in:
anna
2026-05-29 14:26:09 +08:00
parent 1eb52fbcff
commit c01c614c27
4 changed files with 143 additions and 65 deletions

BIN
images/dead8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

79
main.py
View File

@@ -1,71 +1,20 @@
import pgzrun import pgzrun
import random
#start WIDTH = 800
pgzrun.init() HEIGHT = 600
#background ship = Actor('dead8')
WIDTH , HEIGHT = 600,200 ship.x = 370
screen = pgzrun.display.set_mode((WIDTH,HEIGHT)) ship.y = 550
pgzrun.display.set_caption("dinosaur running")
#colour def update():
WHITE = (255,255,255) if keyboard.left:
BLACK = (0,0,0) ship.x = ship.x - 5
if keyboard.right:
ship.x = ship.x + 5
clock = pgzrun.time.Clock() def draw():
FPS = 60 screen.fill((80,0,70))
gravity = 0.8 ship.draw()
jump_vel = -16
is_jump = False
#dinosaur pgzrun.go() # Must be last line
dino_x = 50
dino_y = 140
dino_y_vel = 0
is_jump = False
#bairies
cactus_list = []
cactus_speed = 6
spawn_timer = 0
#game condition
game_over = False
score = 0
font = pgzrun.font.SysFont(None,30)
#main loop
running = True
while running:
clock.tick(FPS)
screen.fill(WHITE)
for event in pgzrun.event.get():
if event.type == pgzrun.QUIT:
running = False
if event.type == pgzrun.KEYKNOWN:
if event.key == pgzrun.K_SPACE and not is_jump and not game_over:
dino_y_vel = jump_vel
is_jump = True
#restart the game
if event.key == pgzrun.K_SPACE and game_over:
game_over = False
score = 0
cactus_list.clear()
dino_y = 140
dino_y_vel = 0
if not game_over:
dino_y_vel += gravity
dino_y += dino_y_vel
if dino_y >= 140:
dino_y = 140
dino_y_vel = 0
is_jump = False
#produce bairy
spawn_timer += 1
if spawn_timer > 80:
cactus_x = WIDTH

20
main1.py Normal file
View File

@@ -0,0 +1,20 @@
import pgzrun
WIDTH = 800
HEIGHT = 600
ship = Actor('dead8')
ship.x = 370
ship.y = 550
def update():
if keyboard.left:
ship.x = ship.x - 5
if keyboard.right:
ship.x = ship.x + 5
def draw():
screen.fill((80,0,70))
ship.draw()
pgzrun.go() # Must be last line

109
main_old.py Normal file
View File

@@ -0,0 +1,109 @@
import pgzrun
import random
#background
WIDTH = 600
HEIGHT = 200
def draw():
screen.fill((80,0,70))
#colour
WHITE = (255,255,255)
BLACK = (0,0,0)
clock = pgzrun.time.Clock()
FPS = 60
gravity = 0.8
jump_vel = -16
is_jump = False
#dinosaur
dino_x = 50
dino_y = 140
dino_y_vel = 0
is_jump = False
#bairies
cactus_list = []
cactus_speed = 6
spawn_timer = 0
#game condition
game_over = False
score = 0
font = pgzrun.font.SysFont(None,30)
#main loop
running = True
while running:
clock.tick(FPS)
screen.fill(WHITE)
for event in pgzrun.event.get():
if event.type == pgzrun.QUIT:
running = False
if event.type == pgzrun.KEYKNOWN:
if event.key == pgzrun.K_SPACE and not is_jump and not game_over:
dino_y_vel = jump_vel
is_jump = True
#restart the game
if event.key == pgzrun.K_SPACE and game_over:
game_over = False
score = 0
cactus_list.clear()
dino_y = 140
dino_y_vel = 0
if not game_over:
dino_y_vel += gravity
dino_y += dino_y_vel
if dino_y >= 140:
dino_y = 140
dino_y_vel = 0
is_jump = False
#produce bairy
spawn_timer += 1
if spawn_timer > 80:
cactus_x = WIDTH
cactus_y = 150
cactus_list.append([cactus_x , cactus_y])
spawn_timer = random.randint(40,80)
#movement of cactus+ score
for cactus in cactus_list:
cactus[0] -= cactus_speed
score += 0.1
cactus_list = [c for c in cactus_list if c[0] > -20]
#checking touches
dino_rect = pgzrun.Rect(dino_x , dino_y , 30,40)
for cactus in cactus_list:
cactus_rect = pgzrun.Rect(cactus[0],cactus[1],20,30)
if dino_rect.colliderect(cactus_list):
game_over = True
#draw dinosaur
pgzrun.draw.rect(screen,BLACK,(dino_x,dino_y,30,40))
#draw cactus
for c in cactus_list:
pgzrun.draw.rect(screen,BLACK,(c[0],c[1],20,30))
#draw horizon
pgzrun.draw.line(screen,BLACK,(0,180),(WIDTH,180),2)
#draw score
score_text = font.render(f"Score: {int(score)}" ,True,BLACK)
screen.blit(score_text,(450,20))
#notice of game over
if game_over:
over_text = font.render("Game Over! Press SPACE to restart", True,BLACK)
screen.blit(over_text,(120,80))
pgzrun.display.update()
pgzrun.go()