iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >基于Python+Pygame怎么实现经典赛车游戏
  • 878
分享到

基于Python+Pygame怎么实现经典赛车游戏

2023-06-30 07:06:35 878人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“基于python+Pygame怎么实现经典赛车游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Python+Pygame怎么实现经典赛车游戏”文章能帮助大家解决问题。一、环境

这篇文章主要介绍“基于python+Pygame怎么实现经典赛车游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Python+Pygame怎么实现经典赛车游戏”文章能帮助大家解决问题。

一、环境安装

各种素材(图片)

基于Python+Pygame怎么实现经典赛车游戏

运行环境

小编使用的环境:python3PyCharm社区版、Pygame模块部分自带。

模块安装:pip install -i https://pypi.douban.com/simple/ pygame

二、代码展示

这款游戏代码特别多啦,小编这里就主要展示一下主程序运行的代码,全部的就找我文末拿哈~

1.主程序main.py

import os, sys, pygame, random, array, gamemodeimport direction,  bounds, timeout, menufrom pygame.locals import * #Import game modules.from loader import load_imageimport player, maps, traffic, camera, tracks  TRAFFIC_COUNT = 45CENTER_W = -1CENTER_H = -1  #Main function.def main():#initialize objects.    clock = pygame.time.Clock()    running = True    font = pygame.font.Font(None, 24)    car = player.Player()    cam = camera.Camera()    target = gamemode.Finish()    bound_alert = bounds.Alert()    time_alert = timeout.Alert()    info = menu.Alert()    pointer = direction.Tracker(int(CENTER_W * 2), int(CENTER_H * 2))#create sprite groups.    map_s     = pygame.sprite.Group()    player_s  = pygame.sprite.Group()    traffic_s = pygame.sprite.Group()    tracks_s  = pygame.sprite.Group()    target_s  = pygame.sprite.Group()    pointer_s = pygame.sprite.Group()    timer_alert_s = pygame.sprite.Group()    bound_alert_s = pygame.sprite.Group()    menu_alert_s = pygame.sprite.Group() #generate tiles    for tile_num in range (0, len(maps.map_tile)):        maps.map_files.append(load_image(maps.map_tile[tile_num], False))    for x in range (0, 10):        for y in range (0, 10):            map_s.add(maps.Map(maps.map_1[x][y], x * 1000, y * 1000, maps.map_1_rot[x][y])) #load tracks    tracks.initialize()#load finish    target_s.add(target)#load direction    pointer_s.add(pointer)#load alerts    timer_alert_s.add(time_alert)    bound_alert_s.add(bound_alert)    menu_alert_s.add(info)#load traffic    traffic.initialize(CENTER_W, CENTER_H)    for count in range(0, TRAFFIC_COUNT):        traffic_s.add(traffic.Traffic())     player_s.add(car)     cam.set_pos(car.x, car.y)     while running:#Render loop. #Check for menu/reset, (keyup event - trigger ONCE)        for event in pygame.event.get():            if event.type == pygame.KEYUP:                if keys[K_m]:                    if (info.visibility == True):                        info.visibility = False                    else:                        info.visibility = True                if (keys[K_p]):                    car.reset()                    target.reset()                if (keys[K_q]):                    pygame.quit()                    sys.exit(0)             if event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:                running = False                break #Check for key input. (KEYDOWN, trigger often)        keys = pygame.key.get_pressed()        if (target.timeleft > 0):            if keys[K_LEFT]:                car.steerleft()            if keys[K_RIGHT]:                car.steerright()            if keys[K_UP]:                car.accelerate()            else:                car.soften()            if keys[K_DOWN]:                car.deaccelerate()         cam.set_pos(car.x, car.y) #Show text data.        text_fps = font.render('FPS: ' + str(int(clock.get_fps())), 1, (224, 16, 16))        textpos_fps = text_fps.get_rect(centery=25, centerx=60)         text_score = font.render('Score: ' + str(target.score), 1, (224, 16, 16))        textpos_score = text_fps.get_rect(centery=45, centerx=60)         text_timer = font.render('Timer: ' + str(int((target.timeleft / 60)/60)) + ":" + str(int((target.timeleft / 60) % 60)), 1, (224, 16, 16))        textpos_timer = text_fps.get_rect(centery=65, centerx=60) #Render Scene.        screen.blit(background, (0,0))         #cam.set_pos(car.x, car.y)         map_s.update(cam.x, cam.y)        map_s.draw(screen)        #Conditional renders/effects        car.grass(screen.get_at(((int(CENTER_W-5), int(CENTER_H-5)))).g)        if (car.tracks):            tracks_s.add(tracks.Track(cam.x + CENTER_W, cam.y + CENTER_H, car.dir)) #Just render..        tracks_s.update(cam.x, cam.y)        tracks_s.draw(screen)                player_s.update(cam.x, cam.y)        player_s.draw(screen)         traffic_s.update(cam.x, cam.y)        traffic_s.draw(screen)         target_s.update(cam.x, cam.y)        target_s.draw(screen)         pointer_s.update(car.x + CENTER_W, car.y + CENTER_H, target.x, target.y)        pointer_s.draw(screen) #Conditional renders.        if (bounds.breaking(car.x+CENTER_W, car.y+CENTER_H) == True):            bound_alert_s.update()            bound_alert_s.draw(screen)        if (target.timeleft == 0):            timer_alert_s.draw(screen)            car.speed = 0            text_score = font.render('Final Score: ' + str(target.score), 1, (224, 16, 16))            textpos_score = text_fps.get_rect(centery=CENTER_H+56, centerx=CENTER_W-20)        if (info.visibility == True):            menu_alert_s.draw(screen)            #Blit Blit..               screen.blit(text_fps, textpos_fps)        screen.blit(text_score, textpos_score)        screen.blit(text_timer, textpos_timer)        pygame.display.flip() #Check collision!!!        if pygame.sprite.spritecollide(car, traffic_s, False):            car.impact()            target.car_crash()         if pygame.sprite.spritecollide(car, target_s, True):            target.claim_flag()            target.generate_finish()            target_s.add(target)                    clock.tick(64)         #initializationpygame.init() screen = pygame.display.set_mode((pygame.display.Info().current_w,                                  pygame.display.Info().current_h),                                  pygame.FULLSCREEN)  pygame.display.set_caption('Race of Math.')pygame.mouse.set_visible(False)font = pygame.font.Font(None, 24) CENTER_W =  int(pygame.display.Info().current_w /2)CENTER_H =  int(pygame.display.Info().current_h /2) #new background surfacebackground = pygame.Surface(screen.get_size())background = background.convert_alpha()background.fill((26, 26, 26)) #Enter the mainloop.main() pygame.quit()sys.exit(0)

2.地图设置maps.py

import os, sys, pygame, mathfrom pygame.locals import *from loader import load_imagefrom random import randrange #Map filenames. map_files = []map_tile = ['X.png', 'I.png', 'L.png', 'T.png', 'O.png', 'null.png'] #Map to tile.crossing = 0straight = 1turn     = 2split    = 3Deadend  = 4null     = 5 #tilemap.map_1 = [          [2,1,3,1,1,3,1,1,1,4],          [1,5,1,5,4,0,1,2,5,4],          [1,4,3,1,3,3,1,3,2,1],          [3,1,3,1,3,5,4,5,1,1],          [3,2,1,5,1,5,3,1,0,3],          [1,2,0,1,0,3,0,4,1,1],          [1,5,1,4,2,1,1,2,3,1],          [1,2,0,1,3,3,0,0,2,1],          [1,1,4,2,2,5,1,2,1,3],          [2,3,1,3,1,1,3,1,1,2]        ] #tilemap rotation, x90ccwmap_1_rot = [          [1,1,0,1,1,0,1,1,1,3],          [0,0,0,0,1,0,1,0,0,0],          [0,1,2,1,0,2,1,2,0,0],          [1,1,0,1,3,0,0,0,0,0],          [1,0,0,0,0,0,1,1,0,3],          [0,2,0,1,0,0,0,3,0,0],          [0,0,0,1,3,0,0,1,3,0],          [0,1,0,1,0,2,0,0,3,0],          [0,0,2,1,3,0,0,2,1,3],          [2,2,1,2,1,1,2,1,1,3]            ]  class Map(pygame.sprite.Sprite):    def __init__(self, tile_map, y, x, rot):        pygame.sprite.Sprite.__init__(self)        self.image = map_files[tile_map]        self.rect = self.image.get_rect()         if rot != 0:            self.image = pygame.transfORM.rotate(self.image, rot * 90)         self.x = x        self.y = y #Realign the map    def update(self, cam_x, cam_y):        self.rect.topleft = self.x - cam_x, self.y - cam_y

三、效果展示

游戏玩法:M游戏开始——P重来——Q退出游戏。跟着红色箭头运行会出现奖杯。一个奖杯15

分,在规定时间拿到的奖杯越多数越高啦~

1.游戏界面

基于Python+Pygame怎么实现经典赛车游戏

2.游戏运行中

基于Python+Pygame怎么实现经典赛车游戏

3.15分到手

基于Python+Pygame怎么实现经典赛车游戏

关于“基于Python+Pygame怎么实现经典赛车游戏”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网Python频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: 基于Python+Pygame怎么实现经典赛车游戏

本文链接: https://www.lsjlt.com/news/327701.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于Python+Pygame实现经典赛车游戏
    目录导语一、环境安装二、代码展示1.主程序main.py2.地图设置maps.py三、效果展示1.游戏界面2.游戏运行中3.15分到手导语 哈喽!哈喽~我是木木子,很久没给大家更新游...
    99+
    2024-04-02
  • 基于Python+Pygame怎么实现经典赛车游戏
    这篇文章主要介绍“基于Python+Pygame怎么实现经典赛车游戏”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“基于Python+Pygame怎么实现经典赛车游戏”文章能帮助大家解决问题。一、环境...
    99+
    2023-06-30
  • 怎么用Python Pygame实现赛车游戏
    今天小编给大家分享一下怎么用Python Pygame实现赛车游戏的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一...
    99+
    2023-06-29
  • Python+Pygame实现经典魂斗罗游戏
    目录一、效果展示二、操作说明三、核心代码今天分享一个经典小游戏魂斗罗的 Python 版实现。 一、效果展示 二、操作说明 A:向左 D:向右 W:跳起 S:趴下 J:射击 P:退...
    99+
    2024-04-02
  • 基于WPF实现经典纸牌游戏
    目录1 纸牌类2 布局3 初始化4 事件点击牌堆拖动牌的去留1 纸牌类 之所以产生这个无聊至极的念头,是因为发现Unicode中竟然有这种字符。。。 这就意味着不用任何资源就可以实...
    99+
    2023-02-27
    WPF实现纸牌游戏 WPF纸牌游戏 WPF游戏
  • 基于Java怎么实现经典蜘蛛纸牌游戏
    本文小编为大家详细介绍“基于Java怎么实现经典蜘蛛纸牌游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“基于Java怎么实现经典蜘蛛纸牌游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果展示前面的导入过程...
    99+
    2023-06-30
  • 基于Python实现经典植物大战僵尸游戏
    目录游戏截图动态演示源码分享state/tool.pystate/constants.pystate/main.py主执行文件main.py游戏截图 动态演示 源码分享 st...
    99+
    2024-04-02
  • Pygame实战之实现经典外星人游戏
    目录前言正文安装环境主要代码前言 说说外星人那些事儿.... 你以为的外星人......他们都是乘坐UFO来地球的,长的嗯哼可能比较有特色。也许长这样 害!其实可能也或许不长这样。...
    99+
    2024-04-02
  • 基于Java实现经典蜘蛛纸牌游戏
    目录效果展示游戏结构核心代码AboutDialog.java类PKCard.java类SpiderMenuBar.java类Spider.java 类效果展示 前面的导入过...
    99+
    2024-04-02
  • 基于JS实现经典的井字棋游戏
    目录先看成品游戏初始化界面:玩家获胜AI电脑获胜思路生成棋盘重新开始玩家落子电脑落子代码HTMLCSSjs井字棋作为我们在上学时代必玩的一款连珠游戏,你知道如何做到先手必然不会输吗?...
    99+
    2024-04-02
  • 基于WPF如何实现经典纸牌游戏
    这篇“基于WPF如何实现经典纸牌游戏”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于WPF如何实现经典纸牌游戏”文章吧。1...
    99+
    2023-07-05
  • 如何用Pygame实现经典外星人游戏
    本篇内容介绍了“如何用Pygame实现经典外星人游戏”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!安装环境下载python3,或如Anaco...
    99+
    2023-06-26
  • 基于Python+Pygame实现变异狗大战游戏
    目录前言一、准备环境 二、代码展示三、效果展示前言 只有你想不到,没有我找不到写不了的好游戏! 哈喽。我是你们的栗子同学啦~ 今天小编去了我朋友家里玩儿,看到了一个敲可爱的...
    99+
    2023-03-03
    Python Pygame变异狗游戏 Python Pygame变异狗 Python Pygame 游戏
  • Python Pygame如何实现经营类游戏
    一、注意事项1.python的字体要尽量小一点 否则视觉上会很难看,调9-11左右 而且一定一定要调Consolas字体 对于win7系统字符画显示可能有问题,因为程序使用制表符, 制表符在win7下存储占2个字符 游戏是win10设计,设...
    99+
    2023-05-17
    Python Pygame
  • Python Pygame实战之五款童年经典游戏合集
    目录一、推箱子1)代码展示2)效果展示二、滑雪1)代码展示2)效果展示​三、声控把音符1)代码展示2)效果展示四、保卫萝卜1)代码展示2)效果展示​五、飞机大战1)代码展示2)效果展...
    99+
    2024-04-02
  • 基于Python+Pygame如何实现变异狗大战游戏
    这篇文章主要介绍了基于Python+Pygame如何实现变异狗大战游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于Python+Pygame如何实现变异狗大战游戏文章都会有所收获,下面我们一起来看看吧。一...
    99+
    2023-07-05
  • 基于python pygame实现的兔子吃月饼小游戏
    目录小游戏规则简介 实现 初始化游戏窗口 游戏逻辑 实现玩家类 实现月饼类 交互逻辑 总结中秋佳节就快来临,给各位大佬整个兔子吃月饼的小游戏助助兴,废话不多说,开整。 小游戏规则简介...
    99+
    2024-04-02
  • 基于pygame实现贪吃蛇小游戏示例
    目录游戏截图引入库初始化模型获取键盘事件移动贪吃蛇吃食物逻辑碰撞到自身逻辑结束游戏显示文字函数完整代码游戏截图 引入库 import copy import random i...
    99+
    2024-04-02
  • Python+Pygame怎么实现24点游戏
    这篇文章主要介绍了Python+Pygame怎么实现24点游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python+Pygame怎么实现24点游戏文章都会有所收获,下面我们一起来看看吧。游戏介绍(1)什么...
    99+
    2023-06-30
  • Python Pygame怎么实现塔防游戏
    这篇文章主要讲解了“Python Pygame怎么实现塔防游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python Pygame怎么实现塔防游戏”吧!一、环境要求w...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作