<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
足球運動有著“世界第一運動”的美稱,還是全球最具影響力的體育運動專案之一。
小小的足球在捲動中能釋放滿滿的能量和快樂。
足球遊戲不僅可以鍛鍊大家的協調和反應能力,還能提高身體素質哦~
喜歡足球的小可愛,這一期可以大飽眼福啦
小編準備出一期關於足球的程式設計程式碼給大家哦~還有那些喜歡看足球賽的可以自己上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
到此這篇關於Python+Pygame實現趣味足球遊戲的文章就介紹到這了,更多相關Python Pygame足球遊戲內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45