python游戏代码大全可复制,python超简单小游戏代码

这篇具有很好参考价值的文章主要介绍了python游戏代码大全可复制,python超简单小游戏代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好,小编来为大家解答以下问题,python游戏编程入门游戏代码,python游戏代码大全可复制,现在让我们一起来看看吧!

游戏代码大全可复制,pygame,python,开发语言,人工智能

大家好,小编为大家解答简单的python小游戏代码的问题。很多人还不知道python简单的小游戏代码,现在让我们一起来看看吧!

游戏代码大全可复制,pygame,python,开发语言,人工智能

游戏代码大全可复制,pygame,python,开发语言,人工智能

大家好,我是小F~

经常听到有朋友说,学习编程是一件非常枯燥无味的事情python实现猴子跳台阶。其实,大家有没有认真想过,可能是我们的学习方法不对?

比方说,你有没有想过,可以通过打游戏来学编程?

今天我想跟大家分享30个Python小游戏,教你如何通过边打游戏边学编程!

相关文件及代码都已上传,公众号回复【游戏】即可获取python一级证书有用吗。

接下来就一起来看看吧~

1、飞机大战

游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import random
import pygame
from objects import Background, Player, Enemy, Bullet, Explosion, Fuel, \
                    Powerup, Button, Message, BlinkingText

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512

info = pygame.display.Info()
width = info.current_w
height = info.current_h

if width >= height:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME)
else:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME | pygame.SCALED | pygame.FULLSCREEN)

clock = pygame.time.Clock()
FPS = 60

# COLORS **********************************************************************

WHITE = (255, 255, 255)
BLUE = (30, 144,255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLACK = (0, 0, 20)

# IMAGES **********************************************************************

plane_img = pygame.image.load('Assets/plane.png')
logo_img = pygame.image.load('Assets/logo.png')
fighter_img = pygame.image.load('Assets/fighter.png')
clouds_img = pygame.image.load('Assets/clouds.png')
clouds_img = pygame.transform.scale(clouds_img, (WIDTH, 350))

home_img = pygame.image.load('Assets/Buttons/homeBtn.png')
replay_img = pygame.image.load('Assets/Buttons/replay.png')
sound_off_img = pygame.image.load("Assets/Buttons/soundOffBtn.png")
sound_on_img = pygame.image.load("Assets/Buttons/soundOnBtn.png")


# BUTTONS *********************************************************************

home_btn = Button(home_img, (24, 24), WIDTH // 4 - 18, HEIGHT//2 + 120)
replay_btn = Button(replay_img, (36,36), WIDTH // 2  - 18, HEIGHT//2 + 115)
sound_btn = Button(sound_on_img, (24, 24), WIDTH - WIDTH // 4 - 18, HEIGHT//2 + 120)


# FONTS ***********************************************************************

game_over_font = 'Fonts/ghostclan.ttf'
tap_to_play_font = 'Fonts/BubblegumSans-Regular.ttf'
score_font = 'Fonts/DalelandsUncialBold-82zA.ttf'
final_score_font = 'Fonts/DroneflyRegular-K78LA.ttf'

game_over_msg = Message(WIDTH//2, 230, 30, 'Game Over', game_over_font, WHITE, win)
score_msg = Message(WIDTH-50, 28, 30, '0', final_score_font, RED, win)
final_score_msg = Message(WIDTH//2, 280, 30, '0', final_score_font, RED, win)
tap_to_play_msg = tap_to_play = BlinkingText(WIDTH//2, HEIGHT-60, 25, "Tap To Play",
                 tap_to_play_font, WHITE, win)


# SOUNDS **********************************************************************

player_bullet_fx = pygame.mixer.Sound('Sounds/gunshot.wav')
click_fx = pygame.mixer.Sound('Sounds/click.mp3')
collision_fx = pygame.mixer.Sound('Sounds/mini_exp.mp3')
blast_fx = pygame.mixer.Sound('Sounds/blast.wav')
fuel_fx = pygame.mixer.Sound('Sounds/fuel.wav')

pygame.mixer.music.load('Sounds/Defrini - Spookie.mp3')
pygame.mixer.music.play(loops=-1)
pygame.mixer.music.set_volume(0.1)


# GROUPS & OBJECTS ************************************************************

bg = Background(win)
p = Player(144, HEIGHT - 100)

enemy_group = pygame.sprite.Group()
player_bullet_group = pygame.sprite.Group()
enemy_bullet_group = pygame.sprite.Group()
explosion_group = pygame.sprite.Group()
fuel_group = pygame.sprite.Group()
powerup_group = pygame.sprite.Group()

# FUNCTIONS *******************************************************************

def shoot_bullet():
    x, y = p.rect.center[0], p.rect.y

    if p.powerup > 0:
        for dx in range(-3, 4):
            b = Bullet(x, y, 4, dx)
            player_bullet_group.add(b)
        p.powerup -= 1
    else:
        b = Bullet(x-30, y, 6)
        player_bullet_group.add(b)
        b = Bullet(x+30, y, 6)
        player_bullet_group.add(b)
    player_bullet_fx.play()

def reset():
    enemy_group.empty()
    player_bullet_group.empty()
    enemy_bullet_group.empty()
    explosion_group.empty()
    fuel_group.empty()
    powerup_group.empty()

    p.reset(p.x, p.y)

# VARIABLES *******************************************************************

level = 1
plane_destroy_count = 0
plane_frequency = 5000
start_time = pygame.time.get_ticks()

moving_left = False
moving_right = False

home_page = True
game_page = False
score_page = False

score = 0
sound_on = True

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE or event.key == pygame.K_q:
                running = False

        if event.type == pygame.KEYDOWN and game_page:
            if event.key == pygame.K_LEFT:
                moving_left = True
            if event.key == pygame.K_RIGHT:
                moving_right = True
            if event.key == pygame.K_SPACE:
                shoot_bullet()

        if event.type == pygame.MOUSEBUTTONDOWN:
            if home_page:
                home_page = False
                game_page = True
                click_fx.play()
            elif game_page:
                x, y = event.pos
                if p.rect.collidepoint((x,y)):
                    shoot_bullet()
                elif x <= WIDTH // 2:
                    moving_left = True
                elif x > WIDTH // 2:
                    moving_right = True

        if event.type == pygame.KEYUP:
            moving_left = False
            moving_right = False

        if event.type == pygame.MOUSEBUTTONUP:
            moving_left = False
            moving_right = False

    if home_page:
        win.fill(BLACK)
        win.blit(logo_img, (30, 80))
        win.blit(fighter_img, (WIDTH//2 - 50, HEIGHT//2))
        pygame.draw.circle(win, WHITE, (WIDTH//2, HEIGHT//2 + 50), 50, 4)
        tap_to_play_msg.update()

    if score_page:
        win.fill(BLACK)
        win.blit(logo_img, (30, 50))
        game_over_msg.update()
        final_score_msg.update(score)

        if home_btn.draw(win):
            home_page = True
            game_page = False
            score_page = False
            reset()
            click_fx.play()

            plane_destroy_count = 0
            level = 1
            score = 0

        if replay_btn.draw(win):
            score_page = False
            game_page = True
            reset()
            click_fx.play()

            plane_destroy_count = 0
            score = 0

        if sound_btn.draw(win):
            sound_on = not sound_on

            if sound_on:
                sound_btn.update_image(sound_on_img)
                pygame.mixer.music.play(loops=-1)
            else:
                sound_btn.update_image(sound_off_img)
                pygame.mixer.music.stop()

    if game_page:

        current_time = pygame.time.get_ticks()
        delta_time = current_time - start_time
        if delta_time >= plane_frequency:
            if level == 1:
                type = 1
            elif level == 2:
                type = 2
            elif level == 3:
                type = 3
            elif level == 4:
                type = random.randint(4, 5)
            elif level == 5:
                type = random.randint(1, 5)

            x = random.randint(10, WIDTH - 100)
            e = Enemy(x, -150, type)
            enemy_group.add(e)
            start_time = current_time

        if plane_destroy_count:
            if plane_destroy_count % 5 == 0 and level < 5:
                level += 1
                plane_destroy_count = 0

        p.fuel -= 0.05
        bg.update(1)
        win.blit(clouds_img, (0, 70))

        p.update(moving_left, moving_right, explosion_group)
        p.draw(win)

        player_bullet_group.update()
        player_bullet_group.draw(win)
        enemy_bullet_group.update()
        enemy_bullet_group.draw(win)
        explosion_group.update()
        explosion_group.draw(win)
        fuel_group.update()
        fuel_group.draw(win)
        powerup_group.update()
        powerup_group.draw(win)

        enemy_group.update(enemy_bullet_group, explosion_group)
        enemy_group.draw(win)

        if p.alive:
            player_hit = pygame.sprite.spritecollide(p, enemy_bullet_group, False)
            for bullet in player_hit:
                p.health -= bullet.damage

                x, y = bullet.rect.center
                explosion = Explosion(x, y, 1)
                explosion_group.add(explosion)

                bullet.kill()
                collision_fx.play()

            for bullet in player_bullet_group:
                planes_hit = pygame.sprite.spritecollide(bullet, enemy_group, False)
                for plane in planes_hit:
                    plane.health -= bullet.damage
                    if plane.health <= 0:
                        x, y = plane.rect.center
                        rand = random.random()
                        if rand >= 0.9:
                            power = Powerup(x, y)
                            powerup_group.add(power)
                        elif rand >= 0.3:
                            fuel = Fuel(x, y)
                            fuel_group.add(fuel)

                        plane_destroy_count += 1
                        blast_fx.play()

                    x, y = bullet.rect.center
                    explosion = Explosion(x, y, 1)
                    explosion_group.add(explosion)

                    bullet.kill()
                    collision_fx.play()

            player_collide = pygame.sprite.spritecollide(p, enemy_group, True)
            if player_collide:
                x, y = p.rect.center
                explosion = Explosion(x, y, 2)
                explosion_group.add(explosion)

                x, y = player_collide[0].rect.center
                explosion = Explosion(x, y, 2)
                explosion_group.add(explosion)

                p.health = 0
                p.alive = False

            if pygame.sprite.spritecollide(p, fuel_group, True):
                p.fuel += 25
                if p.fuel >= 100:
                    p.fuel = 100
                fuel_fx.play()

            if pygame.sprite.spritecollide(p, powerup_group, True):
                p.powerup += 2
                fuel_fx.play()

        if not p.alive or p.fuel <= -10:
            if len(explosion_group) == 0:
                game_page = False
                score_page = True
                reset()

        score += 1
        score_msg.update(score)

        fuel_color = RED if p.fuel <= 40 else GREEN
        pygame.draw.rect(win, fuel_color, (30, 20, p.fuel, 10), border_radius=4)
        pygame.draw.rect(win, WHITE, (30, 20, 100, 10), 2, border_radius=4)
        pygame.draw.rect(win, BLUE, (30, 32, p.health, 10), border_radius=4)
        pygame.draw.rect(win, WHITE, (30, 32, 100, 10), 2, border_radius=4)
        win.blit(plane_img, (10, 15))

    pygame.draw.rect(win, WHITE, (0,0, WIDTH, HEIGHT), 5, border_radius=4)
    clock.tick(FPS)
    pygame.display.update()

pygame.quit()
2、愤怒的墙
游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import pygame
import random

from objects import Player, Bar, Ball, Block, ScoreCard, Message, Particle, generate_particles

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512

info = pygame.display.Info()
width = info.current_w
height = info.current_h

if width >= height:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME)
else:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME | pygame.SCALED | pygame.FULLSCREEN)

clock = pygame.time.Clock()
FPS = 45

# COLORS

RED = (255, 0, 0)
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GRAY = (54, 69, 79)
c_list = [RED, BLACK, WHITE]

# Fonts

pygame.font.init()
score_font = pygame.font.Font('Fonts/BubblegumSans-Regular.ttf', 50)

# Sounds

coin_fx = pygame.mixer.Sound('Sounds/coin.mp3')
death_fx = pygame.mixer.Sound('Sounds/death.mp3')
move_fx = pygame.mixer.Sound('Sounds/move.mp3')

# backgrounds

bg_list = []
for i in range(1,5):
    if i == 2:
        ext = "jpeg"
    else:
        ext = "jpg"
    img = pygame.image.load(f"Assets/Backgrounds/bg{i}.{ext}")
    img = pygame.transform.scale(img, (WIDTH, HEIGHT))
    bg_list.append(img)

home_bg = pygame.image.load(f"Assets/Backgrounds/home.jpeg")

bg = home_bg

# objects
bar_group = pygame.sprite.Group()
ball_group = pygame.sprite.Group()
block_group = pygame.sprite.Group()
destruct_group = pygame.sprite.Group()
win_particle_group = pygame.sprite.Group()
bar_gap = 120

particles = []

p = Player(win)
score_card = ScoreCard(140, 40, win)

# Functions

def destroy_bird():
    x, y = p.rect.center
    for i in range (50):
        c = random.choice(c_list)
        particle = Particle(x,y, 1,c, win)
        destruct_group.add(particle)

def win_particles():
    for x,y in [(40, 120), (WIDTH - 20, 240), (15, HEIGHT - 30)]:
        for i in range(10):
            particle = Particle (x,y, 2, WHITE, win)
            win_particle_group.add(particle)

# Messages
title_font = "Fonts/Robus-BWqOd.otf"
dodgy = Message(134, 90, 100, "Angry",title_font, WHITE, win)
walls = Message(164, 145, 80, "Walls",title_font, WHITE, win)

tap_to_play_font = "Fonts/DebugFreeTrial-MVdYB.otf"
tap_to_play = Message(144, 400, 32, "TAP TO PLAY",tap_to_play_font, WHITE, win)
tap_to_replay = Message(144, 400, 30, "Tap to Replay",tap_to_play_font, WHITE, win)

# Variables

bar_width_list = [i for i in range (40,150,10)]
bar_frequency = 1200
bar_speed = 4
touched = False
pos = None
home_page = True
score_page = False
bird_dead = False
score = 0
high_score = 0
move_left = False
move_right = True
prev_x = 0
p_count = 0

running = True
while running:
    win.blit(bg, (0,0))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                running = False

        if event.type == pygame.MOUSEBUTTONDOWN and (home_page or score_page):
            home_page = False
            score_page = False
            win_particle_group.empty()

            bg = random.choice(bg_list)

            particles = []
            last_bar = pygame.time.get_ticks() - bar_frequency
            next_bar = 0
            bar_speed = 4
            bar_frequency = 1200
            bird_dead = False
            score = 0
            p_count = 0
            score_list = []

            for _ in range(15):
                x = random.randint(30, WIDTH - 30)
                y = random.randint(60, HEIGHT - 60)
                max = random.randint(8,16)
                b = Block(x,y,max, win)
                block_group.add(b)

        if event.type == pygame.MOUSEBUTTONDOWN and not home_page:
            if p.rect.collidepoint(event.pos):
                touched = True
                x, y = event.pos
                offset_x = p.rect.x - x

        if event.type == pygame.MOUSEBUTTONUP and not home_page:
            touched = False

        if event.type == pygame.MOUSEMOTION and not home_page:
            if touched:
                x, y = event.pos
                if move_right and prev_x > x:
                    move_right = False
                    move_left = True
                    move_fx.play()
                if move_left and  prev_x < x:
                    move_right = True
                    move_left = False
                    move_fx.play()

                prev_x = x
                p.rect.x =  x + offset_x

    if home_page:
        bg = home_bg
        particles = generate_particles(p, particles, WHITE, win)
        dodgy.update()
        walls.update()
        tap_to_play.update()
        p.update()

    elif score_page:
        bg = home_bg
        particles = generate_particles(p, particles, WHITE, win)
        tap_to_replay.update()
        p.update()
        score_msg.update()
        score_point.update()
        if p_count % 5 == 0:
            win_particles()
        p_count += 1
        win_particle_group.update()

    else:

        next_bar = pygame.time.get_ticks()
        if next_bar - last_bar >= bar_frequency and not bird_dead:
            bwidth = random.choice(bar_width_list)

            b1prime = Bar(0,0,bwidth+3,GRAY, win)
            b1 = Bar(0,-3,bwidth,WHITE,win)

            b2prime = Bar(bwidth+bar_gap+3, 0, WIDTH - bwidth - bar_gap, GRAY, win)
            b2 = Bar(bwidth+bar_gap, -3, WIDTH - bwidth - bar_gap, WHITE, win)

            bar_group.add(b1prime)
            bar_group.add(b1)
            bar_group.add(b2prime)
            bar_group.add(b2)

            color = random.choice(["red", "white"])
            pos = random.choice([0,1])
            if pos == 0:
                x = bwidth + 12
            elif pos == 1:
                x = bwidth + bar_gap - 12
            ball = Ball(x, 10, 1, color, win)

            ball_group.add(ball)
            last_bar = next_bar

        for ball in ball_group:
            if ball.rect.colliderect(p):
                if ball.color == "white":
                    ball.kill()
                    coin_fx.play()
                    score += 1
                    if score > high_score:
                        high_score += 1
                    score_card.animate = True
                elif ball.color == "red":
                    if not bird_dead:
                        death_fx.play()
                        destroy_bird()

                    bird_dead = True
                    bar_speed = 0

        if pygame.sprite.spritecollide(p, bar_group, False):
            if not bird_dead:
                death_fx.play()
                destroy_bird()

            bird_dead = True
            bar_speed = 0

        block_group.update()
        bar_group.update(bar_speed)
        ball_group.update(bar_speed)

        if bird_dead:
                destruct_group.update()

        score_card.update(score)

        if not bird_dead:
            particles = generate_particles(p, particles, WHITE, win)
            p.update()

        if score and score % 10 == 0:
            rem = score // 10
            if rem not in score_list:
                score_list.append(rem)
                bar_speed += 1
                bar_frequency -= 200

        if bird_dead and len(destruct_group) == 0:
            score_page = True
            font =  "Fonts/BubblegumSans-Regular.ttf"
            if score < high_score:
                score_msg = Message(144, 60, 55, "Score",font, WHITE, win)
            else:
                score_msg = Message(144, 60, 55, "New High",font, WHITE, win)

            score_point = Message(144, 110, 45, f"{score}", font, WHITE, win)

        if score_page:
            block_group.empty()
            bar_group.empty()
            ball_group.empty()

            p.reset()

    clock.tick(FPS)
    pygame.display.update()

pygame.quit()
3、圆弧冲刺
游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import random
import pygame

from objects import Player, Balls, Dot, Shadow, Particle, Message, BlinkingText, Button

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512
CENTER = WIDTH //2, HEIGHT // 2

info = pygame.display.Info()
width = info.current_w
height = info.current_h

if width >= height:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME)
else:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME | pygame.SCALED | pygame.FULLSCREEN)

clock = pygame.time.Clock()
FPS = 60

# COLORS **********************************************************************

RED = (255,0,0)
GREEN = (0,177,64)
BLUE = (30, 144,255)
ORANGE = (252,76,2)
YELLOW = (254,221,0)
PURPLE = (155,38,182)
AQUA = (0,103,127)
WHITE = (255,255,255)
BLACK = (0,0,0)

color_list = [RED, GREEN, BLUE, ORANGE, YELLOW, PURPLE]
color_index = 0
color = color_list[color_index]

# FONTS ***********************************************************************

title_font = "Fonts/Aladin-Regular.ttf"
tap_to_play_font = "Fonts/BubblegumSans-Regular.ttf"
score_font = "Fonts/DalelandsUncialBold-82zA.ttf"
game_over_font = "Fonts/ghostclan.ttf"

# MESSAGES ********************************************************************

arc = Message(WIDTH-90, 200, 80, "Arc", title_font, WHITE, win)
dash = Message(80, 300, 60, "Dash", title_font, WHITE, win)
tap_to_play = BlinkingText(WIDTH//2, HEIGHT-60, 20, "Tap To Play", tap_to_play_font, WHITE, win)
game_msg = Message(80, 150, 40, "GAME", game_over_font, BLACK, win)
over_msg = Message(210, 150, 40, "OVER!", game_over_font, WHITE, win)
score_text = Message(90, 230, 20, "SCORE", None, BLACK, win)
best_text = Message(200, 230, 20, "BEST", None, BLACK, win)

score_msg = Message(WIDTH-60, 50, 50, "0", score_font, WHITE, win)
final_score_msg = Message(90, 280, 40, "0", tap_to_play_font, BLACK, win)
high_score_msg = Message(200, 280, 40, "0", tap_to_play_font, BLACK, win)

# SOUNDS **********************************************************************

score_fx = pygame.mixer.Sound('Sounds/point.mp3')
death_fx = pygame.mixer.Sound('Sounds/dead.mp3')
score_page_fx = pygame.mixer.Sound('Sounds/score_page.mp3')

pygame.mixer.music.load('Sounds/hk.mp3')
pygame.mixer.music.play(loops=-1)
pygame.mixer.music.set_volume(0.5)

# Button images

home_img = pygame.image.load('Assets/homeBtn.png')
replay_img = pygame.image.load('Assets/replay.png')
sound_off_img = pygame.image.load("Assets/soundOffBtn.png")
sound_on_img = pygame.image.load("Assets/soundOnBtn.png")

# Buttons

home_btn = Button(home_img, (24, 24), WIDTH // 4 - 18, 390)
replay_btn = Button(replay_img, (36,36), WIDTH // 2  - 18, 382)
sound_btn = Button(sound_on_img, (24, 24), WIDTH - WIDTH // 4 - 18, 390)

# GAME VARIABLES **************************************************************

MAX_RAD = 120
rad_delta = 50

# OBJECTS *********************************************************************

ball_group = pygame.sprite.Group()
dot_group = pygame.sprite.Group()
shadow_group = pygame.sprite.Group()
particle_group = pygame.sprite.Group()
p = Player(win)

ball_positions = [(CENTER[0]-105, CENTER[1]), (CENTER[0]+105, CENTER[1]),
                    (CENTER[0]-45, CENTER[1]), (CENTER[0]+45, CENTER[1]),
                    (CENTER[0], CENTER[1]-75), (CENTER[0], CENTER[1]+75)]
for index, pos in enumerate(ball_positions):
    if index in (0,1):
        type_ = 1
        inverter = 5
    if index in (2,3):
        type_ = 1
        inverter = 3
    if index in (4,5):
        type_ = 2
        inverter = 1
    ball = Balls(pos, type_, inverter, win)
    ball_group.add(ball)

dot_list = [(CENTER[0], CENTER[1]-MAX_RAD+3), (CENTER[0]+MAX_RAD-3, CENTER[1]),
            (CENTER[0], CENTER[1]+MAX_RAD-3), (CENTER[0]-MAX_RAD+3, CENTER[1])]
dot_index = random.choice([1,2,3,4])
dot_pos = dot_list[dot_index-1]
dot = Dot(*dot_pos, win)
dot_group.add(dot)

shadow = Shadow(dot_index, win)
shadow_group.add(shadow)


# VARIABLES *******************************************************************

clicked = False
num_clicks = 0
player_alive = True
sound_on = True

score = 0
highscore = 0

home_page = True
game_page = False
score_page = False

running = True
while running:
    win.fill(color)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE or \
                event.key == pygame.K_q:
                running = False

        if event.type == pygame.MOUSEBUTTONDOWN and home_page:
            home_page = False
            game_page = True
            score_page = False

            rad_delta = 50
            clicked = True
            score = 0
            num_clicks = 0
            player_alive = True

        if event.type == pygame.MOUSEBUTTONDOWN and game_page:
            if not clicked:
                clicked = True
                for ball in ball_group:
                    if num_clicks % ball.inverter == 0:
                        ball.dtheta *= -1

                p.set_move(dot_index)

                num_clicks += 1
                if num_clicks % 5 == 0:
                    color_index += 1
                    if color_index > len(color_list) - 1:
                        color_index = 0

                    color = color_list[color_index]

        if event.type == pygame.MOUSEBUTTONDOWN and game_page:
            clicked = False

    if home_page:
        for radius in [30, 60, 90, 120]:
            pygame.draw.circle(win, (0,0,0), CENTER, radius, 8)
            pygame.draw.circle(win, (255,255,255), CENTER, radius, 5)

        pygame.draw.rect(win, color, [CENTER[0]-10, CENTER[1]-MAX_RAD, MAX_RAD+50, MAX_RAD])
        pygame.draw.rect(win, color, [CENTER[0]-MAX_RAD, CENTER[1]-10, MAX_RAD, MAX_RAD+50])

        arc.update()
        dash.update()
        tap_to_play.update()

    if score_page:
        game_msg.update()
        over_msg.update()
        score_text.update(shadow=False)
        best_text.update(shadow=False)

        final_score_msg.update(score, shadow=False)
        high_score_msg.update(highscore, shadow=False)

        if home_btn.draw(win):
            home_page = True
            score_page = False
            game_page = False
            score = 0
            score_msg = Message(WIDTH-60, 50, 50, "0", score_font, WHITE, win)

        if replay_btn.draw(win):
            home_page = False
            score_page = False
            game_page = True

            player_alive = True
            score = 0
            score_msg = Message(WIDTH-60, 50, 50, "0", score_font, WHITE, win)
            p = Player(win)

        if sound_btn.draw(win):
            sound_on = not sound_on

            if sound_on:
                sound_btn.update_image(sound_on_img)
                pygame.mixer.music.play(loops=-1)
            else:
                sound_btn.update_image(sound_off_img)
                pygame.mixer.music.stop()

    if game_page:

        for radius in [30 + rad_delta, 60 + rad_delta, 90 + rad_delta, 120 + rad_delta]:
            if rad_delta > 0:
                radius -= 1
                rad_delta -= 1
            pygame.draw.circle(win, (0,0,0), CENTER, radius, 5)


        pygame.draw.rect(win, color, [CENTER[0]-10, CENTER[1]-MAX_RAD, 20, MAX_RAD*2])
        pygame.draw.rect(win, color, [CENTER[0]-MAX_RAD, CENTER[1]-10, MAX_RAD*2, 20])

        if rad_delta <= 0:
            p.update(player_alive, color, shadow_group)
            shadow_group.update()
            ball_group.update()
            dot_group.update()
            particle_group.update()
            score_msg.update(score)

            for dot in dot_group:
                if dot.rect.colliderect(p):
                    dot.kill()
                    score_fx.play()

                    score += 1
                    if highscore <= score:
                        highscore = score

            if pygame.sprite.spritecollide(p, ball_group, False) and player_alive:
                death_fx.play()
                x, y = p.rect.center
                for i in range(20):
                    particle = Particle(x, y, WHITE, win)
                    particle_group.add(particle)
                player_alive = False
                p.reset()

            if p.can_move and len(dot_group) == 0 and player_alive:
                dot_index = random.randint(1,4)
                dot_pos = dot_list[dot_index-1]
                dot = Dot(*dot_pos, win)
                dot_group.add(dot)

                shadow_group.empty()
                shadow = Shadow(dot_index, win)
                shadow_group.add(shadow)

            if not player_alive and len(particle_group) == 0:
                game_page = False
                score_page = True

                dot_group.empty()
                shadow_group.empty()
                for ball in ball_group:
                    ball.reset()
                score_page_fx.play()


    pygame.draw.rect(win, WHITE, (0, 0, WIDTH, HEIGHT), 5, border_radius=10)
    clock.tick(FPS)
    pygame.display.update()

pygame.quit()
4、行星游戏

游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import random
import pygame
from pygame.locals import KEYDOWN, QUIT, K_ESCAPE, K_SPACE, K_q, K_e

from objects import Rocket, Asteroid, Bullet, Explosion


### SETUP *********************************************************************
SIZE = SCREEN_WIDTH, SCREEN_HEIGHT = 500, 500

pygame.mixer.init()
pygame.init()
clock = pygame.time.Clock()
win = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption('Asteroids')

gunshot_sound = pygame.mixer.Sound("music/laser.wav")
explosion_sound = pygame.mixer.Sound("music/explosion.mp3")

font = pygame.font.Font('freesansbold.ttf', 32)
# text = font.render('', True, green, blue)


### Objects & Events **********************************************************
ADDAST1 = pygame.USEREVENT + 1
ADDAST2 = pygame.USEREVENT + 2
ADDAST3 = pygame.USEREVENT + 3
ADDAST4 = pygame.USEREVENT + 4
ADDAST5 = pygame.USEREVENT + 5
pygame.time.set_timer(ADDAST1, 2000)
pygame.time.set_timer(ADDAST2, 6000)
pygame.time.set_timer(ADDAST3, 10000)
pygame.time.set_timer(ADDAST4, 15000)
pygame.time.set_timer(ADDAST5, 20000)

rocket = Rocket(SIZE)

asteroids = pygame.sprite.Group()
bullets = pygame.sprite.Group()
explosions = pygame.sprite.Group()
all_sprites = pygame.sprite.Group()
all_sprites.add(rocket)

backgrounds = [f'assets/background/bg{i}s.png' for i in range(1,5)]
bg = pygame.image.load(random.choice(backgrounds))

startbg = pygame.image.load('assets/start.jpg')

### Game **********************************************************************
if __name__ == '__main__':
    score = 0
    running = True
    gameStarted = False
    musicStarted = False
    while running:
        if not gameStarted:
            if not musicStarted:
                pygame.mixer.music.load('music/Apoxode_-_Electric_1.mp3')
                pygame.mixer.music.play(loops=-1)
                musicStarted = True
            for event in pygame.event.get():
                if event.type == QUIT:
                    running = False

                if event.type == KEYDOWN:
                    if event.key == K_SPACE:
                        gameStarted = True
                        musicStarted = False

                win.blit(startbg, (0,0))        
        else:
            if not musicStarted:
                pygame.mixer.music.load('music/rpg_ambience_-_exploration.ogg')
                pygame.mixer.music.play(loops=-1)
                musicStarted = True
            for event in pygame.event.get():
                if event.type == QUIT:
                    running = False

                if event.type == KEYDOWN:
                    if event.key == K_ESCAPE:
                        running = False
                    if event.key == K_SPACE:
                        pos = rocket.rect[:2]
                        bullet = Bullet(pos, rocket.dir, SIZE)
                        bullets.add(bullet)
                        all_sprites.add(bullet)
                        gunshot_sound.play()
                    if event.key == K_q:
                        rocket.rotate_left()
                    if event.key == K_e:
                        rocket.rotate_right()

                elif event.type == ADDAST1:
                    ast = Asteroid(1, SIZE)
                    asteroids.add(ast)
                    all_sprites.add(ast)
                elif event.type == ADDAST2:
                    ast = Asteroid(2, SIZE)
                    asteroids.add(ast)
                    all_sprites.add(ast)
                elif event.type == ADDAST3:
                    ast = Asteroid(3, SIZE)
                    asteroids.add(ast)
                    all_sprites.add(ast)
                elif event.type == ADDAST4:
                    ast = Asteroid(4, SIZE)
                    asteroids.add(ast)
                    all_sprites.add(ast)
                elif event.type == ADDAST5:
                    ast = Asteroid(5, SIZE)
                    asteroids.add(ast)
                    all_sprites.add(ast)


            pressed_keys = pygame.key.get_pressed()
            rocket.update(pressed_keys)

            asteroids.update()
            bullets.update()
            explosions.update()

            win.blit(bg, (0,0))
            explosions.draw(win)

            for sprite in all_sprites:
                win.blit(sprite.surf, sprite.rect)
            win.blit(rocket.surf, rocket.rect)

            if pygame.sprite.spritecollideany(rocket, asteroids):
                rocket.kill()
                score = 0
                for sprite in all_sprites:
                    sprite.kill()
                all_sprites.empty()
                rocket = Rocket(SIZE)
                all_sprites.add(rocket)
                gameStarted = False
                musicStarted = False

            for bullet in bullets:
                collision = pygame.sprite.spritecollide(bullet, asteroids, True)
                if collision:
                    pos = bullet.rect[:2]
                    explosion = Explosion(pos)
                    explosions.add(explosion)
                    score += 1
                    explosion_sound.play()

                    bullet.kill()
                    bullets.remove(bullet)

            text = font.render('Score : ' + str(score), 1, (200,255,0))
            win.blit(text, (340, 10))

        pygame.display.flip()
        clock.tick(30)

    pygame.quit()
5、弹跳的球

游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import os
import pygame

from player import Ball
from world import World, load_level
from texts import Text, Message
from button import Button, LevelButton

pygame.init()
WIDTH, HEIGHT = 192, 212
win = pygame.display.set_mode((WIDTH, HEIGHT), pygame.NOFRAME)
pygame.display.set_caption('Bounce')

clock = pygame.time.Clock()
FPS = 30

# GAME VARIABLES **************************************************************
ROWS = 12
MAX_COLS = 150
TILE_SIZE = 16
MAX_LEVEL = 8

# COLORS **********************************************************************

BLUE = (175, 207, 240)
BLUE2 = (0, 0, 255)
WHITE = (255, 255, 255)

# FONTS ***********************************************************************

health_font = "Fonts/ARCADECLASSIC.TTF"

level_text = Text(health_font, 24)
health_text = Message(40, WIDTH + 10, 19, "x3", health_font, WHITE, win)
select_level_text = Message(WIDTH//2, 20, 24, "Select  Level", health_font, BLUE2, win)
current_level_text = Message(WIDTH - 40, WIDTH + 10, 20, "Level 1", health_font, WHITE, win)
you_win = Message(WIDTH //2, HEIGHT//2, 40, "You  Win", health_font, BLUE2, win)

# SOUNDS **********************************************************************

click_fx = pygame.mixer.Sound('Sounds/click.mp3')
life_fx = pygame.mixer.Sound('Sounds/gate.mp3')
checkpoint_fx = pygame.mixer.Sound('Sounds/checkpoint.mp3')

pygame.mixer.music.load('Sounds/track1.wav')
pygame.mixer.music.play(loops=-1)
pygame.mixer.music.set_volume(0.4)

# LOADING IMAGES **************************************************************

ball_image = pygame.image.load('Assets/ball.png')
splash_img = pygame.transform.scale(pygame.image.load('Assets/splash_logo.png'),
             (2*WIDTH, HEIGHT))
bounce_img = pygame.image.load('Assets/menu_logo.png')
game_lost_img = pygame.image.load('Assets/lose.png')
game_lost_img = pygame.transform.scale(game_lost_img, (WIDTH//2, 80))
level_locked_img = pygame.image.load('Assets/level_locked.png')
level_locked_img = pygame.transform.scale(level_locked_img, (40, 40))
level_unlocked_img = pygame.image.load('Assets/level_unlocked.png')
level_unlocked_img = pygame.transform.scale(level_unlocked_img, (40, 40))


play_img = pygame.image.load('Assets/play.png')
restart_img = pygame.image.load('Assets/restart.png')
menu_img = pygame.image.load('Assets/menu.png')
sound_on_img = pygame.image.load('Assets/SoundOnBtn.png')
sound_off_img = pygame.image.load('Assets/SoundOffBtn.png')
game_won_img = pygame.image.load('Assets/game won.png')


# BUTTONS *********************************************************************

play_btn = Button(play_img, False, 45, 130)
sound_btn = Button(sound_on_img, False, 45, 170)
restart_btn = Button(restart_img, False, 45, 130)
menu_btn = Button(menu_img, False, 45, 170)

# LEVEL TEXT & BUTTONS ********************************************************

level_btns = []
for level in range(MAX_LEVEL):
    text = level_text.render(f'{level+1}', (255, 255, 255))
    r = level // 3
    c = level % 3
    btn = LevelButton(level_locked_img, (40, 40), 20 + c * 55, 50 + r * 55, text)
    level_btns.append(btn)

# GROUPS **********************************************************************

spikes_group = pygame.sprite.Group()
inflator_group = pygame.sprite.Group()
deflator_group = pygame.sprite.Group()
enemy_group = pygame.sprite.Group()
exit_group = pygame.sprite.Group()
checkpoint_group = pygame.sprite.Group()
health_group = pygame.sprite.Group()

objects_groups = [spikes_group, inflator_group, deflator_group, enemy_group, exit_group, 
                    checkpoint_group, health_group]
collision_groups = [inflator_group, deflator_group]

# RESET ***********************************************************************

def reset_level_data(level):
    for group in objects_groups:
        group.empty()

    # LOAD LEVEL WORLD

    world_data, level_length = load_level(level)
    w = World(objects_groups)
    w.generate_world(world_data, win)

    return world_data, level_length, w

def reset_player_data(level):
    if level == 1:
        x, y = 64, 50
    if level == 2:
        x, y = 65, 50
    if level == 3:
        x, y = 64, 50
    if level == 4:
        x, y = 63, 50
    if level == 5:
        x, y = 64, 50
    if level == 6:
        x, y = 48, 50
    if level == 7:
        x, y = 78, 80
    if level == 8:
        x, y = 112,100

    p = Ball(x, y)
    moving_left = False
    moving_right = False

    return p, moving_left, moving_right

# VARIABLES *******************************************************************

moving_left = False
moving_right = False

SCROLL_THRES = 80
screen_scroll = 0
level_scroll = 0
level = 1
next_level = False
reset_level = False

checkpoint = None
health = 3
splash_count = 0
sound_on = True

logo_page = True
home_page = False
level_page = False
game_page = False
restart_page = False
win_page = False

running = True
while running:
    win.fill(BLUE)
    pygame.draw.rect(win, (255, 255,255), (0, 0, WIDTH, HEIGHT), 1, border_radius=5)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE or \
                event.key == pygame.K_q:
                running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                moving_left = True
            if event.key == pygame.K_RIGHT:
                moving_right = True
            if event.key == pygame.K_UP:
                if not p.jump:
                    p.jump = True

        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT:
                moving_left = False
            if event.key == pygame.K_RIGHT:
                moving_right = False

    if logo_page:
        win.blit(splash_img, (-100,0))
        splash_count += 1
        if splash_count % 50 == 0:
            logo_page = False
            home_page = True

    if home_page:
        win.blit(bounce_img, (10,10))

        if play_btn.draw(win):
            click_fx.play()
            home_page = False
            level_page = True

        if sound_btn.draw(win):
            click_fx.play()
            sound_on = not sound_on

            if sound_on:
                sound_btn.update_image(sound_on_img)
                pygame.mixer.music.play(loops=-1)
            else:
                sound_btn.update_image(sound_off_img)
                pygame.mixer.music.stop()

    if level_page:
        select_level_text.update(shadow=False)
        for index, btn in enumerate(level_btns):
            if index < level:
                if not btn.unlocked:
                    btn.unlocked = True
                    btn.update_image(level_unlocked_img)
            if btn.draw(win):
                if index < level:
                    click_fx.play()
                    level_page = False
                    game_page = True
                    level = index + 1
                    screen_scroll = 0
                    level_scroll = 0
                    health = 3
                    world_data, level_length, w = reset_level_data(level)
                    p, moving_left, moving_right = reset_player_data(level)

    if restart_page:
        win.blit(game_lost_img, (45,20))
        if restart_btn.draw(win):
            click_fx.play()
            world_data, level_length, w = reset_level_data(level)
            p, moving_left, moving_right = reset_player_data(level)
            level_scroll = 0
            screen_scroll = 0
            health = 3
            checkpoint = None
            restart_page = False
            game_page = True

        if menu_btn.draw(win):
            click_fx.play()
            home_page = True
            restart_page = False

    if win_page:
        win.blit(game_won_img, (45, 20))
        you_win.update()
        if menu_btn.draw(win):
            click_fx.play()
            home_page = True
            win_page = False
            restart_page = False


    if game_page:
        w.update(screen_scroll)
        w.draw(win)

        spikes_group.update(screen_scroll)
        spikes_group.draw(win)
        health_group.update(screen_scroll)
        health_group.draw(win)
        inflator_group.update(screen_scroll)
        inflator_group.draw(win)
        deflator_group.update(screen_scroll)
        deflator_group.draw(win)
        exit_group.update(screen_scroll)
        exit_group.draw(win)
        checkpoint_group.update(screen_scroll)
        checkpoint_group.draw(win)
        enemy_group.update(screen_scroll)
        enemy_group.draw(win)

        screen_scroll = 0
        p.update(moving_left, moving_right, w, collision_groups)
        p.draw(win)

        if ((p.rect.right >= WIDTH - SCROLL_THRES) and level_scroll < (level_length * 16) - WIDTH) \
                or ((p.rect.left <= SCROLL_THRES) and level_scroll > 0):
                dx = p.dx
                p.rect.x -= dx
                screen_scroll = -dx
                level_scroll += dx

        if len(exit_group) > 0:
            exit = exit_group.sprites()[0]
            if not exit.open:
                if abs(p.rect.x - exit.rect.x) <= 80 and len(health_group) == 0:
                    exit.open = True

            if p.rect.colliderect(exit.rect) and exit.index == 11:
                checkpoint = None
                checkpoint_fx.play()
                level += 1
                if level < MAX_LEVEL:
                    checkpoint = False
                    reset_level = True
                    next_level = True
                else:
                    checkpoint = None
                    win_page = True

        cp = pygame.sprite.spritecollide(p, checkpoint_group, False)
        if cp:
            checkpoint = cp[0]
            if not checkpoint.catched:
                checkpoint_fx.play()
                checkpoint.catched = True
                checkpoint_pos = p.rect.center
                checkpoint_screen_scroll = screen_scroll
                checkpoint_level_scroll = level_scroll

        if pygame.sprite.spritecollide(p, spikes_group, False):
            reset_level = True

        if pygame.sprite.spritecollide(p, health_group, True):
            health += 1
            life_fx.play()

        if pygame.sprite.spritecollide(p, enemy_group, False):
            reset_level = True

        if reset_level:
            if health > 0:
                if next_level:
                    world_data, level_length, w = reset_level_data(level)
                    p, moving_left, moving_right = reset_player_data(level)
                    level_scroll = 0
                    health = 3
                    checkpoint = None
                    next_level = False

                elif checkpoint:
                    checkpoint_dx = level_scroll - checkpoint_level_scroll
                    w.update(checkpoint_dx)
                    for group in objects_groups:
                        group.update(checkpoint_dx)
                    p.rect.center = checkpoint_pos
                    level_scroll = checkpoint_level_scroll

                else:
                    w.update(level_scroll)
                    for group in objects_groups:
                        group.update(level_scroll)
                    p, moving_left, moving_right = reset_player_data(level)
                    level_scroll = 0

                screen_scroll = 0
                reset_level = False
                health -= 1
            else:
                restart_page = True
                game_page = False
                reset_level = False

        # Drawing info bar
        pygame.draw.rect(win, (25, 25, 25), (0, HEIGHT-20, WIDTH, 20))
        pygame.draw.rect(win, (255, 255,255), (0, 0, WIDTH, WIDTH), 2, border_radius=5)

        win.blit(ball_image, (5, WIDTH + 2))
        health_text.update(f'x{health}', shadow=False)
        current_level_text.update(f'Level {level}', shadow=False)

    clock.tick(FPS)
    pygame.display.update()

pygame.quit()
6、汽车避障

游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import pygame
import random
from objects import Road, Player, Nitro, Tree, Button, \
                    Obstacle, Coins, Fuel

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512

info = pygame.display.Info()
width = info.current_w
height = info.current_h

if width >= height:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME)
else:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME | pygame.SCALED | pygame.FULLSCREEN)

clock = pygame.time.Clock()
FPS = 30

lane_pos = [50, 95, 142, 190]

# COLORS **********************************************************************

WHITE = (255, 255, 255)
BLUE = (30, 144,255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLACK = (0, 0, 20)

# FONTS ***********************************************************************

font = pygame.font.SysFont('cursive', 32)

select_car = font.render('Select Car', True, WHITE)

# IMAGES **********************************************************************

bg = pygame.image.load('Assets/bg.png')

home_img = pygame.image.load('Assets/home.png')
play_img = pygame.image.load('Assets/buttons/play.png')
end_img = pygame.image.load('Assets/end.jpg')
end_img = pygame.transform.scale(end_img, (WIDTH, HEIGHT))
game_over_img = pygame.image.load('Assets/game_over.png')
game_over_img = pygame.transform.scale(game_over_img, (220, 220))
coin_img = pygame.image.load('Assets/coins/1.png')
dodge_img = pygame.image.load('Assets/car_dodge.png')

left_arrow = pygame.image.load('Assets/buttons/arrow.png')
right_arrow = pygame.transform.flip(left_arrow, True, False)

home_btn_img = pygame.image.load('Assets/buttons/home.png')
replay_img = pygame.image.load('Assets/buttons/replay.png')
sound_off_img = pygame.image.load("Assets/buttons/soundOff.png")
sound_on_img = pygame.image.load("Assets/buttons/soundOn.png")

cars = []
car_type = 0
for i in range(1, 9):
    img = pygame.image.load(f'Assets/cars/{i}.png')
    img = pygame.transform.scale(img, (59, 101))
    cars.append(img)

nitro_frames = []
nitro_counter = 0
for i in range(6):
    img = pygame.image.load(f'Assets/nitro/{i}.gif')
    img = pygame.transform.flip(img, False, True)
    img = pygame.transform.scale(img, (18, 36))
    nitro_frames.append(img)

# FUNCTIONS *******************************************************************
def center(image):
    return (WIDTH // 2) - image.get_width() // 2

# BUTTONS *********************************************************************
play_btn = Button(play_img, (100, 34), center(play_img)+10, HEIGHT-80)
la_btn = Button(left_arrow, (32, 42), 40, 180)
ra_btn = Button(right_arrow, (32, 42), WIDTH-60, 180)

home_btn = Button(home_btn_img, (24, 24), WIDTH // 4 - 18, HEIGHT - 80)
replay_btn = Button(replay_img, (36,36), WIDTH // 2  - 18, HEIGHT - 86)
sound_btn = Button(sound_on_img, (24, 24), WIDTH - WIDTH // 4 - 18, HEIGHT - 80)

# SOUNDS **********************************************************************

click_fx = pygame.mixer.Sound('Sounds/click.mp3')
fuel_fx = pygame.mixer.Sound('Sounds/fuel.wav')
start_fx = pygame.mixer.Sound('Sounds/start.mp3')
restart_fx = pygame.mixer.Sound('Sounds/restart.mp3')
coin_fx = pygame.mixer.Sound('Sounds/coin.mp3')

pygame.mixer.music.load('Sounds/mixkit-tech-house-vibes-130.mp3')
pygame.mixer.music.play(loops=-1)
pygame.mixer.music.set_volume(0.6)

# OBJECTS *********************************************************************
road = Road()
nitro = Nitro(WIDTH-80, HEIGHT-80)
p = Player(100, HEIGHT-120, car_type)

tree_group = pygame.sprite.Group()
coin_group = pygame.sprite.Group()
fuel_group = pygame.sprite.Group()
obstacle_group = pygame.sprite.Group()

# VARIABLES *******************************************************************
home_page = True
car_page = False
game_page = False
over_page = False

move_left = False
move_right = False
nitro_on = False
sound_on = True

counter = 0
counter_inc = 1
# speed = 3
speed = 10
dodged = 0
coins = 0
cfuel = 100

endx, enddx = 0, 0.5
gameovery = -50

running = True
while running:
    win.fill(BLACK)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE or event.key == pygame.K_q:
                running = False

            if event.key == pygame.K_LEFT:
                move_left = True

            if event.key == pygame.K_RIGHT:
                move_right = True

            if event.key == pygame.K_n:
                nitro_on = True

        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT:
                move_left = False

            if event.key == pygame.K_RIGHT:
                move_right = False

            if event.key == pygame.K_n:
                nitro_on = False
                speed = 3
                counter_inc = 1

        if event.type == pygame.MOUSEBUTTONDOWN:
            x, y = event.pos

            if nitro.rect.collidepoint((x, y)):
                nitro_on = True
            else:
                if x <= WIDTH // 2:
                    move_left = True
                else:
                    move_right = True

        if event.type == pygame.MOUSEBUTTONUP:
            move_left = False
            move_right = False
            nitro_on = False
            speed = 3
            counter_inc = 1

    if home_page:
        win.blit(home_img, (0,0))
        counter += 1
        if counter % 60 == 0:
            home_page = False
            car_page = True

    if car_page:
        win.blit(select_car, (center(select_car), 80))

        win.blit(cars[car_type], (WIDTH//2-30, 150))
        if la_btn.draw(win):
            car_type -= 1
            click_fx.play()
            if car_type < 0:
                car_type = len(cars) - 1

        if ra_btn.draw(win):
            car_type += 1
            click_fx.play()
            if car_type >= len(cars):
                car_type = 0

        if play_btn.draw(win):
            car_page = False
            game_page = True

            start_fx.play()

            p = Player(100, HEIGHT-120, car_type)
            counter = 0

    if over_page:
        win.blit(end_img, (endx, 0))
        endx += enddx
        if endx >= 10 or endx<=-10:
            enddx *= -1

        win.blit(game_over_img, (center(game_over_img), gameovery))
        if gameovery < 16:
            gameovery += 1

        num_coin_img = font.render(f'{coins}', True, WHITE)
        num_dodge_img = font.render(f'{dodged}', True, WHITE)
        distance_img = font.render(f'Distance : {counter/1000:.2f} km', True, WHITE)

        win.blit(coin_img, (80, 240))
        win.blit(dodge_img, (50, 280))
        win.blit(num_coin_img, (180, 250))
        win.blit(num_dodge_img, (180, 300))
        win.blit(distance_img, (center(distance_img), (350)))

        if home_btn.draw(win):
            over_page = False
            home_page = True

            coins = 0
            dodged = 0
            counter = 0
            nitro.gas = 0
            cfuel = 100

            endx, enddx = 0, 0.5
            gameovery = -50

        if replay_btn.draw(win):
            over_page = False
            game_page = True

            coins = 0
            dodged = 0
            counter = 0
            nitro.gas = 0
            cfuel = 100

            endx, enddx = 0, 0.5
            gameovery = -50

            restart_fx.play()

        if sound_btn.draw(win):
            sound_on = not sound_on

            if sound_on:
                sound_btn.update_image(sound_on_img)
                pygame.mixer.music.play(loops=-1)
            else:
                sound_btn.update_image(sound_off_img)
                pygame.mixer.music.stop()

    if game_page:
        win.blit(bg, (0,0))
        road.update(speed)
        road.draw(win)

        counter += counter_inc
        if counter % 60 == 0:
            tree = Tree(random.choice([-5, WIDTH-35]), -20)
            tree_group.add(tree)

        if counter % 270 == 0:
            type = random.choices([1, 2], weights=[6, 4], k=1)[0]
            x = random.choice(lane_pos)+10
            if type == 1:
                count = random.randint(1, 3)
                for i in range(count):
                    coin = Coins(x,-100 - (25 * i))
                    coin_group.add(coin)
            elif type == 2:
                fuel = Fuel(x, -100)
                fuel_group.add(fuel)
        elif counter % 90 == 0:
            obs = random.choices([1, 2, 3], weights=[6,2,2], k=1)[0]
            obstacle = Obstacle(obs)
            obstacle_group.add(obstacle)

        if nitro_on and nitro.gas > 0:
            x, y = p.rect.centerx - 8, p.rect.bottom - 10
            win.blit(nitro_frames[nitro_counter], (x, y))
            nitro_counter = (nitro_counter + 1) % len(nitro_frames)

            speed = 10
            if counter_inc == 1:
                counter = 0
                counter_inc = 5

        if nitro.gas <= 0:
            speed = 3
            counter_inc = 1

        nitro.update(nitro_on)
        nitro.draw(win)
        obstacle_group.update(speed)
        obstacle_group.draw(win)
        tree_group.update(speed)
        tree_group.draw(win)
        coin_group.update(speed)
        coin_group.draw(win)
        fuel_group.update(speed)
        fuel_group.draw(win)

        p.update(move_left, move_right)
        p.draw(win)

        if cfuel > 0:
            pygame.draw.rect(win, GREEN, (20, 20, cfuel, 15), border_radius=5)
        pygame.draw.rect(win, WHITE, (20, 20, 100, 15), 2, border_radius=5)
        cfuel -= 0.05

        # COLLISION DETECTION & KILLS
        for obstacle in obstacle_group:
            if obstacle.rect.y >= HEIGHT:
                if obstacle.type == 1:
                    dodged += 1
                obstacle.kill() 

            if pygame.sprite.collide_mask(p, obstacle):
                pygame.draw.rect(win, RED, p.rect, 1)
                speed = 0

                game_page = False
                over_page = True

                tree_group.empty()
                coin_group.empty()
                fuel_group.empty()
                obstacle_group.empty()

        if pygame.sprite.spritecollide(p, coin_group, True):
            coins += 1
            coin_fx.play()

        if pygame.sprite.spritecollide(p, fuel_group, True):
            cfuel += 25
            fuel_fx.play()
            if cfuel >= 100:
                cfuel = 100

    pygame.draw.rect(win, BLUE, (0, 0, WIDTH, HEIGHT), 3)
    clock.tick(FPS)
    pygame.display.update()

pygame.quit()

# 今天给大家介绍一款Python制作的汽车避障小游戏
# 主要通过Pygame实现的,运行代码,选择车型,进入游戏
# 可以控制左右移动,点击右下角可以进行加速
# 金币可以增加积分,撞到障碍物则游戏介绍
7、洞窟物语

游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import pygame
import pickle

from objects import World, load_level, Button, Player, Portal, game_data

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512
win = pygame.display.set_mode(SCREEN, pygame.SCALED | pygame.FULLSCREEN)
clock = pygame.time.Clock()
FPS = 45

tile_size = 16

# Images

bg = pygame.image.load("Assets/bg.png")

cave_story = pygame.transform.rotate(pygame.image.load("Assets/cave_story.png"), 90)
cave_story = pygame.transform.scale(cave_story, (150,300))

game_won_img = pygame.transform.rotate(pygame.image.load("Assets/win.png"), -90)
game_won_img = pygame.transform.scale(game_won_img, (150,300))

# Sounds
pygame.mixer.music.load('Sounds/goodbyte_sad-rpg-town.mp3')
pygame.mixer.music.play(loops=-1)

replay_fx =  pygame.mixer.Sound('Sounds/replay.wav')

# Buttons

move_btn = pygame.image.load("Assets/movement.jpeg")
move_btn = pygame.transform.rotate(move_btn, -90)
move_btn = pygame.transform.scale(move_btn, (42, HEIGHT))

play_img = pygame.transform.rotate(pygame.image.load("Assets/play.png"), -90)
play_btn = Button(play_img, (60, 150), 30, 170)

quit_img = pygame.transform.rotate(pygame.image.load("Assets/quit.png"), -90)
quit_btn = Button(quit_img, (60, 150), 140, 170)

replay_img = pygame.transform.rotate(pygame.image.load("Assets/replay.png"), -90)
replay_btn = Button(replay_img, (40, 40), 100, 190)

sound_off_img = pygame.transform.rotate(pygame.image.load("Assets/sound_off.png"), -90)
sound_on_img = pygame.transform.rotate(pygame.image.load("Assets/sound_on.png"), -90)
sound_btn = Button(sound_on_img, (40, 40), 100, 260)

# Variables

current_level = 1
MAX_LEVEL = 3
show_keys = True
pressed_keys = [False, False, False, False]

dir_dict = {
    'Up' : pygame.Rect(5, 27, 35, 50),
    'Down' : pygame.Rect(5, 160, 35, 50),
    'Left' :  pygame.Rect(5, 320, 35, 50),
    'Right' : pygame.Rect(5, 450, 35, 50)
}

# groups 
diamond_group = pygame.sprite.Group()
spike_group = pygame.sprite.Group()
plant_group = pygame.sprite.Group()
board_group = pygame.sprite.Group()
chain_group = pygame.sprite.Group()
groups = [diamond_group, spike_group, plant_group, board_group, chain_group]

data = load_level(current_level)
(player_x, player_y), (portal_x, portal_y) = game_data(current_level)

world = World(win, data, groups)
player = Player(win, (player_x,player_y), world, groups)
portal = Portal(portal_x, portal_y, win)

game_started = False
game_over = False
game_won = False
replay_menu = False
sound_on = True

bgx = 0
bgcounter = 0
bgdx = 1

running = True
while running:
    win.blit(bg, (bgx, 0))
    for group in groups:
        group.draw(win)
    world.draw()

    if not game_started:
        win.blit(cave_story, (100,100))
        if play_btn.draw(win):
            game_started = True
    elif game_won:
        win.blit(game_won_img, (100,100))
    else:
        if show_keys:
            win.blit(move_btn, (0,0))
            bgcounter += 1
            if bgcounter >= 15:
                bgcounter = 0
                bgx += bgdx
                if bgx < 0 or bgx >5 :
                    bgdx *= -1

    #   for rect in dir_dict:
    #       pygame.draw.rect(win, (255, 0, 0), dir_dict[rect])

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False

            if event.type == pygame.MOUSEBUTTONDOWN:
                pos = event.pos
                if show_keys:
                    if dir_dict["Up"].collidepoint(pos):
                        pressed_keys[0] = True
                    if dir_dict["Down"].collidepoint(pos):
                        pressed_keys[1] = True
                    if dir_dict["Left"].collidepoint(pos):
                        pressed_keys[2] = True
                    if dir_dict["Right"].collidepoint(pos):
                        pressed_keys[3] = True

            if event.type == pygame.MOUSEBUTTONUP:
                pressed_keys = [False, False, False, False]

        portal.update()

        if not game_over:
            game_over = player.update(pressed_keys, game_over)
            if game_over:
                show_keys = False
                replay_menu = True

        if player.rect.colliderect(portal) and player.rect.top > portal.rect.top and player.rect.bottom < portal.rect.bottom:
            if current_level < MAX_LEVEL:
                current_level += 1
                for group in groups:
                    group.empty()

                data = load_level(current_level)
                (player_x, player_y), (portal_x, portal_y) = game_data(current_level)

                world = World(win, data, groups)
                player = Player(win, (player_x,player_y), world, groups)
                portal = Portal(portal_x, portal_y, win)
            else:
                show_keys = False
                game_won = True

        if replay_menu:
            if quit_btn.draw(win):
                running = False

            if sound_btn.draw(win):
                sound_on = not sound_on

                if sound_on:
                    sound_btn.update_image(sound_on_img)
                    pygame.mixer.music.play(loops=-1)
                else:
                    sound_btn.update_image(sound_off_img)
                    pygame.mixer.music.stop()

            if replay_btn.draw(win):
                show_keys = True
                replay_menu = False
                game_over = False
                replay_fx.play()

                for group in groups:
                    group.empty()

                data = load_level(current_level)
                (player_x, player_y), (portal_x, portal_y) = game_data(current_level)

                world = World(win, data, groups)
                player = Player(win, (player_x,player_y), world, groups)
                portal = Portal(portal_x, portal_y, win)

    clock.tick(FPS)
    pygame.display.update()

pygame.quit()
8、联系

游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

# Connected

# Author : Prajjwal Pathak (pyguru)
# Date : Thursday, 8 August, 2021

import random
import pygame

from objects import Balls, Coins, Tiles, Particle, Message, Button

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512
CENTER = WIDTH //2, HEIGHT // 2

info = pygame.display.Info()
width = info.current_w
height = info.current_h

if width >= height:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME)
else:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME | pygame.SCALED | pygame.FULLSCREEN)
pygame.display.set_caption('Connected')

clock = pygame.time.Clock()
FPS = 90

# COLORS **********************************************************************

RED = (255,0,0)
GREEN = (0,177,64)
BLUE = (30, 144,255)
ORANGE = (252,76,2)
YELLOW = (254,221,0)
PURPLE = (155,38,182)
AQUA = (0,103,127)
WHITE = (255,255,255)
BLACK = (0,0,0)
GRAY = (25, 25, 25)

color_list = [PURPLE, GREEN, BLUE, ORANGE, YELLOW, RED]
color_index = 0
color = color_list[color_index]

# SOUNDS **********************************************************************

flip_fx = pygame.mixer.Sound('Sounds/flip.mp3')
score_fx = pygame.mixer.Sound('Sounds/point.mp3')
dead_fx = pygame.mixer.Sound('Sounds/dead.mp3')
score_page_fx = pygame.mixer.Sound('Sounds/score_page.mp3')

pygame.mixer.music.load('Sounds/bgm.mp3')
pygame.mixer.music.play(loops=-1)
pygame.mixer.music.set_volume(0.5)


# FONTS ***********************************************************************

title_font = "Fonts/Aladin-Regular.ttf"
score_font = "Fonts/DroneflyRegular-K78LA.ttf"
game_over_font = "Fonts/ghostclan.ttf"
final_score_font = "Fonts/DalelandsUncialBold-82zA.ttf"
new_high_font = "Fonts/BubblegumSans-Regular.ttf"


connected = Message(WIDTH//2, 120, 55, "ConnecteD", title_font, WHITE, win)
score_msg = Message(WIDTH//2, 100, 60, "0", score_font, (150, 150, 150), win)
game_msg = Message(80, 150, 40, "GAME", game_over_font, BLACK, win)
over_msg = Message(210, 150, 40, "OVER!", game_over_font, WHITE, win)
final_score = Message(WIDTH//2, HEIGHT//2, 90, "0", final_score_font, RED, win)
new_high_msg = Message(WIDTH//2, HEIGHT//2+60, 20, "New High", None, GREEN, win)

# Button images

home_img = pygame.image.load('Assets/homeBtn.png')
replay_img = pygame.image.load('Assets/replay.png')
sound_off_img = pygame.image.load("Assets/soundOffBtn.png")
sound_on_img = pygame.image.load("Assets/soundOnBtn.png")
easy_img = pygame.image.load("Assets/easy.jpg")
hard_img = pygame.image.load("Assets/hard.jpg")

# Buttons

easy_btn = Button(easy_img, (70, 24), WIDTH//4-10, HEIGHT-100)
hard_btn = Button(hard_img, (70, 24), WIDTH//2 + 10, HEIGHT-100)
home_btn = Button(home_img, (24, 24), WIDTH // 4 - 18, HEIGHT//2 + 120)
replay_btn = Button(replay_img, (36,36), WIDTH // 2  - 18, HEIGHT//2 + 115)
sound_btn = Button(sound_on_img, (24, 24), WIDTH - WIDTH // 4 - 18, HEIGHT//2 + 120)

# Groups **********************************************************************

RADIUS = 70
ball_group = pygame.sprite.Group()
coin_group = pygame.sprite.Group()
tile_group = pygame.sprite.Group()
particle_group = pygame.sprite.Group()

ball = Balls((CENTER[0], CENTER[1]+RADIUS), RADIUS, 90, win)
ball_group.add(ball)
ball = Balls((CENTER[0], CENTER[1]-RADIUS), RADIUS, 270, win)
ball_group.add(ball)

# TIME ************************************************************************

start_time = pygame.time.get_ticks()
current_time = 0
coin_delta = 850
tile_delta = 2000

# VARIABLES *******************************************************************

clicked = False
new_coin = True
num_clicks = 0
score = 0

player_alive = True
score = 0
highscore = 0
sound_on = True
easy_level = True

home_page = True
game_page = False
score_page = False

running = True
while running:
    win.fill(GRAY)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE or \
                event.key == pygame.K_q:
                running = False

        if event.type == pygame.MOUSEBUTTONDOWN and game_page:
            if not clicked:
                clicked = True
                for ball in ball_group:
                    ball.dtheta *= -1
                    flip_fx.play()

                num_clicks += 1
                if num_clicks % 5 == 0:
                    color_index += 1
                    if color_index > len(color_list) - 1:
                        color_index = 0

                    color = color_list[color_index]

        if event.type == pygame.MOUSEBUTTONDOWN and game_page:
            clicked = False

    if home_page:
        connected.update()

        pygame.draw.circle(win, BLACK, CENTER, 80, 20)
        ball_group.update(color)

        if easy_btn.draw(win):
            ball_group.empty()
            ball = Balls((CENTER[0], CENTER[1]+RADIUS), RADIUS, 90, win)
            ball_group.add(ball)

            home_page = False
            game_page = True
            easy_level = True

        if hard_btn.draw(win):
            ball_group.empty()
            ball = Balls((CENTER[0], CENTER[1]+RADIUS), RADIUS, 90, win)
            ball_group.add(ball)
            ball = Balls((CENTER[0], CENTER[1]-RADIUS), RADIUS, 270, win)
            ball_group.add(ball)

            home_page = False
            game_page = True
            easy_level = False

    if score_page:
        game_msg.update()
        over_msg.update()

        if score:
            final_score.update(score, color)
        else:
            final_score.update("0", color)
        if score and (score >= highscore):
            new_high_msg.update(shadow=False)

        if home_btn.draw(win):
            home_page = True
            score_page = False
            game_page = False
            player_alive = True
            score = 0
            score_msg = Message(WIDTH//2, 100, 60, "0", score_font, (150, 150, 150), win)

        if replay_btn.draw(win):
            home_page = False
            score_page = False
            game_page = True
            score = 0
            score_msg = Message(WIDTH//2, 100, 60, "0", score_font, (150, 150, 150), win)

            if easy_level:
                ball = Balls((CENTER[0], CENTER[1]+RADIUS), RADIUS, 90, win)
                ball_group.add(ball)
            else:
                ball = Balls((CENTER[0], CENTER[1]+RADIUS), RADIUS, 90, win)
                ball_group.add(ball)
                ball = Balls((CENTER[0], CENTER[1]-RADIUS), RADIUS, 270, win)
                ball_group.add(ball)

            player_alive = True


        if sound_btn.draw(win):
            sound_on = not sound_on

            if sound_on:
                sound_btn.update_image(sound_on_img)
                pygame.mixer.music.play(loops=-1)
            else:
                sound_btn.update_image(sound_off_img)
                pygame.mixer.music.stop()

    if game_page:
        pygame.draw.circle(win, BLACK, CENTER, 80, 20)
        ball_group.update(color)
        coin_group.update(color)
        tile_group.update()
        score_msg.update(score)
        particle_group.update()

        if player_alive:
            for ball in ball_group:
                if pygame.sprite.spritecollide(ball, coin_group, True):
                    score_fx.play()
                    score += 1
                    if highscore <= score:
                            highscore = score

                    x, y = ball.rect.center
                    for i in range(10):
                        particle = Particle(x, y, color, win)
                        particle_group.add(particle)

                if pygame.sprite.spritecollide(ball, tile_group, True):
                    x, y = ball.rect.center
                    for i in range(30):
                        particle = Particle(x, y, color, win)
                        particle_group.add(particle)

                    player_alive = False
                    dead_fx.play()

            current_time = pygame.time.get_ticks()
            delta = current_time- start_time
            if  coin_delta < delta < coin_delta + 100 and new_coin:
                y = random.randint(CENTER[1]-RADIUS, CENTER[1]+RADIUS)
                coin = Coins(y, win)
                coin_group.add(coin)
                new_coin = False

            if current_time- start_time >= tile_delta:
                y = random.choice([CENTER[1]-80, CENTER[1], CENTER[1]+80])
                type_ = random.randint(1,3)
                t = Tiles(y, type_, win)
                tile_group.add(t)

                start_time = current_time
                new_coin = True

        if not player_alive and len(particle_group) == 0:
            score_page = True
            game_page = False

            score_page_fx.play()

            ball_group.empty()
            tile_group.empty()
            coin_group.empty()

    pygame.draw.rect(win, BLUE, (0, 0, WIDTH, HEIGHT), 5, border_radius=10)
    clock.tick(FPS)
    pygame.display.update()

pygame.quit()
9、恐龙避障

代码太多了,接下来就简单介绍下,有兴趣的在公众号内回复【游戏】即可获取所有的游戏源码。

游戏代码大全可复制,pygame,python,开发语言,人工智能

10、狡猾的墙

游戏代码大全可复制,pygame,python,开发语言,人工智能

11、点和盒子

游戏代码大全可复制,pygame,python,开发语言,人工智能

12、捉蛋游戏

游戏代码大全可复制,pygame,python,开发语言,人工智能

13、愤怒的小鸟

游戏代码大全可复制,pygame,python,开发语言,人工智能

14、捉鬼特工队

游戏代码大全可复制,pygame,python,开发语言,人工智能

15、绞刑吏

游戏代码大全可复制,pygame,python,开发语言,人工智能

16、六角冲

游戏代码大全可复制,pygame,python,开发语言,人工智能

17、匹配选择

游戏代码大全可复制,pygame,python,开发语言,人工智能

18、丛林探险

游戏代码大全可复制,pygame,python,开发语言,人工智能

19、关卡设计

游戏代码大全可复制,pygame,python,开发语言,人工智能

20、记忆拼图

游戏代码大全可复制,pygame,python,开发语言,人工智能

21、扫雷

游戏代码大全可复制,pygame,python,开发语言,人工智能

22、钢琴砖

游戏代码大全可复制,pygame,python,开发语言,人工智能

23、图片滑动拼图

游戏代码大全可复制,pygame,python,开发语言,人工智能

24、乒乓球

游戏代码大全可复制,pygame,python,开发语言,人工智能

25、冲刺

游戏代码大全可复制,pygame,python,开发语言,人工智能

26、石头剪刀布

游戏代码大全可复制,pygame,python,开发语言,人工智能

27、旋转冲击

游戏代码大全可复制,pygame,python,开发语言,人工智能

28、贪吃蛇

游戏代码大全可复制,pygame,python,开发语言,人工智能

29、剪刀

游戏代码大全可复制,pygame,python,开发语言,人工智能

30、俄罗斯方块

游戏代码大全可复制,pygame,python,开发语言,人工智能

相关文件及代码都已上传,公众号回复【游戏】即可获取。

万水千山总是情,点个 👍 行不行。文章来源地址https://www.toymoban.com/news/detail-826501.html

推荐阅读


 
···  END  ···

大家好,小编为大家解答简单的python小游戏代码的问题。很多人还不知道python简单的小游戏代码,现在让我们一起来看看吧!

游戏代码大全可复制,pygame,python,开发语言,人工智能

游戏代码大全可复制,pygame,python,开发语言,人工智能

大家好,我是小F~

经常听到有朋友说,学习编程是一件非常枯燥无味的事情python实现猴子跳台阶。其实,大家有没有认真想过,可能是我们的学习方法不对?

比方说,你有没有想过,可以通过打游戏来学编程?

今天我想跟大家分享30个Python小游戏,教你如何通过边打游戏边学编程!

相关文件及代码都已上传,公众号回复【游戏】即可获取python一级证书有用吗。

接下来就一起来看看吧~

1、飞机大战

游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import random
import pygame
from objects import Background, Player, Enemy, Bullet, Explosion, Fuel, \
                    Powerup, Button, Message, BlinkingText

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512

info = pygame.display.Info()
width = info.current_w
height = info.current_h

if width >= height:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME)
else:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME | pygame.SCALED | pygame.FULLSCREEN)

clock = pygame.time.Clock()
FPS = 60

# COLORS **********************************************************************

WHITE = (255, 255, 255)
BLUE = (30, 144,255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLACK = (0, 0, 20)

# IMAGES **********************************************************************

plane_img = pygame.image.load('Assets/plane.png')
logo_img = pygame.image.load('Assets/logo.png')
fighter_img = pygame.image.load('Assets/fighter.png')
clouds_img = pygame.image.load('Assets/clouds.png')
clouds_img = pygame.transform.scale(clouds_img, (WIDTH, 350))

home_img = pygame.image.load('Assets/Buttons/homeBtn.png')
replay_img = pygame.image.load('Assets/Buttons/replay.png')
sound_off_img = pygame.image.load("Assets/Buttons/soundOffBtn.png")
sound_on_img = pygame.image.load("Assets/Buttons/soundOnBtn.png")


# BUTTONS *********************************************************************

home_btn = Button(home_img, (24, 24), WIDTH // 4 - 18, HEIGHT//2 + 120)
replay_btn = Button(replay_img, (36,36), WIDTH // 2  - 18, HEIGHT//2 + 115)
sound_btn = Button(sound_on_img, (24, 24), WIDTH - WIDTH // 4 - 18, HEIGHT//2 + 120)


# FONTS ***********************************************************************

game_over_font = 'Fonts/ghostclan.ttf'
tap_to_play_font = 'Fonts/BubblegumSans-Regular.ttf'
score_font = 'Fonts/DalelandsUncialBold-82zA.ttf'
final_score_font = 'Fonts/DroneflyRegular-K78LA.ttf'

game_over_msg = Message(WIDTH//2, 230, 30, 'Game Over', game_over_font, WHITE, win)
score_msg = Message(WIDTH-50, 28, 30, '0', final_score_font, RED, win)
final_score_msg = Message(WIDTH//2, 280, 30, '0', final_score_font, RED, win)
tap_to_play_msg = tap_to_play = BlinkingText(WIDTH//2, HEIGHT-60, 25, "Tap To Play",
                 tap_to_play_font, WHITE, win)


# SOUNDS **********************************************************************

player_bullet_fx = pygame.mixer.Sound('Sounds/gunshot.wav')
click_fx = pygame.mixer.Sound('Sounds/click.mp3')
collision_fx = pygame.mixer.Sound('Sounds/mini_exp.mp3')
blast_fx = pygame.mixer.Sound('Sounds/blast.wav')
fuel_fx = pygame.mixer.Sound('Sounds/fuel.wav')

pygame.mixer.music.load('Sounds/Defrini - Spookie.mp3')
pygame.mixer.music.play(loops=-1)
pygame.mixer.music.set_volume(0.1)


# GROUPS & OBJECTS ************************************************************

bg = Background(win)
p = Player(144, HEIGHT - 100)

enemy_group = pygame.sprite.Group()
player_bullet_group = pygame.sprite.Group()
enemy_bullet_group = pygame.sprite.Group()
explosion_group = pygame.sprite.Group()
fuel_group = pygame.sprite.Group()
powerup_group = pygame.sprite.Group()

# FUNCTIONS *******************************************************************

def shoot_bullet():
    x, y = p.rect.center[0], p.rect.y

    if p.powerup > 0:
        for dx in range(-3, 4):
            b = Bullet(x, y, 4, dx)
            player_bullet_group.add(b)
        p.powerup -= 1
    else:
        b = Bullet(x-30, y, 6)
        player_bullet_group.add(b)
        b = Bullet(x+30, y, 6)
        player_bullet_group.add(b)
    player_bullet_fx.play()

def reset():
    enemy_group.empty()
    player_bullet_group.empty()
    enemy_bullet_group.empty()
    explosion_group.empty()
    fuel_group.empty()
    powerup_group.empty()

    p.reset(p.x, p.y)

# VARIABLES *******************************************************************

level = 1
plane_destroy_count = 0
plane_frequency = 5000
start_time = pygame.time.get_ticks()

moving_left = False
moving_right = False

home_page = True
game_page = False
score_page = False

score = 0
sound_on = True

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE or event.key == pygame.K_q:
                running = False

        if event.type == pygame.KEYDOWN and game_page:
            if event.key == pygame.K_LEFT:
                moving_left = True
            if event.key == pygame.K_RIGHT:
                moving_right = True
            if event.key == pygame.K_SPACE:
                shoot_bullet()

        if event.type == pygame.MOUSEBUTTONDOWN:
            if home_page:
                home_page = False
                game_page = True
                click_fx.play()
            elif game_page:
                x, y = event.pos
                if p.rect.collidepoint((x,y)):
                    shoot_bullet()
                elif x <= WIDTH // 2:
                    moving_left = True
                elif x > WIDTH // 2:
                    moving_right = True

        if event.type == pygame.KEYUP:
            moving_left = False
            moving_right = False

        if event.type == pygame.MOUSEBUTTONUP:
            moving_left = False
            moving_right = False

    if home_page:
        win.fill(BLACK)
        win.blit(logo_img, (30, 80))
        win.blit(fighter_img, (WIDTH//2 - 50, HEIGHT//2))
        pygame.draw.circle(win, WHITE, (WIDTH//2, HEIGHT//2 + 50), 50, 4)
        tap_to_play_msg.update()

    if score_page:
        win.fill(BLACK)
        win.blit(logo_img, (30, 50))
        game_over_msg.update()
        final_score_msg.update(score)

        if home_btn.draw(win):
            home_page = True
            game_page = False
            score_page = False
            reset()
            click_fx.play()

            plane_destroy_count = 0
            level = 1
            score = 0

        if replay_btn.draw(win):
            score_page = False
            game_page = True
            reset()
            click_fx.play()

            plane_destroy_count = 0
            score = 0

        if sound_btn.draw(win):
            sound_on = not sound_on

            if sound_on:
                sound_btn.update_image(sound_on_img)
                pygame.mixer.music.play(loops=-1)
            else:
                sound_btn.update_image(sound_off_img)
                pygame.mixer.music.stop()

    if game_page:

        current_time = pygame.time.get_ticks()
        delta_time = current_time - start_time
        if delta_time >= plane_frequency:
            if level == 1:
                type = 1
            elif level == 2:
                type = 2
            elif level == 3:
                type = 3
            elif level == 4:
                type = random.randint(4, 5)
            elif level == 5:
                type = random.randint(1, 5)

            x = random.randint(10, WIDTH - 100)
            e = Enemy(x, -150, type)
            enemy_group.add(e)
            start_time = current_time

        if plane_destroy_count:
            if plane_destroy_count % 5 == 0 and level < 5:
                level += 1
                plane_destroy_count = 0

        p.fuel -= 0.05
        bg.update(1)
        win.blit(clouds_img, (0, 70))

        p.update(moving_left, moving_right, explosion_group)
        p.draw(win)

        player_bullet_group.update()
        player_bullet_group.draw(win)
        enemy_bullet_group.update()
        enemy_bullet_group.draw(win)
        explosion_group.update()
        explosion_group.draw(win)
        fuel_group.update()
        fuel_group.draw(win)
        powerup_group.update()
        powerup_group.draw(win)

        enemy_group.update(enemy_bullet_group, explosion_group)
        enemy_group.draw(win)

        if p.alive:
            player_hit = pygame.sprite.spritecollide(p, enemy_bullet_group, False)
            for bullet in player_hit:
                p.health -= bullet.damage

                x, y = bullet.rect.center
                explosion = Explosion(x, y, 1)
                explosion_group.add(explosion)

                bullet.kill()
                collision_fx.play()

            for bullet in player_bullet_group:
                planes_hit = pygame.sprite.spritecollide(bullet, enemy_group, False)
                for plane in planes_hit:
                    plane.health -= bullet.damage
                    if plane.health <= 0:
                        x, y = plane.rect.center
                        rand = random.random()
                        if rand >= 0.9:
                            power = Powerup(x, y)
                            powerup_group.add(power)
                        elif rand >= 0.3:
                            fuel = Fuel(x, y)
                            fuel_group.add(fuel)

                        plane_destroy_count += 1
                        blast_fx.play()

                    x, y = bullet.rect.center
                    explosion = Explosion(x, y, 1)
                    explosion_group.add(explosion)

                    bullet.kill()
                    collision_fx.play()

            player_collide = pygame.sprite.spritecollide(p, enemy_group, True)
            if player_collide:
                x, y = p.rect.center
                explosion = Explosion(x, y, 2)
                explosion_group.add(explosion)

                x, y = player_collide[0].rect.center
                explosion = Explosion(x, y, 2)
                explosion_group.add(explosion)

                p.health = 0
                p.alive = False

            if pygame.sprite.spritecollide(p, fuel_group, True):
                p.fuel += 25
                if p.fuel >= 100:
                    p.fuel = 100
                fuel_fx.play()

            if pygame.sprite.spritecollide(p, powerup_group, True):
                p.powerup += 2
                fuel_fx.play()

        if not p.alive or p.fuel <= -10:
            if len(explosion_group) == 0:
                game_page = False
                score_page = True
                reset()

        score += 1
        score_msg.update(score)

        fuel_color = RED if p.fuel <= 40 else GREEN
        pygame.draw.rect(win, fuel_color, (30, 20, p.fuel, 10), border_radius=4)
        pygame.draw.rect(win, WHITE, (30, 20, 100, 10), 2, border_radius=4)
        pygame.draw.rect(win, BLUE, (30, 32, p.health, 10), border_radius=4)
        pygame.draw.rect(win, WHITE, (30, 32, 100, 10), 2, border_radius=4)
        win.blit(plane_img, (10, 15))

    pygame.draw.rect(win, WHITE, (0,0, WIDTH, HEIGHT), 5, border_radius=4)
    clock.tick(FPS)
    pygame.display.update()

pygame.quit()
2、愤怒的墙
游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import pygame
import random

from objects import Player, Bar, Ball, Block, ScoreCard, Message, Particle, generate_particles

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512

info = pygame.display.Info()
width = info.current_w
height = info.current_h

if width >= height:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME)
else:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME | pygame.SCALED | pygame.FULLSCREEN)

clock = pygame.time.Clock()
FPS = 45

# COLORS

RED = (255, 0, 0)
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GRAY = (54, 69, 79)
c_list = [RED, BLACK, WHITE]

# Fonts

pygame.font.init()
score_font = pygame.font.Font('Fonts/BubblegumSans-Regular.ttf', 50)

# Sounds

coin_fx = pygame.mixer.Sound('Sounds/coin.mp3')
death_fx = pygame.mixer.Sound('Sounds/death.mp3')
move_fx = pygame.mixer.Sound('Sounds/move.mp3')

# backgrounds

bg_list = []
for i in range(1,5):
    if i == 2:
        ext = "jpeg"
    else:
        ext = "jpg"
    img = pygame.image.load(f"Assets/Backgrounds/bg{i}.{ext}")
    img = pygame.transform.scale(img, (WIDTH, HEIGHT))
    bg_list.append(img)

home_bg = pygame.image.load(f"Assets/Backgrounds/home.jpeg")

bg = home_bg

# objects
bar_group = pygame.sprite.Group()
ball_group = pygame.sprite.Group()
block_group = pygame.sprite.Group()
destruct_group = pygame.sprite.Group()
win_particle_group = pygame.sprite.Group()
bar_gap = 120

particles = []

p = Player(win)
score_card = ScoreCard(140, 40, win)

# Functions

def destroy_bird():
    x, y = p.rect.center
    for i in range (50):
        c = random.choice(c_list)
        particle = Particle(x,y, 1,c, win)
        destruct_group.add(particle)

def win_particles():
    for x,y in [(40, 120), (WIDTH - 20, 240), (15, HEIGHT - 30)]:
        for i in range(10):
            particle = Particle (x,y, 2, WHITE, win)
            win_particle_group.add(particle)

# Messages
title_font = "Fonts/Robus-BWqOd.otf"
dodgy = Message(134, 90, 100, "Angry",title_font, WHITE, win)
walls = Message(164, 145, 80, "Walls",title_font, WHITE, win)

tap_to_play_font = "Fonts/DebugFreeTrial-MVdYB.otf"
tap_to_play = Message(144, 400, 32, "TAP TO PLAY",tap_to_play_font, WHITE, win)
tap_to_replay = Message(144, 400, 30, "Tap to Replay",tap_to_play_font, WHITE, win)

# Variables

bar_width_list = [i for i in range (40,150,10)]
bar_frequency = 1200
bar_speed = 4
touched = False
pos = None
home_page = True
score_page = False
bird_dead = False
score = 0
high_score = 0
move_left = False
move_right = True
prev_x = 0
p_count = 0

running = True
while running:
    win.blit(bg, (0,0))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                running = False

        if event.type == pygame.MOUSEBUTTONDOWN and (home_page or score_page):
            home_page = False
            score_page = False
            win_particle_group.empty()

            bg = random.choice(bg_list)

            particles = []
            last_bar = pygame.time.get_ticks() - bar_frequency
            next_bar = 0
            bar_speed = 4
            bar_frequency = 1200
            bird_dead = False
            score = 0
            p_count = 0
            score_list = []

            for _ in range(15):
                x = random.randint(30, WIDTH - 30)
                y = random.randint(60, HEIGHT - 60)
                max = random.randint(8,16)
                b = Block(x,y,max, win)
                block_group.add(b)

        if event.type == pygame.MOUSEBUTTONDOWN and not home_page:
            if p.rect.collidepoint(event.pos):
                touched = True
                x, y = event.pos
                offset_x = p.rect.x - x

        if event.type == pygame.MOUSEBUTTONUP and not home_page:
            touched = False

        if event.type == pygame.MOUSEMOTION and not home_page:
            if touched:
                x, y = event.pos
                if move_right and prev_x > x:
                    move_right = False
                    move_left = True
                    move_fx.play()
                if move_left and  prev_x < x:
                    move_right = True
                    move_left = False
                    move_fx.play()

                prev_x = x
                p.rect.x =  x + offset_x

    if home_page:
        bg = home_bg
        particles = generate_particles(p, particles, WHITE, win)
        dodgy.update()
        walls.update()
        tap_to_play.update()
        p.update()

    elif score_page:
        bg = home_bg
        particles = generate_particles(p, particles, WHITE, win)
        tap_to_replay.update()
        p.update()
        score_msg.update()
        score_point.update()
        if p_count % 5 == 0:
            win_particles()
        p_count += 1
        win_particle_group.update()

    else:

        next_bar = pygame.time.get_ticks()
        if next_bar - last_bar >= bar_frequency and not bird_dead:
            bwidth = random.choice(bar_width_list)

            b1prime = Bar(0,0,bwidth+3,GRAY, win)
            b1 = Bar(0,-3,bwidth,WHITE,win)

            b2prime = Bar(bwidth+bar_gap+3, 0, WIDTH - bwidth - bar_gap, GRAY, win)
            b2 = Bar(bwidth+bar_gap, -3, WIDTH - bwidth - bar_gap, WHITE, win)

            bar_group.add(b1prime)
            bar_group.add(b1)
            bar_group.add(b2prime)
            bar_group.add(b2)

            color = random.choice(["red", "white"])
            pos = random.choice([0,1])
            if pos == 0:
                x = bwidth + 12
            elif pos == 1:
                x = bwidth + bar_gap - 12
            ball = Ball(x, 10, 1, color, win)

            ball_group.add(ball)
            last_bar = next_bar

        for ball in ball_group:
            if ball.rect.colliderect(p):
                if ball.color == "white":
                    ball.kill()
                    coin_fx.play()
                    score += 1
                    if score > high_score:
                        high_score += 1
                    score_card.animate = True
                elif ball.color == "red":
                    if not bird_dead:
                        death_fx.play()
                        destroy_bird()

                    bird_dead = True
                    bar_speed = 0

        if pygame.sprite.spritecollide(p, bar_group, False):
            if not bird_dead:
                death_fx.play()
                destroy_bird()

            bird_dead = True
            bar_speed = 0

        block_group.update()
        bar_group.update(bar_speed)
        ball_group.update(bar_speed)

        if bird_dead:
                destruct_group.update()

        score_card.update(score)

        if not bird_dead:
            particles = generate_particles(p, particles, WHITE, win)
            p.update()

        if score and score % 10 == 0:
            rem = score // 10
            if rem not in score_list:
                score_list.append(rem)
                bar_speed += 1
                bar_frequency -= 200

        if bird_dead and len(destruct_group) == 0:
            score_page = True
            font =  "Fonts/BubblegumSans-Regular.ttf"
            if score < high_score:
                score_msg = Message(144, 60, 55, "Score",font, WHITE, win)
            else:
                score_msg = Message(144, 60, 55, "New High",font, WHITE, win)

            score_point = Message(144, 110, 45, f"{score}", font, WHITE, win)

        if score_page:
            block_group.empty()
            bar_group.empty()
            ball_group.empty()

            p.reset()

    clock.tick(FPS)
    pygame.display.update()

pygame.quit()
3、圆弧冲刺
游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import random
import pygame

from objects import Player, Balls, Dot, Shadow, Particle, Message, BlinkingText, Button

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512
CENTER = WIDTH //2, HEIGHT // 2

info = pygame.display.Info()
width = info.current_w
height = info.current_h

if width >= height:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME)
else:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME | pygame.SCALED | pygame.FULLSCREEN)

clock = pygame.time.Clock()
FPS = 60

# COLORS **********************************************************************

RED = (255,0,0)
GREEN = (0,177,64)
BLUE = (30, 144,255)
ORANGE = (252,76,2)
YELLOW = (254,221,0)
PURPLE = (155,38,182)
AQUA = (0,103,127)
WHITE = (255,255,255)
BLACK = (0,0,0)

color_list = [RED, GREEN, BLUE, ORANGE, YELLOW, PURPLE]
color_index = 0
color = color_list[color_index]

# FONTS ***********************************************************************

title_font = "Fonts/Aladin-Regular.ttf"
tap_to_play_font = "Fonts/BubblegumSans-Regular.ttf"
score_font = "Fonts/DalelandsUncialBold-82zA.ttf"
game_over_font = "Fonts/ghostclan.ttf"

# MESSAGES ********************************************************************

arc = Message(WIDTH-90, 200, 80, "Arc", title_font, WHITE, win)
dash = Message(80, 300, 60, "Dash", title_font, WHITE, win)
tap_to_play = BlinkingText(WIDTH//2, HEIGHT-60, 20, "Tap To Play", tap_to_play_font, WHITE, win)
game_msg = Message(80, 150, 40, "GAME", game_over_font, BLACK, win)
over_msg = Message(210, 150, 40, "OVER!", game_over_font, WHITE, win)
score_text = Message(90, 230, 20, "SCORE", None, BLACK, win)
best_text = Message(200, 230, 20, "BEST", None, BLACK, win)

score_msg = Message(WIDTH-60, 50, 50, "0", score_font, WHITE, win)
final_score_msg = Message(90, 280, 40, "0", tap_to_play_font, BLACK, win)
high_score_msg = Message(200, 280, 40, "0", tap_to_play_font, BLACK, win)

# SOUNDS **********************************************************************

score_fx = pygame.mixer.Sound('Sounds/point.mp3')
death_fx = pygame.mixer.Sound('Sounds/dead.mp3')
score_page_fx = pygame.mixer.Sound('Sounds/score_page.mp3')

pygame.mixer.music.load('Sounds/hk.mp3')
pygame.mixer.music.play(loops=-1)
pygame.mixer.music.set_volume(0.5)

# Button images

home_img = pygame.image.load('Assets/homeBtn.png')
replay_img = pygame.image.load('Assets/replay.png')
sound_off_img = pygame.image.load("Assets/soundOffBtn.png")
sound_on_img = pygame.image.load("Assets/soundOnBtn.png")

# Buttons

home_btn = Button(home_img, (24, 24), WIDTH // 4 - 18, 390)
replay_btn = Button(replay_img, (36,36), WIDTH // 2  - 18, 382)
sound_btn = Button(sound_on_img, (24, 24), WIDTH - WIDTH // 4 - 18, 390)

# GAME VARIABLES **************************************************************

MAX_RAD = 120
rad_delta = 50

# OBJECTS *********************************************************************

ball_group = pygame.sprite.Group()
dot_group = pygame.sprite.Group()
shadow_group = pygame.sprite.Group()
particle_group = pygame.sprite.Group()
p = Player(win)

ball_positions = [(CENTER[0]-105, CENTER[1]), (CENTER[0]+105, CENTER[1]),
                    (CENTER[0]-45, CENTER[1]), (CENTER[0]+45, CENTER[1]),
                    (CENTER[0], CENTER[1]-75), (CENTER[0], CENTER[1]+75)]
for index, pos in enumerate(ball_positions):
    if index in (0,1):
        type_ = 1
        inverter = 5
    if index in (2,3):
        type_ = 1
        inverter = 3
    if index in (4,5):
        type_ = 2
        inverter = 1
    ball = Balls(pos, type_, inverter, win)
    ball_group.add(ball)

dot_list = [(CENTER[0], CENTER[1]-MAX_RAD+3), (CENTER[0]+MAX_RAD-3, CENTER[1]),
            (CENTER[0], CENTER[1]+MAX_RAD-3), (CENTER[0]-MAX_RAD+3, CENTER[1])]
dot_index = random.choice([1,2,3,4])
dot_pos = dot_list[dot_index-1]
dot = Dot(*dot_pos, win)
dot_group.add(dot)

shadow = Shadow(dot_index, win)
shadow_group.add(shadow)


# VARIABLES *******************************************************************

clicked = False
num_clicks = 0
player_alive = True
sound_on = True

score = 0
highscore = 0

home_page = True
game_page = False
score_page = False

running = True
while running:
    win.fill(color)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE or \
                event.key == pygame.K_q:
                running = False

        if event.type == pygame.MOUSEBUTTONDOWN and home_page:
            home_page = False
            game_page = True
            score_page = False

            rad_delta = 50
            clicked = True
            score = 0
            num_clicks = 0
            player_alive = True

        if event.type == pygame.MOUSEBUTTONDOWN and game_page:
            if not clicked:
                clicked = True
                for ball in ball_group:
                    if num_clicks % ball.inverter == 0:
                        ball.dtheta *= -1

                p.set_move(dot_index)

                num_clicks += 1
                if num_clicks % 5 == 0:
                    color_index += 1
                    if color_index > len(color_list) - 1:
                        color_index = 0

                    color = color_list[color_index]

        if event.type == pygame.MOUSEBUTTONDOWN and game_page:
            clicked = False

    if home_page:
        for radius in [30, 60, 90, 120]:
            pygame.draw.circle(win, (0,0,0), CENTER, radius, 8)
            pygame.draw.circle(win, (255,255,255), CENTER, radius, 5)

        pygame.draw.rect(win, color, [CENTER[0]-10, CENTER[1]-MAX_RAD, MAX_RAD+50, MAX_RAD])
        pygame.draw.rect(win, color, [CENTER[0]-MAX_RAD, CENTER[1]-10, MAX_RAD, MAX_RAD+50])

        arc.update()
        dash.update()
        tap_to_play.update()

    if score_page:
        game_msg.update()
        over_msg.update()
        score_text.update(shadow=False)
        best_text.update(shadow=False)

        final_score_msg.update(score, shadow=False)
        high_score_msg.update(highscore, shadow=False)

        if home_btn.draw(win):
            home_page = True
            score_page = False
            game_page = False
            score = 0
            score_msg = Message(WIDTH-60, 50, 50, "0", score_font, WHITE, win)

        if replay_btn.draw(win):
            home_page = False
            score_page = False
            game_page = True

            player_alive = True
            score = 0
            score_msg = Message(WIDTH-60, 50, 50, "0", score_font, WHITE, win)
            p = Player(win)

        if sound_btn.draw(win):
            sound_on = not sound_on

            if sound_on:
                sound_btn.update_image(sound_on_img)
                pygame.mixer.music.play(loops=-1)
            else:
                sound_btn.update_image(sound_off_img)
                pygame.mixer.music.stop()

    if game_page:

        for radius in [30 + rad_delta, 60 + rad_delta, 90 + rad_delta, 120 + rad_delta]:
            if rad_delta > 0:
                radius -= 1
                rad_delta -= 1
            pygame.draw.circle(win, (0,0,0), CENTER, radius, 5)


        pygame.draw.rect(win, color, [CENTER[0]-10, CENTER[1]-MAX_RAD, 20, MAX_RAD*2])
        pygame.draw.rect(win, color, [CENTER[0]-MAX_RAD, CENTER[1]-10, MAX_RAD*2, 20])

        if rad_delta <= 0:
            p.update(player_alive, color, shadow_group)
            shadow_group.update()
            ball_group.update()
            dot_group.update()
            particle_group.update()
            score_msg.update(score)

            for dot in dot_group:
                if dot.rect.colliderect(p):
                    dot.kill()
                    score_fx.play()

                    score += 1
                    if highscore <= score:
                        highscore = score

            if pygame.sprite.spritecollide(p, ball_group, False) and player_alive:
                death_fx.play()
                x, y = p.rect.center
                for i in range(20):
                    particle = Particle(x, y, WHITE, win)
                    particle_group.add(particle)
                player_alive = False
                p.reset()

            if p.can_move and len(dot_group) == 0 and player_alive:
                dot_index = random.randint(1,4)
                dot_pos = dot_list[dot_index-1]
                dot = Dot(*dot_pos, win)
                dot_group.add(dot)

                shadow_group.empty()
                shadow = Shadow(dot_index, win)
                shadow_group.add(shadow)

            if not player_alive and len(particle_group) == 0:
                game_page = False
                score_page = True

                dot_group.empty()
                shadow_group.empty()
                for ball in ball_group:
                    ball.reset()
                score_page_fx.play()


    pygame.draw.rect(win, WHITE, (0, 0, WIDTH, HEIGHT), 5, border_radius=10)
    clock.tick(FPS)
    pygame.display.update()

pygame.quit()
4、行星游戏

游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import random
import pygame
from pygame.locals import KEYDOWN, QUIT, K_ESCAPE, K_SPACE, K_q, K_e

from objects import Rocket, Asteroid, Bullet, Explosion


### SETUP *********************************************************************
SIZE = SCREEN_WIDTH, SCREEN_HEIGHT = 500, 500

pygame.mixer.init()
pygame.init()
clock = pygame.time.Clock()
win = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption('Asteroids')

gunshot_sound = pygame.mixer.Sound("music/laser.wav")
explosion_sound = pygame.mixer.Sound("music/explosion.mp3")

font = pygame.font.Font('freesansbold.ttf', 32)
# text = font.render('', True, green, blue)


### Objects & Events **********************************************************
ADDAST1 = pygame.USEREVENT + 1
ADDAST2 = pygame.USEREVENT + 2
ADDAST3 = pygame.USEREVENT + 3
ADDAST4 = pygame.USEREVENT + 4
ADDAST5 = pygame.USEREVENT + 5
pygame.time.set_timer(ADDAST1, 2000)
pygame.time.set_timer(ADDAST2, 6000)
pygame.time.set_timer(ADDAST3, 10000)
pygame.time.set_timer(ADDAST4, 15000)
pygame.time.set_timer(ADDAST5, 20000)

rocket = Rocket(SIZE)

asteroids = pygame.sprite.Group()
bullets = pygame.sprite.Group()
explosions = pygame.sprite.Group()
all_sprites = pygame.sprite.Group()
all_sprites.add(rocket)

backgrounds = [f'assets/background/bg{i}s.png' for i in range(1,5)]
bg = pygame.image.load(random.choice(backgrounds))

startbg = pygame.image.load('assets/start.jpg')

### Game **********************************************************************
if __name__ == '__main__':
    score = 0
    running = True
    gameStarted = False
    musicStarted = False
    while running:
        if not gameStarted:
            if not musicStarted:
                pygame.mixer.music.load('music/Apoxode_-_Electric_1.mp3')
                pygame.mixer.music.play(loops=-1)
                musicStarted = True
            for event in pygame.event.get():
                if event.type == QUIT:
                    running = False

                if event.type == KEYDOWN:
                    if event.key == K_SPACE:
                        gameStarted = True
                        musicStarted = False

                win.blit(startbg, (0,0))        
        else:
            if not musicStarted:
                pygame.mixer.music.load('music/rpg_ambience_-_exploration.ogg')
                pygame.mixer.music.play(loops=-1)
                musicStarted = True
            for event in pygame.event.get():
                if event.type == QUIT:
                    running = False

                if event.type == KEYDOWN:
                    if event.key == K_ESCAPE:
                        running = False
                    if event.key == K_SPACE:
                        pos = rocket.rect[:2]
                        bullet = Bullet(pos, rocket.dir, SIZE)
                        bullets.add(bullet)
                        all_sprites.add(bullet)
                        gunshot_sound.play()
                    if event.key == K_q:
                        rocket.rotate_left()
                    if event.key == K_e:
                        rocket.rotate_right()

                elif event.type == ADDAST1:
                    ast = Asteroid(1, SIZE)
                    asteroids.add(ast)
                    all_sprites.add(ast)
                elif event.type == ADDAST2:
                    ast = Asteroid(2, SIZE)
                    asteroids.add(ast)
                    all_sprites.add(ast)
                elif event.type == ADDAST3:
                    ast = Asteroid(3, SIZE)
                    asteroids.add(ast)
                    all_sprites.add(ast)
                elif event.type == ADDAST4:
                    ast = Asteroid(4, SIZE)
                    asteroids.add(ast)
                    all_sprites.add(ast)
                elif event.type == ADDAST5:
                    ast = Asteroid(5, SIZE)
                    asteroids.add(ast)
                    all_sprites.add(ast)


            pressed_keys = pygame.key.get_pressed()
            rocket.update(pressed_keys)

            asteroids.update()
            bullets.update()
            explosions.update()

            win.blit(bg, (0,0))
            explosions.draw(win)

            for sprite in all_sprites:
                win.blit(sprite.surf, sprite.rect)
            win.blit(rocket.surf, rocket.rect)

            if pygame.sprite.spritecollideany(rocket, asteroids):
                rocket.kill()
                score = 0
                for sprite in all_sprites:
                    sprite.kill()
                all_sprites.empty()
                rocket = Rocket(SIZE)
                all_sprites.add(rocket)
                gameStarted = False
                musicStarted = False

            for bullet in bullets:
                collision = pygame.sprite.spritecollide(bullet, asteroids, True)
                if collision:
                    pos = bullet.rect[:2]
                    explosion = Explosion(pos)
                    explosions.add(explosion)
                    score += 1
                    explosion_sound.play()

                    bullet.kill()
                    bullets.remove(bullet)

            text = font.render('Score : ' + str(score), 1, (200,255,0))
            win.blit(text, (340, 10))

        pygame.display.flip()
        clock.tick(30)

    pygame.quit()
5、弹跳的球

游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import os
import pygame

from player import Ball
from world import World, load_level
from texts import Text, Message
from button import Button, LevelButton

pygame.init()
WIDTH, HEIGHT = 192, 212
win = pygame.display.set_mode((WIDTH, HEIGHT), pygame.NOFRAME)
pygame.display.set_caption('Bounce')

clock = pygame.time.Clock()
FPS = 30

# GAME VARIABLES **************************************************************
ROWS = 12
MAX_COLS = 150
TILE_SIZE = 16
MAX_LEVEL = 8

# COLORS **********************************************************************

BLUE = (175, 207, 240)
BLUE2 = (0, 0, 255)
WHITE = (255, 255, 255)

# FONTS ***********************************************************************

health_font = "Fonts/ARCADECLASSIC.TTF"

level_text = Text(health_font, 24)
health_text = Message(40, WIDTH + 10, 19, "x3", health_font, WHITE, win)
select_level_text = Message(WIDTH//2, 20, 24, "Select  Level", health_font, BLUE2, win)
current_level_text = Message(WIDTH - 40, WIDTH + 10, 20, "Level 1", health_font, WHITE, win)
you_win = Message(WIDTH //2, HEIGHT//2, 40, "You  Win", health_font, BLUE2, win)

# SOUNDS **********************************************************************

click_fx = pygame.mixer.Sound('Sounds/click.mp3')
life_fx = pygame.mixer.Sound('Sounds/gate.mp3')
checkpoint_fx = pygame.mixer.Sound('Sounds/checkpoint.mp3')

pygame.mixer.music.load('Sounds/track1.wav')
pygame.mixer.music.play(loops=-1)
pygame.mixer.music.set_volume(0.4)

# LOADING IMAGES **************************************************************

ball_image = pygame.image.load('Assets/ball.png')
splash_img = pygame.transform.scale(pygame.image.load('Assets/splash_logo.png'),
             (2*WIDTH, HEIGHT))
bounce_img = pygame.image.load('Assets/menu_logo.png')
game_lost_img = pygame.image.load('Assets/lose.png')
game_lost_img = pygame.transform.scale(game_lost_img, (WIDTH//2, 80))
level_locked_img = pygame.image.load('Assets/level_locked.png')
level_locked_img = pygame.transform.scale(level_locked_img, (40, 40))
level_unlocked_img = pygame.image.load('Assets/level_unlocked.png')
level_unlocked_img = pygame.transform.scale(level_unlocked_img, (40, 40))


play_img = pygame.image.load('Assets/play.png')
restart_img = pygame.image.load('Assets/restart.png')
menu_img = pygame.image.load('Assets/menu.png')
sound_on_img = pygame.image.load('Assets/SoundOnBtn.png')
sound_off_img = pygame.image.load('Assets/SoundOffBtn.png')
game_won_img = pygame.image.load('Assets/game won.png')


# BUTTONS *********************************************************************

play_btn = Button(play_img, False, 45, 130)
sound_btn = Button(sound_on_img, False, 45, 170)
restart_btn = Button(restart_img, False, 45, 130)
menu_btn = Button(menu_img, False, 45, 170)

# LEVEL TEXT & BUTTONS ********************************************************

level_btns = []
for level in range(MAX_LEVEL):
    text = level_text.render(f'{level+1}', (255, 255, 255))
    r = level // 3
    c = level % 3
    btn = LevelButton(level_locked_img, (40, 40), 20 + c * 55, 50 + r * 55, text)
    level_btns.append(btn)

# GROUPS **********************************************************************

spikes_group = pygame.sprite.Group()
inflator_group = pygame.sprite.Group()
deflator_group = pygame.sprite.Group()
enemy_group = pygame.sprite.Group()
exit_group = pygame.sprite.Group()
checkpoint_group = pygame.sprite.Group()
health_group = pygame.sprite.Group()

objects_groups = [spikes_group, inflator_group, deflator_group, enemy_group, exit_group, 
                    checkpoint_group, health_group]
collision_groups = [inflator_group, deflator_group]

# RESET ***********************************************************************

def reset_level_data(level):
    for group in objects_groups:
        group.empty()

    # LOAD LEVEL WORLD

    world_data, level_length = load_level(level)
    w = World(objects_groups)
    w.generate_world(world_data, win)

    return world_data, level_length, w

def reset_player_data(level):
    if level == 1:
        x, y = 64, 50
    if level == 2:
        x, y = 65, 50
    if level == 3:
        x, y = 64, 50
    if level == 4:
        x, y = 63, 50
    if level == 5:
        x, y = 64, 50
    if level == 6:
        x, y = 48, 50
    if level == 7:
        x, y = 78, 80
    if level == 8:
        x, y = 112,100

    p = Ball(x, y)
    moving_left = False
    moving_right = False

    return p, moving_left, moving_right

# VARIABLES *******************************************************************

moving_left = False
moving_right = False

SCROLL_THRES = 80
screen_scroll = 0
level_scroll = 0
level = 1
next_level = False
reset_level = False

checkpoint = None
health = 3
splash_count = 0
sound_on = True

logo_page = True
home_page = False
level_page = False
game_page = False
restart_page = False
win_page = False

running = True
while running:
    win.fill(BLUE)
    pygame.draw.rect(win, (255, 255,255), (0, 0, WIDTH, HEIGHT), 1, border_radius=5)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE or \
                event.key == pygame.K_q:
                running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                moving_left = True
            if event.key == pygame.K_RIGHT:
                moving_right = True
            if event.key == pygame.K_UP:
                if not p.jump:
                    p.jump = True

        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT:
                moving_left = False
            if event.key == pygame.K_RIGHT:
                moving_right = False

    if logo_page:
        win.blit(splash_img, (-100,0))
        splash_count += 1
        if splash_count % 50 == 0:
            logo_page = False
            home_page = True

    if home_page:
        win.blit(bounce_img, (10,10))

        if play_btn.draw(win):
            click_fx.play()
            home_page = False
            level_page = True

        if sound_btn.draw(win):
            click_fx.play()
            sound_on = not sound_on

            if sound_on:
                sound_btn.update_image(sound_on_img)
                pygame.mixer.music.play(loops=-1)
            else:
                sound_btn.update_image(sound_off_img)
                pygame.mixer.music.stop()

    if level_page:
        select_level_text.update(shadow=False)
        for index, btn in enumerate(level_btns):
            if index < level:
                if not btn.unlocked:
                    btn.unlocked = True
                    btn.update_image(level_unlocked_img)
            if btn.draw(win):
                if index < level:
                    click_fx.play()
                    level_page = False
                    game_page = True
                    level = index + 1
                    screen_scroll = 0
                    level_scroll = 0
                    health = 3
                    world_data, level_length, w = reset_level_data(level)
                    p, moving_left, moving_right = reset_player_data(level)

    if restart_page:
        win.blit(game_lost_img, (45,20))
        if restart_btn.draw(win):
            click_fx.play()
            world_data, level_length, w = reset_level_data(level)
            p, moving_left, moving_right = reset_player_data(level)
            level_scroll = 0
            screen_scroll = 0
            health = 3
            checkpoint = None
            restart_page = False
            game_page = True

        if menu_btn.draw(win):
            click_fx.play()
            home_page = True
            restart_page = False

    if win_page:
        win.blit(game_won_img, (45, 20))
        you_win.update()
        if menu_btn.draw(win):
            click_fx.play()
            home_page = True
            win_page = False
            restart_page = False


    if game_page:
        w.update(screen_scroll)
        w.draw(win)

        spikes_group.update(screen_scroll)
        spikes_group.draw(win)
        health_group.update(screen_scroll)
        health_group.draw(win)
        inflator_group.update(screen_scroll)
        inflator_group.draw(win)
        deflator_group.update(screen_scroll)
        deflator_group.draw(win)
        exit_group.update(screen_scroll)
        exit_group.draw(win)
        checkpoint_group.update(screen_scroll)
        checkpoint_group.draw(win)
        enemy_group.update(screen_scroll)
        enemy_group.draw(win)

        screen_scroll = 0
        p.update(moving_left, moving_right, w, collision_groups)
        p.draw(win)

        if ((p.rect.right >= WIDTH - SCROLL_THRES) and level_scroll < (level_length * 16) - WIDTH) \
                or ((p.rect.left <= SCROLL_THRES) and level_scroll > 0):
                dx = p.dx
                p.rect.x -= dx
                screen_scroll = -dx
                level_scroll += dx

        if len(exit_group) > 0:
            exit = exit_group.sprites()[0]
            if not exit.open:
                if abs(p.rect.x - exit.rect.x) <= 80 and len(health_group) == 0:
                    exit.open = True

            if p.rect.colliderect(exit.rect) and exit.index == 11:
                checkpoint = None
                checkpoint_fx.play()
                level += 1
                if level < MAX_LEVEL:
                    checkpoint = False
                    reset_level = True
                    next_level = True
                else:
                    checkpoint = None
                    win_page = True

        cp = pygame.sprite.spritecollide(p, checkpoint_group, False)
        if cp:
            checkpoint = cp[0]
            if not checkpoint.catched:
                checkpoint_fx.play()
                checkpoint.catched = True
                checkpoint_pos = p.rect.center
                checkpoint_screen_scroll = screen_scroll
                checkpoint_level_scroll = level_scroll

        if pygame.sprite.spritecollide(p, spikes_group, False):
            reset_level = True

        if pygame.sprite.spritecollide(p, health_group, True):
            health += 1
            life_fx.play()

        if pygame.sprite.spritecollide(p, enemy_group, False):
            reset_level = True

        if reset_level:
            if health > 0:
                if next_level:
                    world_data, level_length, w = reset_level_data(level)
                    p, moving_left, moving_right = reset_player_data(level)
                    level_scroll = 0
                    health = 3
                    checkpoint = None
                    next_level = False

                elif checkpoint:
                    checkpoint_dx = level_scroll - checkpoint_level_scroll
                    w.update(checkpoint_dx)
                    for group in objects_groups:
                        group.update(checkpoint_dx)
                    p.rect.center = checkpoint_pos
                    level_scroll = checkpoint_level_scroll

                else:
                    w.update(level_scroll)
                    for group in objects_groups:
                        group.update(level_scroll)
                    p, moving_left, moving_right = reset_player_data(level)
                    level_scroll = 0

                screen_scroll = 0
                reset_level = False
                health -= 1
            else:
                restart_page = True
                game_page = False
                reset_level = False

        # Drawing info bar
        pygame.draw.rect(win, (25, 25, 25), (0, HEIGHT-20, WIDTH, 20))
        pygame.draw.rect(win, (255, 255,255), (0, 0, WIDTH, WIDTH), 2, border_radius=5)

        win.blit(ball_image, (5, WIDTH + 2))
        health_text.update(f'x{health}', shadow=False)
        current_level_text.update(f'Level {level}', shadow=False)

    clock.tick(FPS)
    pygame.display.update()

pygame.quit()
6、汽车避障

游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import pygame
import random
from objects import Road, Player, Nitro, Tree, Button, \
                    Obstacle, Coins, Fuel

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512

info = pygame.display.Info()
width = info.current_w
height = info.current_h

if width >= height:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME)
else:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME | pygame.SCALED | pygame.FULLSCREEN)

clock = pygame.time.Clock()
FPS = 30

lane_pos = [50, 95, 142, 190]

# COLORS **********************************************************************

WHITE = (255, 255, 255)
BLUE = (30, 144,255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLACK = (0, 0, 20)

# FONTS ***********************************************************************

font = pygame.font.SysFont('cursive', 32)

select_car = font.render('Select Car', True, WHITE)

# IMAGES **********************************************************************

bg = pygame.image.load('Assets/bg.png')

home_img = pygame.image.load('Assets/home.png')
play_img = pygame.image.load('Assets/buttons/play.png')
end_img = pygame.image.load('Assets/end.jpg')
end_img = pygame.transform.scale(end_img, (WIDTH, HEIGHT))
game_over_img = pygame.image.load('Assets/game_over.png')
game_over_img = pygame.transform.scale(game_over_img, (220, 220))
coin_img = pygame.image.load('Assets/coins/1.png')
dodge_img = pygame.image.load('Assets/car_dodge.png')

left_arrow = pygame.image.load('Assets/buttons/arrow.png')
right_arrow = pygame.transform.flip(left_arrow, True, False)

home_btn_img = pygame.image.load('Assets/buttons/home.png')
replay_img = pygame.image.load('Assets/buttons/replay.png')
sound_off_img = pygame.image.load("Assets/buttons/soundOff.png")
sound_on_img = pygame.image.load("Assets/buttons/soundOn.png")

cars = []
car_type = 0
for i in range(1, 9):
    img = pygame.image.load(f'Assets/cars/{i}.png')
    img = pygame.transform.scale(img, (59, 101))
    cars.append(img)

nitro_frames = []
nitro_counter = 0
for i in range(6):
    img = pygame.image.load(f'Assets/nitro/{i}.gif')
    img = pygame.transform.flip(img, False, True)
    img = pygame.transform.scale(img, (18, 36))
    nitro_frames.append(img)

# FUNCTIONS *******************************************************************
def center(image):
    return (WIDTH // 2) - image.get_width() // 2

# BUTTONS *********************************************************************
play_btn = Button(play_img, (100, 34), center(play_img)+10, HEIGHT-80)
la_btn = Button(left_arrow, (32, 42), 40, 180)
ra_btn = Button(right_arrow, (32, 42), WIDTH-60, 180)

home_btn = Button(home_btn_img, (24, 24), WIDTH // 4 - 18, HEIGHT - 80)
replay_btn = Button(replay_img, (36,36), WIDTH // 2  - 18, HEIGHT - 86)
sound_btn = Button(sound_on_img, (24, 24), WIDTH - WIDTH // 4 - 18, HEIGHT - 80)

# SOUNDS **********************************************************************

click_fx = pygame.mixer.Sound('Sounds/click.mp3')
fuel_fx = pygame.mixer.Sound('Sounds/fuel.wav')
start_fx = pygame.mixer.Sound('Sounds/start.mp3')
restart_fx = pygame.mixer.Sound('Sounds/restart.mp3')
coin_fx = pygame.mixer.Sound('Sounds/coin.mp3')

pygame.mixer.music.load('Sounds/mixkit-tech-house-vibes-130.mp3')
pygame.mixer.music.play(loops=-1)
pygame.mixer.music.set_volume(0.6)

# OBJECTS *********************************************************************
road = Road()
nitro = Nitro(WIDTH-80, HEIGHT-80)
p = Player(100, HEIGHT-120, car_type)

tree_group = pygame.sprite.Group()
coin_group = pygame.sprite.Group()
fuel_group = pygame.sprite.Group()
obstacle_group = pygame.sprite.Group()

# VARIABLES *******************************************************************
home_page = True
car_page = False
game_page = False
over_page = False

move_left = False
move_right = False
nitro_on = False
sound_on = True

counter = 0
counter_inc = 1
# speed = 3
speed = 10
dodged = 0
coins = 0
cfuel = 100

endx, enddx = 0, 0.5
gameovery = -50

running = True
while running:
    win.fill(BLACK)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE or event.key == pygame.K_q:
                running = False

            if event.key == pygame.K_LEFT:
                move_left = True

            if event.key == pygame.K_RIGHT:
                move_right = True

            if event.key == pygame.K_n:
                nitro_on = True

        if event.type == pygame.KEYUP:
            if event.key == pygame.K_LEFT:
                move_left = False

            if event.key == pygame.K_RIGHT:
                move_right = False

            if event.key == pygame.K_n:
                nitro_on = False
                speed = 3
                counter_inc = 1

        if event.type == pygame.MOUSEBUTTONDOWN:
            x, y = event.pos

            if nitro.rect.collidepoint((x, y)):
                nitro_on = True
            else:
                if x <= WIDTH // 2:
                    move_left = True
                else:
                    move_right = True

        if event.type == pygame.MOUSEBUTTONUP:
            move_left = False
            move_right = False
            nitro_on = False
            speed = 3
            counter_inc = 1

    if home_page:
        win.blit(home_img, (0,0))
        counter += 1
        if counter % 60 == 0:
            home_page = False
            car_page = True

    if car_page:
        win.blit(select_car, (center(select_car), 80))

        win.blit(cars[car_type], (WIDTH//2-30, 150))
        if la_btn.draw(win):
            car_type -= 1
            click_fx.play()
            if car_type < 0:
                car_type = len(cars) - 1

        if ra_btn.draw(win):
            car_type += 1
            click_fx.play()
            if car_type >= len(cars):
                car_type = 0

        if play_btn.draw(win):
            car_page = False
            game_page = True

            start_fx.play()

            p = Player(100, HEIGHT-120, car_type)
            counter = 0

    if over_page:
        win.blit(end_img, (endx, 0))
        endx += enddx
        if endx >= 10 or endx<=-10:
            enddx *= -1

        win.blit(game_over_img, (center(game_over_img), gameovery))
        if gameovery < 16:
            gameovery += 1

        num_coin_img = font.render(f'{coins}', True, WHITE)
        num_dodge_img = font.render(f'{dodged}', True, WHITE)
        distance_img = font.render(f'Distance : {counter/1000:.2f} km', True, WHITE)

        win.blit(coin_img, (80, 240))
        win.blit(dodge_img, (50, 280))
        win.blit(num_coin_img, (180, 250))
        win.blit(num_dodge_img, (180, 300))
        win.blit(distance_img, (center(distance_img), (350)))

        if home_btn.draw(win):
            over_page = False
            home_page = True

            coins = 0
            dodged = 0
            counter = 0
            nitro.gas = 0
            cfuel = 100

            endx, enddx = 0, 0.5
            gameovery = -50

        if replay_btn.draw(win):
            over_page = False
            game_page = True

            coins = 0
            dodged = 0
            counter = 0
            nitro.gas = 0
            cfuel = 100

            endx, enddx = 0, 0.5
            gameovery = -50

            restart_fx.play()

        if sound_btn.draw(win):
            sound_on = not sound_on

            if sound_on:
                sound_btn.update_image(sound_on_img)
                pygame.mixer.music.play(loops=-1)
            else:
                sound_btn.update_image(sound_off_img)
                pygame.mixer.music.stop()

    if game_page:
        win.blit(bg, (0,0))
        road.update(speed)
        road.draw(win)

        counter += counter_inc
        if counter % 60 == 0:
            tree = Tree(random.choice([-5, WIDTH-35]), -20)
            tree_group.add(tree)

        if counter % 270 == 0:
            type = random.choices([1, 2], weights=[6, 4], k=1)[0]
            x = random.choice(lane_pos)+10
            if type == 1:
                count = random.randint(1, 3)
                for i in range(count):
                    coin = Coins(x,-100 - (25 * i))
                    coin_group.add(coin)
            elif type == 2:
                fuel = Fuel(x, -100)
                fuel_group.add(fuel)
        elif counter % 90 == 0:
            obs = random.choices([1, 2, 3], weights=[6,2,2], k=1)[0]
            obstacle = Obstacle(obs)
            obstacle_group.add(obstacle)

        if nitro_on and nitro.gas > 0:
            x, y = p.rect.centerx - 8, p.rect.bottom - 10
            win.blit(nitro_frames[nitro_counter], (x, y))
            nitro_counter = (nitro_counter + 1) % len(nitro_frames)

            speed = 10
            if counter_inc == 1:
                counter = 0
                counter_inc = 5

        if nitro.gas <= 0:
            speed = 3
            counter_inc = 1

        nitro.update(nitro_on)
        nitro.draw(win)
        obstacle_group.update(speed)
        obstacle_group.draw(win)
        tree_group.update(speed)
        tree_group.draw(win)
        coin_group.update(speed)
        coin_group.draw(win)
        fuel_group.update(speed)
        fuel_group.draw(win)

        p.update(move_left, move_right)
        p.draw(win)

        if cfuel > 0:
            pygame.draw.rect(win, GREEN, (20, 20, cfuel, 15), border_radius=5)
        pygame.draw.rect(win, WHITE, (20, 20, 100, 15), 2, border_radius=5)
        cfuel -= 0.05

        # COLLISION DETECTION & KILLS
        for obstacle in obstacle_group:
            if obstacle.rect.y >= HEIGHT:
                if obstacle.type == 1:
                    dodged += 1
                obstacle.kill() 

            if pygame.sprite.collide_mask(p, obstacle):
                pygame.draw.rect(win, RED, p.rect, 1)
                speed = 0

                game_page = False
                over_page = True

                tree_group.empty()
                coin_group.empty()
                fuel_group.empty()
                obstacle_group.empty()

        if pygame.sprite.spritecollide(p, coin_group, True):
            coins += 1
            coin_fx.play()

        if pygame.sprite.spritecollide(p, fuel_group, True):
            cfuel += 25
            fuel_fx.play()
            if cfuel >= 100:
                cfuel = 100

    pygame.draw.rect(win, BLUE, (0, 0, WIDTH, HEIGHT), 3)
    clock.tick(FPS)
    pygame.display.update()

pygame.quit()

# 今天给大家介绍一款Python制作的汽车避障小游戏
# 主要通过Pygame实现的,运行代码,选择车型,进入游戏
# 可以控制左右移动,点击右下角可以进行加速
# 金币可以增加积分,撞到障碍物则游戏介绍
7、洞窟物语

游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

import pygame
import pickle

from objects import World, load_level, Button, Player, Portal, game_data

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512
win = pygame.display.set_mode(SCREEN, pygame.SCALED | pygame.FULLSCREEN)
clock = pygame.time.Clock()
FPS = 45

tile_size = 16

# Images

bg = pygame.image.load("Assets/bg.png")

cave_story = pygame.transform.rotate(pygame.image.load("Assets/cave_story.png"), 90)
cave_story = pygame.transform.scale(cave_story, (150,300))

game_won_img = pygame.transform.rotate(pygame.image.load("Assets/win.png"), -90)
game_won_img = pygame.transform.scale(game_won_img, (150,300))

# Sounds
pygame.mixer.music.load('Sounds/goodbyte_sad-rpg-town.mp3')
pygame.mixer.music.play(loops=-1)

replay_fx =  pygame.mixer.Sound('Sounds/replay.wav')

# Buttons

move_btn = pygame.image.load("Assets/movement.jpeg")
move_btn = pygame.transform.rotate(move_btn, -90)
move_btn = pygame.transform.scale(move_btn, (42, HEIGHT))

play_img = pygame.transform.rotate(pygame.image.load("Assets/play.png"), -90)
play_btn = Button(play_img, (60, 150), 30, 170)

quit_img = pygame.transform.rotate(pygame.image.load("Assets/quit.png"), -90)
quit_btn = Button(quit_img, (60, 150), 140, 170)

replay_img = pygame.transform.rotate(pygame.image.load("Assets/replay.png"), -90)
replay_btn = Button(replay_img, (40, 40), 100, 190)

sound_off_img = pygame.transform.rotate(pygame.image.load("Assets/sound_off.png"), -90)
sound_on_img = pygame.transform.rotate(pygame.image.load("Assets/sound_on.png"), -90)
sound_btn = Button(sound_on_img, (40, 40), 100, 260)

# Variables

current_level = 1
MAX_LEVEL = 3
show_keys = True
pressed_keys = [False, False, False, False]

dir_dict = {
    'Up' : pygame.Rect(5, 27, 35, 50),
    'Down' : pygame.Rect(5, 160, 35, 50),
    'Left' :  pygame.Rect(5, 320, 35, 50),
    'Right' : pygame.Rect(5, 450, 35, 50)
}

# groups 
diamond_group = pygame.sprite.Group()
spike_group = pygame.sprite.Group()
plant_group = pygame.sprite.Group()
board_group = pygame.sprite.Group()
chain_group = pygame.sprite.Group()
groups = [diamond_group, spike_group, plant_group, board_group, chain_group]

data = load_level(current_level)
(player_x, player_y), (portal_x, portal_y) = game_data(current_level)

world = World(win, data, groups)
player = Player(win, (player_x,player_y), world, groups)
portal = Portal(portal_x, portal_y, win)

game_started = False
game_over = False
game_won = False
replay_menu = False
sound_on = True

bgx = 0
bgcounter = 0
bgdx = 1

running = True
while running:
    win.blit(bg, (bgx, 0))
    for group in groups:
        group.draw(win)
    world.draw()

    if not game_started:
        win.blit(cave_story, (100,100))
        if play_btn.draw(win):
            game_started = True
    elif game_won:
        win.blit(game_won_img, (100,100))
    else:
        if show_keys:
            win.blit(move_btn, (0,0))
            bgcounter += 1
            if bgcounter >= 15:
                bgcounter = 0
                bgx += bgdx
                if bgx < 0 or bgx >5 :
                    bgdx *= -1

    #   for rect in dir_dict:
    #       pygame.draw.rect(win, (255, 0, 0), dir_dict[rect])

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False

            if event.type == pygame.MOUSEBUTTONDOWN:
                pos = event.pos
                if show_keys:
                    if dir_dict["Up"].collidepoint(pos):
                        pressed_keys[0] = True
                    if dir_dict["Down"].collidepoint(pos):
                        pressed_keys[1] = True
                    if dir_dict["Left"].collidepoint(pos):
                        pressed_keys[2] = True
                    if dir_dict["Right"].collidepoint(pos):
                        pressed_keys[3] = True

            if event.type == pygame.MOUSEBUTTONUP:
                pressed_keys = [False, False, False, False]

        portal.update()

        if not game_over:
            game_over = player.update(pressed_keys, game_over)
            if game_over:
                show_keys = False
                replay_menu = True

        if player.rect.colliderect(portal) and player.rect.top > portal.rect.top and player.rect.bottom < portal.rect.bottom:
            if current_level < MAX_LEVEL:
                current_level += 1
                for group in groups:
                    group.empty()

                data = load_level(current_level)
                (player_x, player_y), (portal_x, portal_y) = game_data(current_level)

                world = World(win, data, groups)
                player = Player(win, (player_x,player_y), world, groups)
                portal = Portal(portal_x, portal_y, win)
            else:
                show_keys = False
                game_won = True

        if replay_menu:
            if quit_btn.draw(win):
                running = False

            if sound_btn.draw(win):
                sound_on = not sound_on

                if sound_on:
                    sound_btn.update_image(sound_on_img)
                    pygame.mixer.music.play(loops=-1)
                else:
                    sound_btn.update_image(sound_off_img)
                    pygame.mixer.music.stop()

            if replay_btn.draw(win):
                show_keys = True
                replay_menu = False
                game_over = False
                replay_fx.play()

                for group in groups:
                    group.empty()

                data = load_level(current_level)
                (player_x, player_y), (portal_x, portal_y) = game_data(current_level)

                world = World(win, data, groups)
                player = Player(win, (player_x,player_y), world, groups)
                portal = Portal(portal_x, portal_y, win)

    clock.tick(FPS)
    pygame.display.update()

pygame.quit()
8、联系

游戏代码大全可复制,pygame,python,开发语言,人工智能

源码分享:

# Connected

# Author : Prajjwal Pathak (pyguru)
# Date : Thursday, 8 August, 2021

import random
import pygame

from objects import Balls, Coins, Tiles, Particle, Message, Button

pygame.init()
SCREEN = WIDTH, HEIGHT = 288, 512
CENTER = WIDTH //2, HEIGHT // 2

info = pygame.display.Info()
width = info.current_w
height = info.current_h

if width >= height:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME)
else:
    win = pygame.display.set_mode(SCREEN, pygame.NOFRAME | pygame.SCALED | pygame.FULLSCREEN)
pygame.display.set_caption('Connected')

clock = pygame.time.Clock()
FPS = 90

# COLORS **********************************************************************

RED = (255,0,0)
GREEN = (0,177,64)
BLUE = (30, 144,255)
ORANGE = (252,76,2)
YELLOW = (254,221,0)
PURPLE = (155,38,182)
AQUA = (0,103,127)
WHITE = (255,255,255)
BLACK = (0,0,0)
GRAY = (25, 25, 25)

color_list = [PURPLE, GREEN, BLUE, ORANGE, YELLOW, RED]
color_index = 0
color = color_list[color_index]

# SOUNDS **********************************************************************

flip_fx = pygame.mixer.Sound('Sounds/flip.mp3')
score_fx = pygame.mixer.Sound('Sounds/point.mp3')
dead_fx = pygame.mixer.Sound('Sounds/dead.mp3')
score_page_fx = pygame.mixer.Sound('Sounds/score_page.mp3')

pygame.mixer.music.load('Sounds/bgm.mp3')
pygame.mixer.music.play(loops=-1)
pygame.mixer.music.set_volume(0.5)


# FONTS ***********************************************************************

title_font = "Fonts/Aladin-Regular.ttf"
score_font = "Fonts/DroneflyRegular-K78LA.ttf"
game_over_font = "Fonts/ghostclan.ttf"
final_score_font = "Fonts/DalelandsUncialBold-82zA.ttf"
new_high_font = "Fonts/BubblegumSans-Regular.ttf"


connected = Message(WIDTH//2, 120, 55, "ConnecteD", title_font, WHITE, win)
score_msg = Message(WIDTH//2, 100, 60, "0", score_font, (150, 150, 150), win)
game_msg = Message(80, 150, 40, "GAME", game_over_font, BLACK, win)
over_msg = Message(210, 150, 40, "OVER!", game_over_font, WHITE, win)
final_score = Message(WIDTH//2, HEIGHT//2, 90, "0", final_score_font, RED, win)
new_high_msg = Message(WIDTH//2, HEIGHT//2+60, 20, "New High", None, GREEN, win)

# Button images

home_img = pygame.image.load('Assets/homeBtn.png')
replay_img = pygame.image.load('Assets/replay.png')
sound_off_img = pygame.image.load("Assets/soundOffBtn.png")
sound_on_img = pygame.image.load("Assets/soundOnBtn.png")
easy_img = pygame.image.load("Assets/easy.jpg")
hard_img = pygame.image.load("Assets/hard.jpg")

# Buttons

easy_btn = Button(easy_img, (70, 24), WIDTH//4-10, HEIGHT-100)
hard_btn = Button(hard_img, (70, 24), WIDTH//2 + 10, HEIGHT-100)
home_btn = Button(home_img, (24, 24), WIDTH // 4 - 18, HEIGHT//2 + 120)
replay_btn = Button(replay_img, (36,36), WIDTH // 2  - 18, HEIGHT//2 + 115)
sound_btn = Button(sound_on_img, (24, 24), WIDTH - WIDTH // 4 - 18, HEIGHT//2 + 120)

# Groups **********************************************************************

RADIUS = 70
ball_group = pygame.sprite.Group()
coin_group = pygame.sprite.Group()
tile_group = pygame.sprite.Group()
particle_group = pygame.sprite.Group()

ball = Balls((CENTER[0], CENTER[1]+RADIUS), RADIUS, 90, win)
ball_group.add(ball)
ball = Balls((CENTER[0], CENTER[1]-RADIUS), RADIUS, 270, win)
ball_group.add(ball)

# TIME ************************************************************************

start_time = pygame.time.get_ticks()
current_time = 0
coin_delta = 850
tile_delta = 2000

# VARIABLES *******************************************************************

clicked = False
new_coin = True
num_clicks = 0
score = 0

player_alive = True
score = 0
highscore = 0
sound_on = True
easy_level = True

home_page = True
game_page = False
score_page = False

running = True
while running:
    win.fill(GRAY)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE or \
                event.key == pygame.K_q:
                running = False

        if event.type == pygame.MOUSEBUTTONDOWN and game_page:
            if not clicked:
                clicked = True
                for ball in ball_group:
                    ball.dtheta *= -1
                    flip_fx.play()

                num_clicks += 1
                if num_clicks % 5 == 0:
                    color_index += 1
                    if color_index > len(color_list) - 1:
                        color_index = 0

                    color = color_list[color_index]

        if event.type == pygame.MOUSEBUTTONDOWN and game_page:
            clicked = False

    if home_page:
        connected.update()

        pygame.draw.circle(win, BLACK, CENTER, 80, 20)
        ball_group.update(color)

        if easy_btn.draw(win):
            ball_group.empty()
            ball = Balls((CENTER[0], CENTER[1]+RADIUS), RADIUS, 90, win)
            ball_group.add(ball)

            home_page = False
            game_page = True
            easy_level = True

        if hard_btn.draw(win):
            ball_group.empty()
            ball = Balls((CENTER[0], CENTER[1]+RADIUS), RADIUS, 90, win)
            ball_group.add(ball)
            ball = Balls((CENTER[0], CENTER[1]-RADIUS), RADIUS, 270, win)
            ball_group.add(ball)

            home_page = False
            game_page = True
            easy_level = False

    if score_page:
        game_msg.update()
        over_msg.update()

        if score:
            final_score.update(score, color)
        else:
            final_score.update("0", color)
        if score and (score >= highscore):
            new_high_msg.update(shadow=False)

        if home_btn.draw(win):
            home_page = True
            score_page = False
            game_page = False
            player_alive = True
            score = 0
            score_msg = Message(WIDTH//2, 100, 60, "0", score_font, (150, 150, 150), win)

        if replay_btn.draw(win):
            home_page = False
            score_page = False
            game_page = True
            score = 0
            score_msg = Message(WIDTH//2, 100, 60, "0", score_font, (150, 150, 150), win)

            if easy_level:
                ball = Balls((CENTER[0], CENTER[1]+RADIUS), RADIUS, 90, win)
                ball_group.add(ball)
            else:
                ball = Balls((CENTER[0], CENTER[1]+RADIUS), RADIUS, 90, win)
                ball_group.add(ball)
                ball = Balls((CENTER[0], CENTER[1]-RADIUS), RADIUS, 270, win)
                ball_group.add(ball)

            player_alive = True


        if sound_btn.draw(win):
            sound_on = not sound_on

            if sound_on:
                sound_btn.update_image(sound_on_img)
                pygame.mixer.music.play(loops=-1)
            else:
                sound_btn.update_image(sound_off_img)
                pygame.mixer.music.stop()

    if game_page:
        pygame.draw.circle(win, BLACK, CENTER, 80, 20)
        ball_group.update(color)
        coin_group.update(color)
        tile_group.update()
        score_msg.update(score)
        particle_group.update()

        if player_alive:
            for ball in ball_group:
                if pygame.sprite.spritecollide(ball, coin_group, True):
                    score_fx.play()
                    score += 1
                    if highscore <= score:
                            highscore = score

                    x, y = ball.rect.center
                    for i in range(10):
                        particle = Particle(x, y, color, win)
                        particle_group.add(particle)

                if pygame.sprite.spritecollide(ball, tile_group, True):
                    x, y = ball.rect.center
                    for i in range(30):
                        particle = Particle(x, y, color, win)
                        particle_group.add(particle)

                    player_alive = False
                    dead_fx.play()

            current_time = pygame.time.get_ticks()
            delta = current_time- start_time
            if  coin_delta < delta < coin_delta + 100 and new_coin:
                y = random.randint(CENTER[1]-RADIUS, CENTER[1]+RADIUS)
                coin = Coins(y, win)
                coin_group.add(coin)
                new_coin = False

            if current_time- start_time >= tile_delta:
                y = random.choice([CENTER[1]-80, CENTER[1], CENTER[1]+80])
                type_ = random.randint(1,3)
                t = Tiles(y, type_, win)
                tile_group.add(t)

                start_time = current_time
                new_coin = True

        if not player_alive and len(particle_group) == 0:
            score_page = True
            game_page = False

            score_page_fx.play()

            ball_group.empty()
            tile_group.empty()
            coin_group.empty()

    pygame.draw.rect(win, BLUE, (0, 0, WIDTH, HEIGHT), 5, border_radius=10)
    clock.tick(FPS)
    pygame.display.update()

pygame.quit()
9、恐龙避障

代码太多了,接下来就简单介绍下,有兴趣的在公众号内回复【游戏】即可获取所有的游戏源码。

游戏代码大全可复制,pygame,python,开发语言,人工智能

10、狡猾的墙

游戏代码大全可复制,pygame,python,开发语言,人工智能

11、点和盒子

游戏代码大全可复制,pygame,python,开发语言,人工智能

12、捉蛋游戏

游戏代码大全可复制,pygame,python,开发语言,人工智能

13、愤怒的小鸟

游戏代码大全可复制,pygame,python,开发语言,人工智能

14、捉鬼特工队

游戏代码大全可复制,pygame,python,开发语言,人工智能

15、绞刑吏

游戏代码大全可复制,pygame,python,开发语言,人工智能

16、六角冲

游戏代码大全可复制,pygame,python,开发语言,人工智能

17、匹配选择

游戏代码大全可复制,pygame,python,开发语言,人工智能

18、丛林探险

游戏代码大全可复制,pygame,python,开发语言,人工智能

19、关卡设计

游戏代码大全可复制,pygame,python,开发语言,人工智能

20、记忆拼图

游戏代码大全可复制,pygame,python,开发语言,人工智能

21、扫雷

游戏代码大全可复制,pygame,python,开发语言,人工智能

22、钢琴砖

游戏代码大全可复制,pygame,python,开发语言,人工智能

23、图片滑动拼图

游戏代码大全可复制,pygame,python,开发语言,人工智能

24、乒乓球

游戏代码大全可复制,pygame,python,开发语言,人工智能

25、冲刺

游戏代码大全可复制,pygame,python,开发语言,人工智能

26、石头剪刀布

游戏代码大全可复制,pygame,python,开发语言,人工智能

27、旋转冲击

游戏代码大全可复制,pygame,python,开发语言,人工智能

28、贪吃蛇

游戏代码大全可复制,pygame,python,开发语言,人工智能

29、剪刀

游戏代码大全可复制,pygame,python,开发语言,人工智能

30、俄罗斯方块

游戏代码大全可复制,pygame,python,开发语言,人工智能

相关文件及代码都已上传,公众号回复【游戏】即可获取。

万水千山总是情,点个 👍 行不行。

推荐阅读


 
···  END  ···

到了这里,关于python游戏代码大全可复制,python超简单小游戏代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python做小游戏代码可复制,python做小游戏代码300行

    本篇文章给大家谈谈用python做一个小游戏代码,以及python简单小游戏代码200行,希望对各位有所帮助,不要忘了收藏本站喔。 哈喽铁子们 表弟最近在学Python,总是跟我抱怨很枯燥无味,其实,他有没有认真想过,可能是自己学习姿势不对? 比方说,可以通过打游戏来学编程

    2024年03月14日
    浏览(49)
  • python编程游戏代码可复制,python编程游戏代码教程

    大家好,小编来为大家解答以下问题,python编程游戏代码大全,编程猫,python编程游戏代码大全200行,今天让我们一起来看看吧! Source code download: 本文相关源码 大家好,给大家分享一下python编程游戏代码大全,很多人还不知道这一点。下面详细解释一下python自动化运维应用。

    2024年04月10日
    浏览(55)
  • python烟花代码简单可复制,python烟花代码怎么运行

    大家好,小编来为大家解答以下问题,Python烟花代码总体功能介绍,python烟花代码简单可复制,今天让我们一起来看看吧! 天是2023 的第9天,到了这个时间点,部分小伙伴已经开始复盘这一年的得与失。比如今年增加了多少技能点,看了多少本书,写了多少篇文章或者年前

    2024年01月22日
    浏览(56)
  • python烟花代码简单可复制,python烟花代码加名字

    本篇文章给大家谈谈Python烟花代码总体功能介绍,以及python烟花代码简单可复制,希望对各位有所帮助,不要忘了收藏本站喔。 还有两天就到元旦了!!!很多小伙伴已经和朋友约好一起跨年了 但是现在很多地方都禁止烟花燃放,跨年没有烟花总感觉缺少一点味道~为了实现

    2024年03月15日
    浏览(47)
  • python烟花代码简单可复制,python烟花代码怎么写

    大家好,本文将围绕Python烟花代码总体功能介绍展开说明,python烟花代码简单可复制是一个很多人都想弄明白的事情,想搞清楚python烟花代码怎么写需要先了解以下几个事情。 Source code download: 本文相关源码 疫情太严重了,有很多小伙伴都不能出门玩耍了。给大家看一个特别

    2024年02月20日
    浏览(51)
  • 爱心代码编程python可复制,python有什么好玩的代码

    本篇文章给大家谈谈20行python代码的入门级小游戏,以及python简单好玩的编程代码,希望对各位有所帮助,不要忘了收藏本站喔。 大家好,我是辣条。 今天给大家带来30个py小游戏,一定要收藏! 目录 有手就行 1、吃金币 2、打乒乓 3、滑雪 4、并夕夕版飞机大战 5、打地鼠 简

    2024年01月17日
    浏览(52)
  • 数据结构:链栈(含完整代码,可复制)

           链栈是采用链式存储结构实现的栈,通常用单链表来表示。链栈的优点是不存在栈满上溢的情况(只有在内存溢出时才会出现栈满,通常不考虑)。链栈的栈顶是链表的第一个结点,栈底是链表的最后一个结点,一个链栈可以由栈顶指针唯一确定。链栈的每个结点都

    2024年02月01日
    浏览(52)
  • 利用MATLAB创建栅格地图(代码可复制)

    先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号: 启发式算法讨论 。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出的新型智能优化算法,并附MATLAB代码。 “有不

    2024年02月03日
    浏览(46)
  • python编程游戏代码大全,python简单的小游戏代码

    大家好,本文将围绕python编程一个最简单游戏代码展开说明,20行python代码的入门级小游戏是一个很多人都想弄明白的事情,想搞清楚python游戏编程入门游戏代码需要先了解以下几个事情。 目标 :创建一个命令行游戏,游戏者可以在石头、剪刀和布之间进行选择,与计算机

    2024年02月11日
    浏览(65)
  • python简单小游戏代码100行,python小游戏代码大全

    大家好,给大家分享一下python简单小游戏代码100行,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! download: python小游戏代码 按照题目要求编写燃悔中的Python程序如下 import random numlist=random.sample(range(0,10),5) while numlist[0]==0:     numlist=random.sample(range(0,10),5) n

    2024年02月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包