1. 程式人生 > 程式設計 >pygame實現彈球遊戲

pygame實現彈球遊戲

本文例項為大家分享了pygame實現彈球遊戲的具體程式碼,供大家參考,具體內容如下

pygame彈球遊戲

寫的很簡陋
pip install pygame 安裝pygame模組

程式碼,複製執行即可

import pygame
import random

pygame.init()

win = pygame.display.set_mode((600,600)) # 畫布視窗的大小
pygame.display.set_caption("彈球遊戲") # 視窗標題

x,y = 300,0 # 方塊的起點
width,height = 10,10 # 方塊的寬,高
speed = 1 # 速度


def _randomOK():
  return random.randint(0,1)


stop = False
_random = _randomOK()

str1 = "暫停中"
baffle = 250
status = 0

count = 0
top = 0
while True:
  # 重新整理頻率,小球移動速度
  pygame.time.Clock().tick(1000)

  for event in pygame.event.get():
    # 視窗x事件
    if event.type == pygame.QUIT:
      exit(0)
    elif event.type == pygame.KEYDOWN:
      # 回車事件
      if event.key == 13:
        str1 = "暫停中"
        stop = not stop
        if status == 1:
          x,0

  keys = pygame.key.get_pressed()
  if stop:
    pygame.display.set_caption(str1) # 視窗標題
    continue
  if y >= 590:
    status = 1
    stop = not stop
    str1 = "遊戲結束,回車重新開始,反彈次數" + str(count)
    count = 0

  pygame.display.set_caption("彈球遊戲") # 視窗標題
  if y == 0:
    top = 0
  if top == 0:
    if _random == 0: # 向下左彈
      x -= speed
      y += speed
    elif _random == 1:
      x += speed
      y += speed
  else:
    if _random == 0: # 向上左彈
      x -= speed
      y -= speed
    elif _random == 1: # 向上右彈
      x += speed
      y -= speed
  # 方向箭頭響應
  if keys[pygame.K_LEFT]:
    baffle -= speed
    if baffle < 0:
      baffle = 0

  if keys[pygame.K_RIGHT]:
    baffle += speed
    if baffle > 500:
      baffle = 500
  # 碰撞邏輯
  if 500 <= y <= 520:
    print(x,y)
    print(baffle)
    # y 高度座標 200 x 寬度座標 200
    # x座標加300 大於 寬度初始座標,小於 寬度+300
    if baffle <= x <= baffle + 100:
      count += 1
      top = 1

  # 防止跑出邊界
  if x > win.get_size()[0] - width:
    _random = _randomOK()
    x = win.get_size()[0] - width

  if x < 0:
    _random = _randomOK()
    x = 0

  if y > win.get_size()[1] - height:
    _random = _randomOK()
    y = win.get_size()[1] - height

  if y < 0:
    _random = _randomOK()
    y = 0

  # 將每一幀的底色先填充成黑色
  win.fill((64,158,255))
  # 畫方塊
  pygame.draw.rect(win,(255,0),(x,y,width,height))
  # 擋板設定,pygame.draw.rect(win,255,255),(baffle,500,100,20))
  # 更新畫布
  pygame.display.update()
pygame.quit()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。