91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pygame庫如何實現移動底座彈球小游戲

發布時間:2020-08-04 10:11:17 來源:億速云 閱讀:168 作者:小豬 欄目:開發技術

小編這次要給大家分享的是pygame庫如何實現移動底座彈球小游戲,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

輸出結果:

pygame庫如何實現移動底座彈球小游戲

實現代碼:

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

看完這篇關于pygame庫如何實現移動底座彈球小游戲的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

如皋市| 台南县| 肥西县| 宝兴县| 定安县| 都兰县| 康平县| 韩城市| 泰兴市| 五指山市| 左权县| 壤塘县| 奇台县| 郸城县| 温宿县| 容城县| 根河市| 密云县| 乐东| 麻栗坡县| 武定县| 白玉县| 孝昌县| 东阿县| 武义县| 吐鲁番市| 特克斯县| 安岳县| 望江县| 班玛县| 张家界市| 柳河县| 安西县| 华容县| 枣强县| 达日县| 开封市| 曲水县| 浙江省| 安顺市| 旅游|