Python制作的赛车小游戏源代码,逆行飙车

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

python制作的赛车小游戏,逆行飙车,通过键盘方向键控制
程序运行截图:
python赛车游戏代码,Python代码大全,python,pygame,开发语言
源代码

import pygame, sys, time, random

# pygame 初始化
pygame.init()
pygame.display.set_caption('逆行飙车')


# 常量类
class Constant:
    # 自定义事件
    OUT_OF_SIDE = pygame.USEREVENT + 1  # 碰到边界
    SPEED_UP = pygame.USEREVENT + 2  # 速度加快

    # 初始分数
    SCORE = 0

    # 帧数
    FPS = 30


# 屏幕
size = width, height = (351, 600)
screen = pygame.display.set_mode(size)  # 屏幕surface
screen_rect = screen.get_rect()  # 屏幕rect

# 背景图片
street_img = pygame.image.load('AnimatedStreet.png')  # 背景surface
street_rect = street_img.get_rect()  # 背景rect

# 字体和音乐
font_big = pygame.font.Font('Hellocute.ttf', 60)
font_small = pygame.font.Font('文道甜甜圈.ttf', 20)
font_game_over = font_big.render('Game Over !', True, (255, 0, 0))
font_game_over_rect = font_game_over.get_rect()
font_game_over_rect.center = screen_rect.center
font_score = font_small.render(f'SCORE: {Constant.SCORE}', True, (255, 255, 255))
font_score_rect = font_score.get_rect()
font_score_rect.x = 10
font_score_rect.y = 10

# 定时添加自定义事件
pygame.time.set_timer(Constant.SPEED_UP, 5000)  #

clock = pygame.time.Clock()


# 敌人类
class Enemy(pygame.sprite.Sprite):

    def __init__(self):
        super().__init__()  # 调用父类方法初始化对象
        self.img = pygame.image.load('Enemy.png')
        self.surf = pygame.Surface((40, 48))
        self.rect = self.surf.get_rect(left=screen.get_width() / 2 - 22, top=0)
        self.speed = 5

    def move(self):
        global font_score
        self.rect.move_ip(0, self.speed)
        if self.rect.top > screen_rect.height:
            Constant.SCORE += 1
            font_score = font_small.render(f'SCORE: {Constant.SCORE}', True, (255, 255, 255))
            self.rect.top = 0
            self.rect.left = random.randint(60, 250)


# 玩家类
class Player(pygame.sprite.Sprite):

    def __init__(self):
        super().__init__()  # 调用父类方法初始化对象
        self.img = pygame.image.load('Player.png')
        self.rect = self.img.get_rect()
        self.rect.midbottom = screen_rect.midbottom
        self.speed = 5

    def move(self):
        pressed_keys = pygame.key.get_pressed()
        if pressed_keys[pygame.K_UP] and self.rect.top >= 0:
            self.rect.move_ip(0, -self.speed)
        if pressed_keys[pygame.K_DOWN] and self.rect.bottom <= screen.get_height():
            self.rect.move_ip(0, self.speed)
        if pressed_keys[pygame.K_LEFT] and self.rect.left >= 33:
            self.rect.move_ip(-self.speed, 0)
        if pressed_keys[pygame.K_RIGHT] and self.rect.right <= screen.get_width() - 34:
            self.rect.move_ip(self.speed, 0)
        # 超出边界
        if self.rect.left <= 50 or self.rect.right >= screen.get_width() - 52:
            pygame.event.post(pygame.event.Event(Constant.OUT_OF_SIDE))


# 游戏类
class Game:
    # 游戏初始化
    def __init__(self):
        self.player = Player()
        self.enemy = Enemy()
        # 定义敌人精灵组
        self.enemies = pygame.sprite.Group()
        self.enemies.add(self.enemy)

        # 定义所有精灵组
        self.all_sprites = pygame.sprite.Group()
        self.all_sprites.add(self.player)
        self.all_sprites.add(self.enemy)

    # 游戏运行/循环
    def run(self):

        # 播放背景音乐
        pygame.mixer.Sound("background.mp3").play(-1)

        while 1:

            screen.blit(street_img, street_rect)
            screen.blit(font_score, font_score_rect)

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame.quit()
                    sys.exit()
                # 自定义事件触发
                if event.type == Constant.OUT_OF_SIDE:
                    print('超出边界了')
                if event.type == Constant.SPEED_UP:  # 敌人 加速 事件
                    # print('speed up')
                    self.enemy.speed += 1

            for sprite in self.all_sprites:
                screen.blit(sprite.img, sprite.rect)
                sprite.move()

            # 发生碰撞4种情况:

            # 1、敌人和玩家都存在
            # if pygame.sprite.spritecollide(player, enemies, False):
            #     print('撞车了')

            # 2、敌人消失
            # if pygame.sprite.spritecollide(player, enemies, True):
            #     print('撞车了')

            # 3、玩家和敌人都消失
            # if pygame.sprite.spritecollide(player, enemies, True):
            #     player.kill()   # 单独控制某个精灵消失
            #     print('撞车了')

            # 4、玩家消失
            if pygame.sprite.spritecollideany(self.player, self.enemies):
                # 延迟2秒 刷新退出

                # 播放碰撞声音
                pygame.mixer.Sound('crash.mp3').play()
                # 玩家从所有精灵组移除
                self.player.kill()

                # 显示游戏结束任务
                screen.blit(font_game_over, font_game_over_rect)
                # 更新显示字体
                pygame.display.update()

                time.sleep(3)
                pygame.quit()
                sys.exit()

            pygame.display.flip()

            clock.tick(Constant.FPS)

if __name__ == '__main__':
    Game().run()
# 这个代码较为完整

完整赛车小游戏下载:赛车小游戏源代码
Python代码大全,海量代码任你下载文章来源地址https://www.toymoban.com/news/detail-520790.html

到了这里,关于Python制作的赛车小游戏源代码,逆行飙车的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python背单词记单词小程序源代码,背单词记单词小游戏源代码

    背单词小游戏,要有多界面交互,界面整洁、美观,可调节游戏等级难度,可配置游戏信息。 有游戏分数,游戏时间,动画特效,背景音乐,不同游戏等级的历史最高分记录。 拼写成功的英文单词显示中文意思。支持长按回删键[backspace],快速删除单词字母。 多种游戏困难

    2024年02月15日
    浏览(38)
  • 基于Python pygame简易版斗兽棋小游戏源代码

    基于Python pygame简易版斗兽棋小游戏源代码 游戏规则如下: 胜利条件: 1.吃掉对方全部棋子 2.走入对方兽穴(不可进入自己洞穴) 吃法: 1.象狮虎豹狼狗猫鼠象 2.同类棋子先行者吃掉对方 3.老鼠可以进河,老鼠在河里时,岸上的动物不能捕食他,他也不能捕食岸上的动物 4.狮虎在河中没

    2023年04月09日
    浏览(90)
  • Python版经典小游戏愤怒的小鸟源代码,基于pygame+pymunk

    Python版经典小游戏愤怒的小鸟源代码,基于pygame+pymunk 程序依赖:pygame 2.0.1, pymunk 5.5.0 直接运行main.py 完整代码下载地址:Python版经典小游戏愤怒的小鸟源代码 tool.py 完整代码下载地址:Python版经典小游戏愤怒的小鸟源代码

    2024年02月16日
    浏览(30)
  • Java实现俄罗斯方块小游戏。(附完整源代码)

    大家好,我是百思不得小赵。 创作时间:2022 年 5 月 12 日 博客主页: 🔍点此进入博客主页 —— 新时代的农民工 🙊 —— 换一种思维逻辑去看待这个世界 👀 今天是加入CSDN的第1167天。觉得有帮助麻烦👏点赞、🍀评论、❤️收藏 目录 一、游戏背景 二、功能实现 三、效果

    2024年02月03日
    浏览(45)
  • 实现用java做一个简易版《羊了个羊》小游戏(附源代码)

    该项目是跟着这个b站视频一步一步写出来的,初学java有些地方我看不是很明白,但是讲解很仔细,大家可以看原视频,我没有添加背景音乐和背景图片,做出来的效果也勉勉强强。 代码已经上传到github上了,大家可以去github上直接下载代码,附上链接:点击进入github源码链接

    2024年02月04日
    浏览(47)
  • 【Java项目介绍和界面搭建】拼图小游戏完结——源代码分析以及资料上传

    目录 以后工作的时候拿到一个需求之后: 1,所需要的技术点 2,分析业务逻辑 项目实现步骤: 添加组件 绑定事件: 分析业务逻辑 分析所需要的技术点 在这个界面中,我们需要哪些技术点: 整个的菜单就是JMenuBar 功能,关于我们:JMenu 更换图片:JMenu 重新游戏,重新登录

    2024年03月11日
    浏览(46)
  • html实现经典赛车小游戏

    作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/130580123 html实现经典赛车小游戏源码 html实现经典赛车小游戏源码,1.通过键盘的 上左右 键,控制汽车行走。2.通过canvas进行公路图形绘制。 实现功能: 1.进入游戏界面,通过控制键盘的 上下左右 四个键,让汽

    2024年02月04日
    浏览(37)
  • python制作小游戏50行代码,用python制作小游戏代码

    大家好,本文将围绕python制作小游戏50行代码小鸟管道展开说明,python制作小游戏都用什么软件是一个很多人都想弄明白的事情,想搞清楚python制作小游戏400行代码需要先了解以下几个事情。 Python非常受欢迎的一个原因是它的应用领域非常广泛,其中就包括游戏开发。而是用

    2024年02月04日
    浏览(35)
  • 用python制作简单的小游戏,用python设计一个小游戏

    这篇文章主要介绍了python编写小游戏详细教程,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。 Source code download: 本文相关源码 今天给大家带来十五个Python小游戏,找回童年的同时学习编程还可以摸鱼,

    2024年03月16日
    浏览(78)
  • 用python做一个小游戏代码,用python制作一个小游戏

    大家好,小编来为大家解答以下问题,如何用python编写一个简单的小游戏,用python做一个小游戏代码,今天让我们一起来看看吧! 今天呢,给大家展示一下Python有趣的小地方,展示给大家看看,我做的小游戏,是否有大家小时候的回忆呢。下面就废话不多说了,给大家展示一

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包