Python+Pygame实现趣味足球游戏

目录
  • 导语
  • 一、环境安装
  • 二、代码展示
  • 三、效果展示
    • 1)加载界面
    • 2)开始游戏界面
    • 3)开始游戏
    • ​4)游戏运行

导语

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

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

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

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

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

​​温馨提示:

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

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

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

一、环境安装

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

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

2)运行环境 小编使用的环境:Python3、Pycharm社区版、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足球游戏内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用python+pygame开发消消乐游戏附完整源码

    效果是这样的 ↓ ↓ ↓ 一.环境要求 windows系统,python3.6+ pip21+ 开发环境搭建地址 一起来学pygame吧 游戏开发30例(开篇词)--环境搭建+游戏效果展示 安装游戏依赖模块 pip install pygame 二.游戏简介 消消乐应该大家都玩过,或者看过.这个花里胡哨的小游戏 用python的pygame来实现,很简单. 今天带大家,用Python来实现一下这个花里胡哨的小游戏. 三.完整开发流程 1.项目主结构 首先,先整理一下项目的主结构,其实看一下主结构

  • Python Pygame实战之飞机大战的实现

    目录 导语 一.环境安装 1)各种素材(图片.字体等) 2)运行环境 二.代码展示 1)文章思路 2)附代码讲解 3)主程序 三.效果展示 总结 导语 三月疫情原因,很多地方都封闭式管理了! 在回家无聊的打酱油,小编今天给大伙带来了一波小游戏——全民左右飞机大战!在这个快熬不下去的日子里,打打飞机消遣闲暇时间,也是蛮惬意的,这几天小编必须全身心投入到飞机大战中来!肝了几天这款小游戏终于面市啦! 这次的游戏操作很简单,就是左右移动飞机,躲避敌人飞机,打落敌机会随机掉落金币,我们 要打击的敌人!每个

  • Python Pygame实战之趣味篮球游戏的实现

    目录 导语 一.环境安装 二.代码展示 1)游戏界面文字 2)主程序 三.效果展示 1)游戏玩家一 2)游戏玩家二 3)随机投篮 导语 贪玩的我~终于回来了! 今日过后,日常更新——挺长一段时间都不在状态的.好好调整中! 最近在给大家研究一些新游戏,大家喜欢打篮球嘛? (木子高中还参加过篮球比赛,棒棒~虽然打的不咋滴就是了~哈哈哈) 大学时期,最喜欢跟着室友一起去看学校的各种篮球比赛的.哈哈哈,有姐妹的话就懂得~ 估计学编程的女孩子还是挺少的哈,男孩子的话不懂我就不解释啦~回家了可以问下自己的女

  • python实现五子棋游戏(pygame版)

    本文实例为大家分享了python五子棋游戏的具体代码,供大家参考,具体内容如下 目录 简介 实现过程 结语 简介 使用python实现pygame版的五子棋游戏: 环境:Windows系统+python3.8.0 游戏规则: 1.分两位棋手对战,默认黑棋先下:当在棋盘点击左键,即在该位置绘制黑棋: 2.自动切换到白棋,当在棋盘点击左键,即在该位置绘制白棋: 3.轮流切换棋手下棋,当那方先形成5子连线者获胜(横.竖.斜.反斜四个方向都可以). 游戏运行效果如下: 实现过程 1.新建文件settin

  • Python Pygame实战之赛车游戏的实现

    目录 导语 一.环境安装 1)运行环境 2)素材环境 二.代码展示 三.效果展示 游戏开始—— 游戏界面—— 游戏结束—— 导语 小伙伴们大家好~ 如今的游戏可谓是层出不穷,NBA 2K系列啊,FIFA系列啊更是经典中的经典,不过小编发现,赛车游戏也是深受大家欢迎啊,像跑跑卡丁车.QQ飞车,还有主机游戏极品飞车系列. 咳咳咳......小编那时候主要是最喜欢里面的人物颜值来的! 赛车游戏,通常以款式多样的车型.各式各样的赛道.身临其境的拟真度吸引了众多玩家,而玩家在游戏中需要驾驶各类赛车驰骋在世

  • Python Pygame实战之打地鼠小游戏

    目录 前言 开发工具 环境搭建 原理简介 前言 今天给大家写一个个打地鼠小游戏,废话不多说直接开始- 开发工具 Python版本: 3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 打地鼠的游戏规则相信大家都知道,这里就不多介绍了,反正就是不停地拿锤子打洞里钻出来的地鼠~ 首先,让我们确定一下游戏中有哪些元素.打地鼠打地鼠,地鼠当然得有啦,那我们就写个地鼠的游戏精灵类: '''地鼠'

  • Python+Pygame实现趣味足球游戏

    目录 导语 一.环境安装 二.代码展示 三.效果展示 1)加载界面 2)开始游戏界面 3)开始游戏 ​4)游戏运行 导语 ​足球运动有着“世界第一运动”的美称,还是全球最具影响力的体育运动项目之一. ​小小的足球在滚动中能释放满满的能量和快乐. 足球游戏不仅可以锻炼大家的协调和反应能力,还能提高身体素质哦~ 喜欢足球的小可爱,这一期可以大饱眼福啦 小编准备出一期关于足球的编程代码给大家哦~还有那些喜欢看足球赛的可以自己上jio啦​ ​​温馨提示: 足球游戏时,一定要注意.场地要安全,服装要选好.

  • Python Pygame实现落球游戏详解

    目录 引包 初始化配置 捕捉事件 填充屏幕让球下落 完整代码 引包 引入对应的包,和原来一样写一个打印文字的方法 import sys, random,  pygame from pygame.locals import * def print_text(font, x, y, text, color=(255, 255, 255)):     img_text = font.render(text, True, color)     screen.blit(img_text, (x, y))

  • Python Pygame实战之愤怒的小鸟游戏实现

    目录 前言 一.运行环境 二.代码展示 三.效果展示 1)第一关 2)闯关成功 ​3)其他关卡(随机截图) 4)闯关失败 前言 <愤怒的小鸟>其实活得还不错,尽管我们一直在嘲笑它的IP帝国梦做得太大. 但要知道,把休闲益智游戏的生意做到这个份上的,恐怕也就独此一家了.尤其还是这样的一款古早.过时.难让人相信还能翻出什么花样的游戏.继前两期的效果来看,大家还是依旧挺喜欢这款游戏的啦~嘿!我是栗子,今天终于迎来了最终版本啦~ 这一期给大家写完<愤怒的小鸟最终版>三期完结撒花! 后续再想

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

    目录 导语 一.环境安装 二.代码展示 1.主程序main.py 2.地图设置maps.py 三.效果展示 1.游戏界面 2.游戏运行中 3.15分到手 导语 哈喽!哈喽~我是木木子,很久没给大家更新游戏的类似啦—— 有粉丝投稿,说最近由于受疫情影响封闭在家不能离开小区,前不久刚刚报名的驾照考试只能无线延期,在家里还是挺无聊的,“憋在家里没事干的时候去打打游戏写写代码还挺好的. 于是,小编灵机一动,就有了今天这款简易版本的<赛车计划>也就是咳咳咳....... 通俗点儿就是一款代码写的一款关于

  • Python+Pygame实战之泡泡游戏的实现

    目录 导语 一.环境安装 二.代码展示 三.效果展示 导语 泡泡王国 欢乐多多 咕噜噜,吹泡泡,七彩泡泡满天飘.大的好像彩气球,小的就像紫葡萄. ​当泡泡漫天飞舞时,大朋友.小朋友都会情不自禁地被它吸引.而当珍珠般的泡泡遇上可爱的程序员门时,又会出现什么样的美丽风景呢? 说到4399小游戏,没有人会陌生吧?我小时候经常趁着家长不在家的时候偷偷打开电脑打开小游戏的网页,在电脑桌前一坐就是一下午,真的不能赖我不适可而止,而是这些游戏真的太好 玩了!关于童年的经典游戏and有关泡泡的,之前已经仿写了一

  • Python+Pygame实现之见缝插针游戏的实现

    目录 前言 ​一.运行环境 二.代码展示 三.效果展示 ​总结 前言 姥姥说: 炎炎夏日热浪来袭. 有点让人无法忍受... 一动就是一身汗..... 想玩点小游戏都没地方玩了... <见缝插针>游戏小程序好玩吗?<见缝插针>小游戏怎么玩? 只有你想不到,没有我不会敲代码的好游戏!「良心好游戏推荐」——栗子同学强势来袭! 每天都会推荐好玩的小游戏.小编今天推荐这款游戏叫<见缝插针>,这是一个考验玩家首脑协调.反应力的小游戏,这种游戏很常见,居然还没有推荐过!今天赶紧来补上

  • python pygame实现五子棋小游戏

    今天学习了如何使用pygame来制作小游戏,下面是五子棋的代码,我的理解都写在注释里了 import pygame # 导入pygame模块 print(pygame.ver) # 检查pygame的版本,检查pygame有没有导入成功 EMPTY = 0 BLACK = 1 WHITE = 2 # 定义三个常量函数,用来表示白棋,黑棋,以及 空 black_color = [0, 0, 0] # 定义黑色(黑棋用,画棋盘) white_color = [255, 255, 255] # 定义白

  • python pygame实现挡板弹球游戏

    学了一天pygame,用python和pygame写一个简单的挡板弹球游戏 GitHub: EasyBaffleBallGame # -*- coding:utf-8 -*- from sys import exit import pygame from pygame.locals import * pygame.init() # 创建窗口 ScreenWidth = 500 ScreenHright = 720 ScreenSize = (ScreenWidth, ScreenHright)

随机推荐