iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python+Pygame实现趣味足球游戏
  • 456
分享到

Python+Pygame实现趣味足球游戏

2024-04-02 19:04:59 456人浏览 泡泡鱼

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

摘要

目录导语一、环境安装 二、代码展示三、效果展示1)加载界面2)开始游戏界面3)开始游戏​4)游戏运行导语 ​足球运动有着“世界第一运动”的美称,还是

导语

​足球运动有着“世界第一运动”的美称,还是全球最具影响力的体育运动项目之一。

​小小的足球在滚动中能释放满满的能量和快乐。

足球游戏不仅可以锻炼大家的协调和反应能力,还能提高身体素质哦~

喜欢足球的小可爱,这一期可以大饱眼福啦

小编准备出一期关于足球的编程代码给大家哦~还有那些喜欢看足球赛的可以自己上jio啦​

​​温馨提示:

足球游戏时,一定要注意。场地要安全,服装要选好。

刚刚吃饱饭,剧烈要不得。动前和动后,准备和放松。

我们爱足球,运动伴成长。你爱踢足球游戏嘛?!​

一、环境安装 

1)各种素材(图片、视频等) 

资料挺多滴,等下代码就只展示主要的一些代码哈!

2)运行环境 小编使用的环境:python3PyCharm社区版、Pygame 模块部分自带就不一一展示啦

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

二、代码展示

如上图素材所示代码主要分为6段py代码!代码很多仅展示主程序

主程序

from __future__ import unicode_literals
import itertools, sys, time, random, math, pygame
from pygame.locals import *
from MyLibrary import *
from football import *
from IO import*

def bias(x, y):
    x = x + 16
    y = y + 24
    x_cent = 0
    y_cent = 0
    if (x >= 100 and x <= 700):
        x_cent = -1 * x + 100
    elif (x > 700):
        x_cent = -600
    else:
        x_cent = 0
    if (y >= 75 and y <= 525):
        y_cent = -1 * y + 75
    elif (y > 525):
        y_cent = -450
    else:
        y_cent = 0
    return x_cent, y_cent


def draw_background(screen):
    rc = (255, 255, 255)
    rp = (600, 400)
    rr = 80
    width = 5
    screen.fill((0,100,0))
    pygame.draw.circle(screen, rc, rp, rr, width)
    pygame.draw.rect(screen, (255, 255, 255), (10, 10, 600, 790), 5)
    pygame.draw.rect(screen, (255, 255, 255), (600, 10, 590, 790), 5)
    pygame.draw.rect(screen, (255, 255, 255), (10, 150, 300, 500), 5)
    pygame.draw.rect(screen, (255, 255, 255), (890, 150, 300, 500), 5)

def draw_ball_Goal(screen):
    goal1 = pygame.image.load("goal1.bmp").convert()
    goal2 = pygame.image.load("goal2.bmp").convert()
    screen.blit(goal1,(8,305))
    screen.blit(goal2,(1121,305))


def begin_a_game(n1,n2):
    nn = 0
    filename = 'p2.png'
    filename2 = 'p1.png'
    size_of_player = (32,47.5)
    size_of_action = 4
    size_of_playground = (1920,1080)
    dict_ = {(-1, 0): 3, (1, 0): 0, (0, 1): 2, (0, -1): 1, (-1, 1): 3, (-1, -1): 1, (1, -1): 0, (1, 1): 2};
    x_bias = 0
    y_bias = 0
    kick_off = 0
    player_group = pygame.sprite.Group()
    player_group1 = pygame.sprite.Group()
    player_group2 = pygame.sprite.Group()
    player = MySprite()
    X, Y = random.randint(250,500),random.randint(350-25,450-25)
    # x_bias, y_bias = bias(X, Y);
    player.load(filename, size_of_player[0], size_of_player[1], size_of_action)
    player.position = X + x_bias, Y + y_bias
    player.direction = 1,0
    player.tag  =1
    player_group.add(player)
    player_group1.add(player)

    player2 = MySprite()
    X2,Y2 = random.randint(700,950),random.randint(350-25,450-25)
    player2.load(filename2, size_of_player[0], size_of_player[1], size_of_action)
    player2.position = X2 + x_bias, Y2 + y_bias
    player2.direction = 1,0
    player2.tag = 2
    player_group.add(player2)
    player_group2.add(player2)

    b_X,b_Y = 1200/2,800/2;
    ball_group = pygame.sprite.Group()
    myball = ball()
    myball.load()
    myball.position = b_X+x_bias,b_Y+y_bias
    ball_group.add(myball)

    
    p1 = robot()
    p1.leader = player
    p1.ball = myball
    p1.goal_pos = [892,399]
    p1.tag = 1
    p1.goal = [1120,405]
    p1.other_group = player_group2
    p1.load("p3.png", size_of_player[0], size_of_player[1], size_of_action)
    p1.X,p1.Y = random.randint(250,500),random.randint(50-25,350-25)
    p1.direction = 1,0
    player_group1.add(p1)
    player_group.add(p1)
    
    pp2 = robot_B()
    pp2.leader = p1
    pp2.ball = myball
    pp2.goal_pos = [892,399]
    pp2.goal = [1120,405]
    pp2.tag = 1
    pp2.wonder = 300;
    pp2.other_group = player_group2
    pp2.load("p3.png", size_of_player[0], size_of_player[1], size_of_action)
    pp2.X,pp2.Y = random.randint(250,500),random.randint(450-25,750-25)
    pp2.direction = 1,0
    player_group1.add(pp2)
    player_group.add(pp2)

    d1 = defence()
    d1.leader = player
    d1.ball = myball
    d1.wonder = 85
    d1.tag = 1
    d1.other_group = player_group2
    d1.load("p3.png", size_of_player[0], size_of_player[1], size_of_action)
    d1.X,d1.Y = 85,390
    d1.direction = 1,0
    player_group1.add(d1)
    player_group.add(d1)
    
    t = robot()
    t.leader = player2
    t.ball = myball
    t.tag = 2
    t.other_group = player_group1
    t.goal_pos = [309,389]
    t.goal = [70,405]
    t.load("p4.png", size_of_player[0], size_of_player[1], size_of_action)
    t.X,t.Y = random.randint(700,950),random.randint(50-25,350-25)
    t.direction = 1,0
    player_group2.add(t)
    player_group.add(t)
    r = t;
    t = robot_B()
    t.leader = r
    t.goal = [70,405]
    t.ball = myball
    t.wonder = 900
    t.tag = 2
    t.other_group = player_group1
    t.goal_pos = [309,389]
    t.load("p4.png", size_of_player[0], size_of_player[1], size_of_action)

    t.X,t.Y = random.randint(700,950),random.randint(450-25,750-25)
    t.direction = 1,0
    player_group2.add(t)
    player_group.add(t)

    d2 = defence2()
    d2.leader = player2
    d2.ball = myball
    d2.wonder = 1070
    d2.tag = 2
    d2.other_group = player_group1
    d2.load("p4.png", size_of_player[0], size_of_player[1], size_of_action)
    d2.X,d2.Y = 1070,390
    d2.direction = 1,0
    player_group2.add(d2)
    player_group.add(d2) 


    game_over = False
    player_moving = False
    player2_moving =False
    while True:
        timer.tick(50)
        ticks = pygame.time.get_ticks()
        myball.cal +=1;
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
        if nn == 0.00001:
            keys = pygame.key.get_pressed()
            if keys[K_ESCAPE]: sys.exit()
            if keys[K_SPACE]:nn+=0.00001
            continue

        nn+=0.00001
        mx, my = pygame.mouse.get_pos()
        # print(str(mx)+" "+str(my))
        # print(myball.position)
        Reference = [x_bias,y_bias,X,Y]
        player1_ai(myball,player,game_over,player_moving,Reference)
        x_bias,y_bias,X,Y = Reference
        Reference = [x_bias,y_bias,X2,Y2]
        player2_AI(myball,player2,game_over,player2_moving,Reference)
        x_bias,y_bias,X2,Y2 = Reference
        # print(d1.shoot)
        if d1.shoot == True or d2.shoot == True:
            p1.state = "back"
            pp2.state = "back"
            r.state =  "back"
            t.state =  "back"
        player_group.update(ticks, 30)
        
        if myball.cal > 10:
            the_player = None
            if myball.player == None:
                the_player = pygame.sprite.spritecollideany(myball,player_group);
                if  the_player != None:
                    if pygame.sprite.collide_circle_ratio(1)(the_player,myball):
                        myball.fetched(the_player);
                        the_player.state = "catch"
                        if the_player == d1 or the_player == d2:
                            the_player.shoot =True;
            elif myball.player.tag ==1:
                the_player = pygame.sprite.spritecollideany(myball,player_group2);
                if  the_player != None:
                    if pygame.sprite.collide_circle_ratio(1)(the_player,myball):
                        if the_player != d1 and the_player != d2:
                            myball.player.state = "chase"
                            the_player.state = "catch"
                            myball.fetched(the_player)
            elif myball.player.tag ==2:
                the_player = pygame.sprite.spritecollideany(myball,player_group1);
                if  the_player != None:
                    if pygame.sprite.collide_circle_ratio(1)(the_player,myball):
                        if the_player != d1 and the_player != d2:
                            myball.player.state = "chase"
                            the_player.state = "catch"
                            myball.fetched(the_player)

            # the_player = pygame.sprite.spritecollideany(myball,player_group);
            # if  the_player != None:
            #     if pygame.sprite.collide_circle_ratio(0.65)(the_player,myball):
            #         print("*********************************************************")
            #         if(myball.player!=None):
            #             player_group.add(myball.player);
            #             ball_group.remove(myball.player);
            #         myball.fetched(the_player);
            #         player_group.remove(the_player)
            #         ball_group.add(the_player)
        myball.check_bound(1200,800)
        if(myball.fetch):
            myball.fetched(None)
            #print("kick_off")
        else: myball.run()
        # print(str(myball.X)+" "+str(myball.Y))
        ball_group.update(ticks,60)
        #print(str(myball.X)+" "+str(myball.Y))
        if myball.X < 60 and myball.Y >315 - 17  and myball.Y <495:
            return 2
        elif myball.X > 1110 and myball.Y >315 - 17  and myball.Y <495:
            return 1
        draw_background(screen)
        if(myball.player!=None and myball.player.direction[0]>0):
            player_group.draw(screen)
            ball_group.draw(screen)
        else:
            ball_group.draw(screen)
            player_group.draw(screen)
        font = pygame.font.SysFont("", 150)
        text_surface = font.render(str(n1)+" : "+str(n2), True, (0, 0, 255))
        screen.blit(text_surface, (500, 10))
        draw_ball_goal(screen)
        pygame.display.update()
def myinit():
    screen = pygame.display.set_mode((769,563))
    g1 = pygame.image.load("g1.jpg").convert()
    g2 = pygame.image.load("hh.png").convert()
    t = 0
    timer = pygame.time.Clock()
    while(1):
        timer.tick(30)
        ticks = pygame.time.get_ticks();
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
        screen.blit(g1,(0,0))
        t+= 1
        #print(t)
        if t > 66:
            break;
        pygame.display.update()
    while(1):
        timer.tick(30)
        ticks = pygame.time.get_ticks();
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
            if event.type == MOUSEBUTTONUP:
                mouse_up = event.button
                mouse_up_x,mouse_up_y = event.pos
                if mouse_up_x > 245 and mouse_up_x < 469 and mouse_up_y> 368 and mouse_up_y < 470:
                    return
        screen.blit(g2,(0,0))
        pygame.display.update()
    
if __name__ == '__main__':
    pygame.init()
    screen = pygame.display.set_mode((1200, 800))
    pygame.display.set_caption("简单足球")
    font = pygame.font.Font(None, 36)
    myinit()
    timer = pygame.time.Clock()
    n1 = 0
    n2 =0
    screen = pygame.display.set_mode((1200, 800))
    for x in range(10000):
        t = begin_a_game(n1,n2);
        if t == 1:
            n1 +=1
        else:
            n2 += 1

三、效果展示

1)加载界面

2)开始游戏界面

3)开始游戏

​4)游戏运行

到此这篇关于python+Pygame实现趣味足球游戏的文章就介绍到这了,更多相关Python Pygame足球游戏内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python+Pygame实现趣味足球游戏

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

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

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

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

下载Word文档
猜你喜欢
  • Python+Pygame实现趣味足球游戏
    目录导语一、环境安装 二、代码展示三、效果展示1)加载界面2)开始游戏界面3)开始游戏​4)游戏运行导语 ​足球运动有着“世界第一运动”的美称,还是...
    99+
    2022-11-13
  • Pygame实现简易版趣味小游戏之反弹球
    目录导语一、准备中1)游戏规则2)素材准备3)环境安装二、敲代码1)配置文件2)设置球的反弹、移动规则3)设置球拍电脑的移动等4)设置游戏开始界面5)定义游戏结束页面6)运行游戏De...
    99+
    2022-11-13
  • PythonPygame实战之趣味篮球游戏的实现
    目录导语一、环境安装二、代码展示1)游戏界面文字2)主程序三、效果展示1)游戏玩家一2)游戏玩家二3)随机投篮导语 贪玩的我~终于回来了! 今日过后,日常更新—&mdas...
    99+
    2022-11-10
  • Python趣味挑战之用pygame实现飞机塔防游戏
    目录一、先让飞机在屏幕上飞起来吧。二、屏幕下发实现一个塔防设备三、让子弹也飞起来吧四、碰撞监测和爆炸效果实现五、完整代码六、运行效果一、先让飞机在屏幕上飞起来吧。 (一)实现飞机类 ...
    99+
    2022-11-12
  • C++实现趣味扫雷游戏
    本文实例为大家分享了C++实现趣味扫雷游戏的具体代码,供大家参考,具体内容如下 流程设计 1.初始化阵列。 2.输入坐标点。 3.选择:挖掘,标记,取消标记,重启,退出游戏。 如果选...
    99+
    2022-11-12
  • C++怎么实现趣味扫雷游戏
    这篇文章主要介绍C++怎么实现趣味扫雷游戏,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!流程设计初始化阵列。2.输入坐标点。3.选择:挖掘,标记,取消标记,重启,退出游戏。如果选了挖掘,判断坐标点是地雷则游戏结束,是...
    99+
    2023-06-15
  • python中的pygame实现接球小游戏
    目录一、介绍模块1、Pygame和sys模块2、random模块二、相关功能1、窗口尺寸改变2、键盘控制挡板3、鼠标控制4、挡板接住小球并得分5、小球未接住小球6、小球移动7、显示分...
    99+
    2022-11-10
  • pygame实现弹球游戏流程
    目录一、事件二、复习碰撞精灵三、画出球杆并击打小球一、事件 鼠标事件: pygame.mouse.get_pos():获取鼠标当前点的坐标 pygame.mouse.get_pres...
    99+
    2023-01-17
    Pygame弹球游戏 Pygame弹珠游戏 Python弹球游戏
  • pygame实现滑块接小球游戏
    用pygame做一个滑块接小球的游戏,供大家参考,具体内容如下 先上图 游戏很简单也很弱智,主要用到了pygame画圆,画方块,随机数等,可以锻炼基本的鼠标控制,游戏设计思维,简单...
    99+
    2022-11-12
  • Pygame实战之实现扎气球游戏
    目录导语正文一、准备中二、代码演示三、效果展示导语 ​前几天,有人私信小编: 说陪女朋友在小广场上面逛街玩儿扎气球:结果一个都没扎破,扎心了老铁。 女朋友都要离家出走了~让我给想想办...
    99+
    2022-11-12
  • Pygame如何实现反弹球小游戏
    这篇文章主要为大家展示了“Pygame如何实现反弹球小游戏”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Pygame如何实现反弹球小游戏”这篇文章吧。一、准备中1)游戏规则比平常的乒乓球更简单,...
    99+
    2023-06-29
  • Pygame是如何实现扎气球游戏
    这期内容当中小编将会给大家带来有关Pygame是如何实现扎气球游戏,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。正文下面的扎气球小游戏原型就是路边的扎气球的游戏撒,基于Pygame做的!就准备好射的箭、不...
    99+
    2023-06-22
  • python pygame实现打砖块游戏
    本文实例为大家分享了python pygame实现打砖块游戏的具体代码,供大家参考,具体内容如下 最近在尝试着写一个用强化学习的方法玩打砖块的游戏,首先将游戏环境做些改动,以便产生需...
    99+
    2022-11-11
  • Python趣味挑战之用pygame实现简单的金币旋转效果
    一、实现逻辑 step1、保存图像到list列表。 step2、在主窗口每次显示一张list列表中的对象。 呵呵,好像就这么简单。所以,主要还是要有图片。 这里也分享一下图片给大家。 二、核心逻辑代码解析 (一...
    99+
    2022-06-02
    pygame实现金币旋转 python pygame
  • 用python实现弹球小游戏
    目录一、弹球游戏代码 二、程序结果 总结一、弹球游戏代码  下文是tkinter的应用实例,实现弹球游戏,通过<--和-->件移动平板接球。...
    99+
    2022-11-13
  • Python如何实现篮球游戏
    这篇文章给大家分享的是有关Python如何实现篮球游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言准备编写一个篮球游戏,运动员带球跑,跳起投篮。在每帧图片中包括运动员和篮球,使用多帧图片,实现运动员运球...
    99+
    2023-06-15
  • Python+Pygame实现神庙逃亡游戏
    目录游戏规则精灵类加载龙加载子弹添加玩家碰撞事件完整代码游戏规则 用pygame动画实现神庙逃亡类似的小游戏,当玩家移动的时候躲避子弹,如果子弹命中玩家或者名字龙都会减速,玩家躲避子...
    99+
    2022-11-11
  • Python+Pygame实现接小弹珠游戏
    目录游戏介绍效果展示游戏代码项目资源游戏介绍 小学生都不一定会晚的游戏,用挡板接住会反弹的小球,随着次数的增多,速度变快,分数增多。 效果展示 游戏代码 import pygame...
    99+
    2022-12-27
    Python Pygame接弹珠游戏 Python Pygame接弹珠 Python Pygame 游戏 Python 接弹珠
  • Python Pygame怎么实现塔防游戏
    这篇文章主要讲解了“Python Pygame怎么实现塔防游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python Pygame怎么实现塔防游戏”吧!一、环境要求w...
    99+
    2023-06-29
  • Python+Pygame怎么实现24点游戏
    这篇文章主要介绍了Python+Pygame怎么实现24点游戏的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python+Pygame怎么实现24点游戏文章都会有所收获,下面我们一起来看看吧。游戏介绍(1)什么...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作