Python Pygame實(shí)戰(zhàn)之趣味籃球游戲的實(shí)現(xiàn)
導(dǎo)語(yǔ)
貪玩的我~終于回來(lái)了!
今日過(guò)后,日常更新——挺長(zhǎng)一段時(shí)間都不在狀態(tài)的。好好調(diào)整中!
最近在給大家研究一些新游戲,大家喜歡打籃球嘛?
(木子高中還參加過(guò)籃球比賽,棒棒~雖然打的不咋滴就是了~哈哈哈)
大學(xué)時(shí)期,最喜歡跟著室友一起去看學(xué)校的各種籃球比賽的。哈哈哈,有姐妹的話就懂得~
估計(jì)學(xué)編程的女孩子還是挺少的哈,男孩子的話不懂我就不解釋啦~回家了可以問(wèn)下自己的女朋友是不是也這樣子干過(guò)!嘻嘻.jpg
今天小編的話就給大家用代碼做一款簡(jiǎn)約的《籃球小游戲》
一、環(huán)境安裝
1)各種素材(圖片、代碼)
資料挺多滴,等下代碼就只展示主要的一些代碼哈!
2)運(yùn)行環(huán)境
小編使用的環(huán)境:Python3、Pycharm社區(qū)版、Pygame、numpy、 scipy 模塊部分自帶就不
展示啦。
模塊安裝:pip install -i https://pypi.douban.com/simple/+模塊名
二、代碼展示
1)游戲界面文字
設(shè)置的是雙人模式撒,可以兩個(gè)人一起玩兒的,玩家1跟玩家2輪流投籃滴。
import pygame BLACK = (0, 0, 0) RED = (255, 0, 0) class Text: def text_objects(self, text, font, color): textSurface = font.render(text, True, color) return textSurface, textSurface.get_rect() def score_display(self, world, screen): p1color = RED if world.p1turn else BLACK p2color = BLACK if world.p1turn else RED self.add_to_screen( screen, 30, "Player 1: " + str(world.p1score) + " points", 150, 50, p1color ) self.add_to_screen( screen, 30, "Player 2: " + str(world.p2score) + " points", 150, 90, p2color ) def victory_message(self, world, screen): winner = 1 if world.p1score > world.p2score else 2 self.add_to_screen( screen, 100, "The winner is Player " + str(winner) + "!", 640, 320 ) def add_to_screen(self, screen, font_size, text, center_x, center_y, color): largeText = pygame.font.Font("freesansbold.ttf", font_size) TextSurf, TextRect = self.text_objects(text, largeText, color) TextRect.center = (center_x, center_y) screen.blit(TextSurf, TextRect)
2)主程序
import pygame from Ball import Ball2D from World import World from PowerBar import PowerBar from Text import Text BLACK = (0, 0, 0) WHITE = (255, 255, 255) RED = (255, 0, 0) def main(): # initializing pygame pygame.init() clock = pygame.time.Clock() # top left corner is (0,0) win_width = 1280 win_height = 640 screen = pygame.display.set_mode((win_width, win_height)) pygame.display.set_caption("Basketball籃球游戲") world = World() power = PowerBar() scoreboard = Text() world.add_rim("disk-red.png", 5).set_pos([1000, 300]) world.add_rim("disk-red.png", 5).set_pos([1075, 300]) dt = 0.1 while True: # 100 fps clock.tick(60) # Clear the background, and draw the sprites screen.fill(WHITE) power.draw(screen) world.draw(screen) pygame.draw.arc(screen, RED, (50, 50, 50, 50), 1, 1, 10) # draw rim line pygame.draw.line(screen, RED, [1000, 340], [1075, 340], 10) # draw backboard pygame.draw.line(screen, RED, [1075, 250], [1075, 640], 10) scoreboard.score_display(world, screen) if world.won: scoreboard.victory_message(world, screen) pygame.display.update() clock.tick(1) # countdown timer to close the game when won for i in range(100): pass break elif not world.shot: power.start(world) else: won = world.update(dt, power) pygame.display.update() if __name__ == "__main__": main()
三、效果展示
1)游戲玩家一
2)游戲玩家二
3)隨機(jī)投籃
用多大的力氣投籃就在蓄力的時(shí)候點(diǎn)一下鼠標(biāo)左鍵在相應(yīng)的藍(lán)條點(diǎn)擊,剛開(kāi)始肯定不適應(yīng)
要慢慢試,看那里是最適合的時(shí)候。每次投籃一次10分哦~
到此這篇關(guān)于Python Pygame實(shí)戰(zhàn)之趣味籃球游戲的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python Pygame籃球游戲內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python打印詳細(xì)報(bào)錯(cuò)日志,獲取報(bào)錯(cuò)信息位置行數(shù)方式
這篇文章主要介紹了Python打印詳細(xì)報(bào)錯(cuò)日志,獲取報(bào)錯(cuò)信息位置行數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Python實(shí)現(xiàn)wav和pcm的轉(zhuǎn)換方式
這篇文章主要介紹了Python實(shí)現(xiàn)wav和pcm的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05calendar在python3時(shí)間中常用函數(shù)舉例詳解
這篇文章主要介紹了calendar在python3時(shí)間中常用函數(shù)的相關(guān)文章,對(duì)此知識(shí)點(diǎn)有興趣的朋友們可以學(xué)習(xí)下。2020-11-11Python爬蟲之m3u8文件里提取小視頻的正確姿勢(shì)
本文給大家分享如何正確提取m3u8文件里的.ts視頻,并合成完整的.mp4格式視頻,通過(guò)圖文實(shí)例代碼的形式給大家介紹的非常詳細(xì),對(duì)Python提取m3u8文件小視頻感興趣的朋友一起看看吧2021-05-05