<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
最小開發框架:
import pygame #製作遊戲時要使用的模組 import sys #python的標準庫,對內部各功能模組進行初始化建立,系統模組
需要在螢幕上隨機生成小球
from random import randint
詳情請看此文章:python中的亂數 Random介紹
可以調節遊戲螢幕的大小
# 改變視窗尺寸 elif event.type == pygame.VIDEORESIZE: size = w,h = event.w,event.h screen = pygame.display.set_mode(size,pygame.RESIZABLE)
pygame.VIDEORESIZE 這是視窗大小改變事件,事件發生後,返回event.size元組,包含新視窗的寬度和高度。 .size[0] 高度,也可以用event.w表示 .size[1] 寬度,也可以用event.h表示 返回引數僅在事件發生時有用
# 鍵盤控制擋板 elif event.type == pygame.KEYDOWN: #鍵盤按下事件檢測 if event.key == pygame.K_LEFT: # 判斷擋板是否左移 if board_rect.left > 0 and board_rect.left <= w - 186: board_rect.left -= board_x elif board_rect.left <= 0: # 判斷擋板左邊的座標是否小於0 board_rect.left = 0 board_rect.top -= board_y elif event.key == pygame.K_RIGHT: # 判斷擋板是否右移 if board_rect.right >= 186 and board_rect.right < w: board_rect.right += board_x elif board_rect.right >= w: # 判斷擋板右邊的座標是否大於螢幕的寬度 board_rect.right = w board_rect.bottom += board_y
#滑鼠控制擋板 elif event.type == pygame.MOUSEMOTION: # 滑鼠左鍵按下並跟隨滑鼠移動 if event.buttons[0] == 1: if event.pos[0] >= 0 and event.pos[0] < w - 186:#判斷滑鼠的位置 board_rect.left = event.pos[0] #將滑鼠的x座標給Rect物件的左邊 elif event.pos[0] >= w - 186 and event.pos[0] <= w: board_rect.left = w - 186 # board_rect.top = h - 17 #檔板位置在底部 elif event.type == pygame.MOUSEBUTTONDOWN: #滑鼠按鍵按下 # 將滑鼠當前位置給擋板 if event.button == 1: if event.pos[0] >= 0 and event.pos[0] < w - 186:#判斷滑鼠的位置 board_rect.left = event.pos[0] #將滑鼠的x座標給Rect物件的左邊 if event.pos[0] >= w - 186 and event.pos[0] <= w: board_rect.left = w - 186 # board_rect.top = h - 17
# 下方擋板接到小球 if ball_y >= h - 37 and (ball_x >= board_rect.left - 20 and ball_x <= board_rect.left + 206): move_y = - move_y # y方向速度反向 score += points #得分 count += 1 #次數增加1次 if count == 5: # 每滿五次,難度和單次接球得分增加 count = 0 # 接球得分的次數清零 points += points # x方向速度增加 if move_x > 0: move_x += 1 else: move_x -= 1 move_y -= 1
# 下方擋板未接到小球 if ball_y > h - 27 and (ball_x < board_rect.left - 20 or ball_x > board_rect.left + 206): # 遊戲結束 ball_y = 200 #小球所在的位置 break
# 移動小球 ball_x += move_x ball_y += move_y if ball_x <= 20 or ball_x >= w - 20: # 碰到左右兩側牆壁 move_x = - move_x # x方向速度反向 if ball_y <= 20: # 碰到上方牆壁 move_y = - move_y # y方向速度反向
my_score = font.render(str(score), False, (255, 255, 0)) # 建立文字物件(文字,是否平滑,文字顏色) screen.blit(my_score, (w - 100, 30)) # 將文字新增到視窗上
import sys from random import randint import pygame pygame.init() # 初始化 size = w, h = (600,500) # 螢幕顯示的區域,高度和寬度 screen = pygame.display.set_mode(size,pygame.RESIZABLE) pygame.display.set_caption("接球遊戲") # 螢幕的標題 fpsClock = pygame.time.Clock() # 幀速率 視窗重新整理速度 越大執行越快 board = pygame.image.load(r"D:pycharmWorkTime(大二上)擋板.jpg") board_rect = board.get_rect() #對圖片進行加框 利用surface生成rect color = pygame.Color(255,255,255) # 螢幕(視窗)的顏色:白色 Green = pygame.Color('green') # 小球的顏色:綠色 # 隨機生成小球的x、y座標(整數,包括兩端) ball_x = randint(20,580) ball_y = randint(20,200) # 小球x、y座標變化量 move_x = 1 move_y = 1 # 擋板x、y座標變化量 board_x = 46 board_y = 0 score=0 #得分 font=pygame.font.Font(r'D:字型檔書法和新增字型檔微軟雅黑.ttf',60) #設定字型(前者是字型路徑)和字型大小 points=1 #一次接球的加分 count=0 #接球得分的次數 # size1 = board.get_size() #獲取圖片大小 # print(size1) while True: board_rect.top = h - 17 for event in pygame.event.get(): # pygame.event.get() 從事件佇列中取出事件,並從佇列中刪除該事件 if event.type == pygame.QUIT: sys.exit() # 改變視窗尺寸 elif event.type == pygame.VIDEORESIZE: size = w,h = event.w,event.h screen = pygame.display.set_mode(size,pygame.RESIZABLE) # 鍵盤控制擋板 elif event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: # 擋板左移 if board_rect.left > 0 and board_rect.left <= w - 186: board_rect.left -= board_x elif board_rect.left <= 0: # 判斷擋板左邊的座標是否小於0 board_rect.left = 0 board_rect.top -= board_y elif event.key == pygame.K_RIGHT: # 擋板右移 if board_rect.right >= 186 and board_rect.right < w: board_rect.right += board_x elif board_rect.right >= w: # 判斷擋板右邊的座標是否大於螢幕的寬度 board_rect.right = w board_rect.bottom += board_y #滑鼠控制擋板 elif event.type == pygame.MOUSEMOTION: # 滑鼠左鍵按下並跟隨滑鼠移動 if event.buttons[0] == 1: if event.pos[0] >= 0 and event.pos[0] < w - 186:#判斷滑鼠的位置 board_rect.left = event.pos[0] #將滑鼠的x座標給Rect物件的左邊 elif event.pos[0] >= w - 186 and event.pos[0] <= w: board_rect.left = w - 186 # board_rect.top = h - 17 #檔板位置在底部 elif event.type == pygame.MOUSEBUTTONDOWN: #滑鼠按鍵按下 # 將滑鼠當前位置給擋板 if event.button == 1: if event.pos[0] >= 0 and event.pos[0] < w - 186:#判斷滑鼠的位置 board_rect.left = event.pos[0] #將滑鼠的x座標給Rect物件的左邊 if event.pos[0] >= w - 186 and event.pos[0] <= w: board_rect.left = w - 186 # board_rect.top = h - 17 # 下方擋板接到小球 if ball_y >= h - 37 and (ball_x >= board_rect.left - 20 and ball_x <= board_rect.left + 206): move_y = - move_y # y方向速度反向 score += points count += 1 if count == 5: # 每滿五次,難度和單次接球得分增加 count = 0 # 接球得分的次數清零 points += points # x方向速度增加 if move_x > 0: move_x += 1 else: move_x -= 1 move_y -= 1 # 下方擋板未接到小球 if ball_y > h - 27 and (ball_x < board_rect.left - 20 or ball_x > board_rect.left + 206): # 遊戲結束 ball_y = 200 break # 移動小球 ball_x += move_x ball_y += move_y if ball_x <= 20 or ball_x >= w - 20: # 碰到左右兩側牆壁 move_x = - move_x # x方向速度反向 if ball_y <= 20: # 碰到上方牆壁 move_y = - move_y # y方向速度反向 fpsClock.tick(200) screen.fill(color) # 顯示分數 my_score = font.render(str(score), False, (255, 255, 0)) # 建立文字物件(文字,是否平滑,文字顏色) screen.blit(my_score, (w - 100, 30)) # 將文字新增到視窗上 screen.blit(board,board_rect) #將一個影象繪製在另一個影象上 把surface物件覆蓋到移動後的rect物件 pygame.draw.circle(screen, Green, (ball_x, ball_y), 20) # 繪製小球 pygame.display.update() # 對顯示視窗進行更新,預設視窗全部重繪
到此這篇關於python中的pygame實現接球小遊戲的文章就介紹到這了,更多相關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