亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

pygame庫實(shí)現(xiàn)移動(dòng)底座彈球小游戲

 更新時(shí)間:2020年04月14日 08:24:46   作者:一個(gè)處女座的程序猿  
這篇文章主要為大家詳細(xì)介紹了pygame庫實(shí)現(xiàn)移動(dòng)底座彈球小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了pygame實(shí)現(xiàn)移動(dòng)底座彈球的具體代碼,供大家參考,具體內(nèi)容如下

輸出結(jié)果:

實(shí)現(xiàn)代碼:

# -*- coding: utf-8 -*-
 
#Py之pygame:有趣好玩——利用pygame庫實(shí)現(xiàn)一個(gè)移動(dòng)底座彈球的小游戲
 
import pygame as pg
from pygame.locals import * #將pygame所有常量導(dǎo)入,如后面的QUIT
from time import sleep
import sys
 
#設(shè)置基本屏幕參數(shù)
pg.init()       #初始化,如果沒有的話字體會(huì)報(bào)錯(cuò)等等
scr=pg.display.set_mode((600,550)) #設(shè)置屏幕大小
pg.display.set_caption(("移動(dòng)底座彈球的小游戲")) #設(shè)置屏幕標(biāo)題
pp=255, 255, 0   #red是一個(gè)元組,表示乒乓球橙色
green=0,255,0
white=255,255,255
dizuo=120, 63, 4  #底座顏色灰土色
pink=255, 0, 255
cs=225,121,21   #乒乓球顏色,橙色
 
#設(shè)計(jì)一下乒乓球的運(yùn)動(dòng)方式,乒乓球在屏幕內(nèi)運(yùn)動(dòng)
x=120 #乒乓球的坐標(biāo)設(shè)置為(x,y)
y=120
vx=3 #設(shè)置初速度vx,vy,當(dāng)乒乓球到達(dá)屏幕邊緣的時(shí)候速度取反,也就是乒乓球到達(dá)左右兩邊緣的時(shí)候vx取反,上下邊緣的時(shí)候vy取反。
vy=3
a=200 #a代表乒乓板的x坐標(biāo)值,因?yàn)槠古野鍄坐標(biāo)值是固定的
 
My_font=pg.font.Font(None,40) #40是字的大小,設(shè)置字體,None表示沒有,代指pygame默認(rèn)的字體,但是這樣的字體缺點(diǎn)是不能打印出中文。
zt1=pg.font.SysFont('華文楷體',24) #楷體,a=pg.font.get_fonts() #獲得系統(tǒng)自帶的字體
zt2=pg.font.SysFont('華文楷體',20)
zt21=pg.font.SysFont('幼圓',29)
 
def printtext(font,text,x,y,color): #設(shè)計(jì)一個(gè)函數(shù),在游戲屏幕上打印文本,代碼表示先把文本轉(zhuǎn)換成一個(gè)位圖然后打印在屏幕上,打印文本需要打印的具體坐標(biāo)和文本顏色,字體等參數(shù)。
 img=font.render(text,True,color) #轉(zhuǎn)換為位圖
 scr.blit(img,(x,y))
 
#設(shè)置得分,基礎(chǔ)記分量,為什么設(shè)置基礎(chǔ)記分量?我想的是經(jīng)過一段時(shí)間后乒乓球會(huì)加速,從而逐漸增加游戲難度,當(dāng)然,基礎(chǔ)記分量也要翻倍。
c=0 #c是加速器,如果接了10次,那么加速
fs=0 #fs是分?jǐn)?shù),接到一次乒乓球就加分
k=1 #基礎(chǔ)加分量
 
#游戲的主要代碼了,pygame采用幀和輪詢的方式,幀是指會(huì)不斷刷新,也就是while True循環(huán),輪詢是不斷的詢問用戶的輸入。
#在下面代碼中,會(huì)不斷獲取鼠標(biāo)具體坐標(biāo)和QUIT事件是否發(fā)生。Scr.fill會(huì)用RGB值為(199,21,133)的顏色刷新屏幕,
#以后畫圓寫字都在這基礎(chǔ)上,下一次循環(huán)后又刷新。因此在屏幕中乒乓球和乒乓板就會(huì)動(dòng)態(tài)呈現(xiàn)出來。
while True:
 scr.fill((199,21,133)) #游戲背景色
 background = pg.image.load('F:/File_Python/Resources/00102.jpg').convert()
 scr.blit(background, (0, 0)) 
 for eve in pg.event.get():
  if eve.type == QUIT: #點(diǎn)擊左上角的×
   sys.exit()   #如果無效,可以試試exit()函數(shù)
 mx,my=pg.mouse.get_pos()  #獲得鼠標(biāo)的x,y坐標(biāo)
 a=mx #鼠標(biāo)x坐標(biāo)就是乒乓板的坐標(biāo),因此移動(dòng)鼠標(biāo)乒乓板也移動(dòng)
 #畫乒乓球和畫乒乓板了,我們可以簡化為圓形和矩形
 pg.draw.circle(scr,pp,(x,y),40,0)
 pg.draw.rect(scr,dizuo,(a,530,100,20),0)
 #考慮乒乓球的運(yùn)動(dòng),如果乒乓球碰到左右屏幕邊緣,vx取反,碰到上邊緣或者碰到乒乓板的時(shí)候,vy取反,其余情況表示乒乓板沒有接觸到乒乓球,跳出循環(huán),游戲結(jié)束。
 x=x+vx
 y=y+vy
 if x>550 or x<40:
  vx=-vx
 if y<40:
  vy=-vy
 if y>510 and abs(a-x+50)<50:
  if vy>0:
   vy=-vy
  else:pass
  c=c+1  #每接到3次后乒乓球加速
  fs=fs+k #加分
  if c>=3:
   c=0
   k=k+k #乒乓球加速后記分量雙倍
   if vx>0: #加速
    vx=vx+1
   else:
    vx=vx-1
  else:pass
 elif y>510 and abs(a-x+50)>50:
  break
 #在while循環(huán)最后,我寫一下得分,規(guī)則,還有刷新,刷新很重要!
 sleep(0.005) #休眠一定時(shí)間,不然乒乓球速度依然很快
 printtext(zt21,"移動(dòng)鼠標(biāo)控制底座左右移動(dòng)",120,20,pink)
 printtext(zt2,"得分",550,12,green)
 printtext(zt2,str(fs),560,32,green)
 pg.display.update()
#在循環(huán)結(jié)束后就是前面乒乓板沒有接觸到乒乓球后發(fā)生的情況,最后是游戲結(jié)束的代碼,畢竟這游戲靠看得分看成敗
scr.fill((28, 69, 135)) #游戲結(jié)束后全屏改變顏色
zt3=pg.font.SysFont('華文楷體',60)
zt4=pg.font.SysFont('華文楷體',40)
printtext(zt3,"你好,游戲結(jié)束",60,120,white)
printtext(zt4,'總得分: '+str(fs),120,400,white)
pg.display.update() 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python使用Beets模塊實(shí)現(xiàn)自動(dòng)整理音樂庫

    Python使用Beets模塊實(shí)現(xiàn)自動(dòng)整理音樂庫

    Beets是一個(gè)功能強(qiáng)大的Python庫,用于處理音樂文件的元數(shù)據(jù),在本文中,我們將探討beets模塊的常見使用方法,感興趣的可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • Python壓縮解壓縮zip文件及破解zip文件密碼的方法

    Python壓縮解壓縮zip文件及破解zip文件密碼的方法

    這篇文章主要介紹了Python壓縮解壓縮zip文件及嘗試破解zip文件密碼的方法,給出了一個(gè)使用zipfile模塊的簡單示例,需要的朋友可以參考下
    2015-11-11
  • Python?日期和時(shí)間處理教程之datetime?模塊的使用示例詳解

    Python?日期和時(shí)間處理教程之datetime?模塊的使用示例詳解

    Python 中的日期不是獨(dú)立的數(shù)據(jù)類型,但我們可以導(dǎo)入一個(gè)名為 datetime 的模塊來使用日期作為日期對象,這篇文章主要介紹了Python?日期和時(shí)間處理教程:datetime?模塊的使用,需要的朋友可以參考下
    2023-10-10
  • Opencv+Python識(shí)別PCB板圖片的步驟

    Opencv+Python識(shí)別PCB板圖片的步驟

    這篇文章主要介紹了Opencv+Python識(shí)別PCB板圖片的步驟,幫助大家更好的理解和使用python進(jìn)行機(jī)器學(xué)習(xí),感興趣的朋友可以了解下
    2021-01-01
  • Python Learning 列表的更多操作及示例代碼

    Python Learning 列表的更多操作及示例代碼

    這篇文章主要介紹了Python Learning-列表的更多操作,需要的朋友可以參考下
    2018-08-08
  • Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù)

    Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù)

    這篇文章主要介紹了Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Python加速程序運(yùn)行的方法

    Python加速程序運(yùn)行的方法

    這篇文章主要介紹了Python加速程序運(yùn)行的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • python中split方法用法分析

    python中split方法用法分析

    這篇文章主要介紹了python中split方法用法,實(shí)例分析了split方法的功能及相關(guān)使用技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • Python實(shí)現(xiàn)Logger打印功能的方法詳解

    Python實(shí)現(xiàn)Logger打印功能的方法詳解

    最近工作中遇到了打印的需求,通過查找相關(guān)的資料發(fā)現(xiàn)Python中Logger可以很好的實(shí)現(xiàn)打印,所以下面這篇文章主要給大家介紹了關(guān)于Python如何實(shí)現(xiàn)Logger打印功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-09-09
  • Python3.7+tkinter實(shí)現(xiàn)查詢界面功能

    Python3.7+tkinter實(shí)現(xiàn)查詢界面功能

    這篇文章主要介紹了Python3.7+tkinter實(shí)現(xiàn)查詢界面功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12

最新評論