遊戲功能:小球從螢幕頂端隨機位置出現,垂直落下。滑鼠左右鍵控制擋板左右移動,接住下落的小球。若沒有接到則遊戲失敗,退出並顯示分數。效果如圖:
**如下:
#coding=utf-8
import pygame
from pygame.locals import *
import sys
import random
black =(0,0,0)
white = (255,255,255)
bg_color = (0, 0, 70)# 背景顏色
screen_size = [320,400]#螢幕大小
bar_size = [20,5]#擋板大小
ball_size = [15,15]#球的尺寸
class game(object):
def __init__(self):
pygame.init()
self.clock = pygame.time.clock()#定時器
self.screen = pygame.display.set_mode(screen_size)
pygame.display.set_caption('my game')#設定標題
#ball 初始位置
self.ball_pos_x = screen_size[0]//2 - ball_size[0]/2
self.ball_pos_y = 0
#ball 移動方向
#self.ball_dir_x = -1 #-1:left 1:right
self.ball_dir_y = 1# 1:down
self.ball_pos = pygame.rect(self.ball_pos_x,self.ball_pos_y,ball_size[0],ball_size[1])
self.score =0
self.bar_pos_x = screen_size[0]//2 - bar_size[0]//2
self.bar_pos = pygame.rect(self.bar_pos_x,screen_size[1]-bar_size[1],bar_size[0],ball_size[1])
def bar_move_left(self):#左移
self.bar_pos_x = self.bar_pos_x - 2
def bar_move_right(self):#右移
self.bar_pos_x = self.bar_pos_x + 2
def run(self):
pygame.mouse.set_visible(0) #移動滑鼠不可見
bar_move_left =false
bar_move_right = false
while true:
for event in pygame.event.get():
if event.type == quit: #當按下關閉按鍵
pygame.quit()
sys.exit()#接收到退出事件後退出程式
elif event.type == pygame.mousebuttondown and event.button ==1:#滑鼠左鍵按下
bar_move_left = true
elif event.type == pygame.mousebuttonup and event.button == 1: #左鍵彈起
bar_move_left = false
elif event.type == pygame.mousebuttondown and event.button == 3:#右鍵
bar_move_right = true
elif event.type == pygame.mousebuttonup and event.button == 3: #左鍵彈起
bar_move_right = false
if bar_move_left == true and bar_move_right ==false:
self.bar_move_left()
if bar_move_left == false and bar_move_right == true:
self.bar_move_right()
self.screen.fill(bg_color)
self.bar_pos.left = self.bar_pos_x
pygame.draw.rect(self.screen, white, self.bar_pos)
## 球移動
self.ball_pos.bottom += self.ball_dir_y * 3
pygame.draw.rect(self.screen, white, self.ball_pos)
## 判斷球是否落到板上
if self.bar_pos.top <= self.ball_pos.bottom and (
self.bar_pos.left <= self.ball_pos.right and self.bar_pos.right >= self.ball_pos.left):
self.score += 1
print("score: ", self.score, end='\r')
elif self.bar_pos.top <= self.ball_pos.bottom and (
self.bar_pos.left > self.ball_pos.right or self.bar_pos.right < self.ball_pos.left):
print("game over: ", self.score)
return self.score
## 更新球下落的初始位置
if self.bar_pos.top <= self.ball_pos.bottom:
self.ball_pos_x = random.randint(0, screen_size[0] - ball_size[0])
self.ball_pos_y = 0
self.ball_pos = pygame.rect(self.ball_pos_x, self.ball_pos_y, ball_size[0], ball_size[1])
pygame.display.update()#更新軟體介面顯示
self.clock.tick(60)
game = game()
game.run()#啟動
使用Python進行資料視覺化(二 Pygal)
首先使用pip安裝pygal windows中命令如下 python m pip install user pygal 1.7 如果用vs2017,用包管理工具 安裝pygal pygal的官網www.pygal.org 可在官網的documentation找到pygal的例項 1.繪製投骰子的直方...
python學習筆記 一 print的各種用法
print函式 print objects,sep end n file sys.stdout 3.利用 格式化輸出 類似c的printf 4.利用format輸出 5.向檔案輸出 file引數 print 裡可以用 也可以用 但要保證前後一致 python裡print可以直接輸出列表,集合,元組,...
python學習筆記,使用爬蟲用有道進行翻譯
使用爬蟲使用有道進行翻譯 import urllib.request import urllib.parse 匯入轉義傳入response中的data型別 import json content input 請輸入需要翻譯的內容 url data data i content data from a...