日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

自己動手用Python實現一個保衛果實小游戲【完整版】

來源: 責編: 時間:2023-10-10 18:30:37 274觀看
導讀Pygame介紹pygame 是一個用 Python 語言寫的跨平臺的視頻游戲開發庫。它基于 SDL (Simple DirectMedia Layer) 庫,可以讓開發者輕松地創建游戲和多媒體應用程序。下面是關于 pygame 的一些基本介紹:功能特點:聲音和音樂

no528資訊網——每日最新資訊28at.com

保衛果實小游戲

no528資訊網——每日最新資訊28at.com

最終我們給大家的是一個完整的系統文件,如下圖所示。no528資訊網——每日最新資訊28at.com

  • modules文件夾:相關動作的實現代碼
  • resources文件夾:系統相關音樂、圖片資源文件
  • cfg.py:配置文件(指定了圖片、聲音文件等路徑)
  • Game1.py:啟動文件

no528資訊網——每日最新資訊28at.com

運行命令:no528資訊網——每日最新資訊28at.com

python Game1.py

即可看到界面效果。no528資訊網——每日最新資訊28at.com

核心代碼

import mathimport pygame'''定義兔子類'''class BunnySprite(pygame.sprite.Sprite):    def __init__(self, image, position, **kwargs):        pygame.sprite.Sprite.__init__(self)        self.image = image        self.rect = self.image.get_rect()        self.rect.left, self.rect.top = position        self.speed = 5        self.rotated_position = position    '''移動兔子'''    def move(self, screensize, direction):        if direction == 'left':            self.rect.left = max(self.rect.left-self.speed, 0)        elif direction == 'right':            self.rect.left = min(self.rect.left+self.speed, screensize[0])        elif direction == 'up':            self.rect.top = max(self.rect.top-self.speed, 0)        elif direction == 'down':            self.rect.top = min(self.rect.top+self.speed, screensize[1])    '''畫到屏幕上'''    def draw(self, screen, mouse_pos):        angle = math.atan2(mouse_pos[1]-(self.rect.top+32), mouse_pos[0]-(self.rect.left+26))        image_rotate = pygame.transform.rotate(self.image, 360-angle*57.29)        bunny_pos = (self.rect.left-image_rotate.get_rect().width/2, self.rect.top-image_rotate.get_rect().height/2)        self.rotated_position = bunny_pos        screen.blit(image_rotate, bunny_pos)'''定義弓箭類'''class ArrowSprite(pygame.sprite.Sprite):    def __init__(self, image, position, **kwargs):        pygame.sprite.Sprite.__init__(self)        self.angle = position[0]        self.image = pygame.transform.rotate(image, 360-position[0]*57.29)        self.rect = self.image.get_rect()        self.mask = pygame.mask.from_surface(self.image)        self.rect.left, self.rect.top = position[1:]        self.speed = 10    '''更新弓箭'''    def update(self, screensize):        velx = math.cos(self.angle) * self.speed        vely = math.sin(self.angle) * self.speed        self.rect.left += velx        self.rect.top += vely        if self.rect.right < 0 or self.rect.left > screensize[0] or self.rect.top > screensize[1] or self.rect.bottom < 0:            return True        return False'''定義獾類'''class BadguySprite(pygame.sprite.Sprite):    def __init__(self, image, position, **kwargs):        pygame.sprite.Sprite.__init__(self)        self.image = image        self.rect = self.image.get_rect()        self.mask = pygame.mask.from_surface(self.image)        self.rect.left, self.rect.top = position        self.speed = 7    '''更新獾'''    def update(self):        self.rect.left -= self.speed        if self.rect.left < 64:            return True        return False

這段代碼主要是利用 pygame 庫定義了三個類,分別表示一個游戲中的兔子、箭和獾。no528資訊網——每日最新資訊28at.com

這段代碼主要是利用 pygame 庫定義了三個類,分別表示一個游戲中的兔子、箭和獾。下面我會逐個解釋這些代碼的含義:no528資訊網——每日最新資訊28at.com

(1) BunnySprite類 (兔子類):no528資訊網——每日最新資訊28at.com

  • 初始化:創建一個兔子精靈,設置其圖像、位置以及速度。
  • move方法:基于給定的方向(上、下、左、右),移動兔子一個固定的速度。
  • draw方法:在屏幕上繪制兔子,并使其面朝鼠標的位置旋轉。

(2) ArrowSprite類 (弓箭類):no528資訊網——每日最新資訊28at.com

  • 初始化:創建一個箭的精靈,根據一個給定的角度來旋轉它,并設置它的位置和速度。
  • update方法:更新箭的位置。箭會根據它的旋轉角度飛行。如果箭飛出屏幕,該方法會返回True,否則返回False。

(3) BadguySprite類 (獾類):no528資訊網——每日最新資訊28at.com

  • 初始化:創建一個獾的精靈,設置其圖像和位置。
  • update方法:更新獾的位置,使其向左移動。如果獾到達了屏幕的最左邊,該方法會返回True,否則返回False。

本文鏈接:http://www.www897cc.com/showinfo-26-12688-0.html自己動手用Python實現一個保衛果實小游戲【完整版】

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Springboot實現Rabbitmq死信隊列以及延遲隊列的優化

下一篇: 如何優雅的處理Java異常?

標簽:
  • 熱門焦點
  • K60至尊版剛預熱 一加Ace2 Pro正面硬剛

    Redmi這邊剛如火如荼的宣傳了K60 Ultra的各種技術和硬件配置,作為競品的一加也坐不住了。一加中國區總裁李杰發布了兩條微博,表示在自家的一加Ace2上早就已經采用了和PixelWo
  • 紅魔電競平板評測:大屏幕硬實力

    前言:三年的疫情因為要上網課的原因激活了平板市場,如今網課的時代已經過去,大家的生活都恢復到了正軌,這也就意味著,真正考驗平板電腦生存的環境來了。也就是面對著這種殘酷的
  • 小米平板5 Pro 12.4簡評:多專多能 兼顧影音娛樂的大屏利器

    疫情帶來了網課,網課盤活了安卓平板,安卓平板市場雖然中途停滯了幾年,但好的一點就是停滯的這幾年行業又有了新的發展方向,例如超窄邊框、高刷新率、多攝鏡頭組合等,這就讓安卓
  • Automa-通過連接塊來自動化你的瀏覽器

    1、前言通過瀏覽器插件可實現自動化腳本的錄制與編寫,具有代表性的工具就是:Selenium IDE、Katalon Recorder,對于簡單的業務來說可快速實現自動化的上手工作。Selenium IDEKat
  • 讓我們一起聊聊文件的操作

    文件【1】文件是什么?文件是保存數據的地方,是數據源的一種,比如大家經常使用的word文檔、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存數據,它既可以保
  • 一個注解實現接口冪等,這樣才優雅!

    場景碼猿慢病云管理系統中其實高并發的場景不是很多,沒有必要每個接口都去考慮并發高的場景,比如添加住院患者的這個接口,具體的業務代碼就不貼了,業務偽代碼如下:圖片上述代碼有
  • 每天一道面試題-CPU偽共享

    前言:了不起:又到了每天一到面試題的時候了!學弟,最近學習的怎么樣啊 了不起學弟:最近學習的還不錯,每天都在學習,每天都在進步! 了不起:那你最近學習的什么呢? 了不起學弟:最近在學習C
  • 阿里瓴羊One推出背后,零售企業迎數字化新解

    作者:劉曠近年來隨著數字經濟的高速發展,各式各樣的SaaS應用服務更是層出不窮,但本質上SaaS大多局限于單一業務流層面,對用戶核心關切的增長問題等則沒有提供更好的解法。在Saa
  • 華為Mate60標準版細節曝光:經典星環相機模組回歸

    這段時間以來,關于華為新旗艦的爆料日漸密集。據此前多方爆料,今年華為將開始恢復一年雙旗艦戰略,除上半年推出的P60系列外,往年下半年的Mate系列也將
Top 主站蜘蛛池模板: 溧阳市| 壶关县| 翁牛特旗| 灌云县| 湖北省| 洛南县| 清苑县| 延长县| 美姑县| 抚州市| 合江县| 商河县| 资阳市| 龙胜| 黄平县| 七台河市| 新蔡县| 舟山市| 梧州市| 昂仁县| 都昌县| 贡觉县| 娱乐| 调兵山市| 洪泽县| 和林格尔县| 株洲县| 应城市| 汉中市| 大新县| 新干县| 河津市| 湟源县| 安西县| 高州市| 内丘县| 金沙县| 阜城县| 江西省| 贵定县| 景东|