国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python版經(jīng)典小游戲憤怒的小鳥源代碼,基于pygame+pymunk

這篇具有很好參考價值的文章主要介紹了Python版經(jīng)典小游戲憤怒的小鳥源代碼,基于pygame+pymunk。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Python版經(jīng)典小游戲憤怒的小鳥源代碼,基于pygame+pymunk
程序依賴:pygame2.0.1, pymunk5.5.0
直接運行main.py
完整代碼下載地址:Python版經(jīng)典小游戲憤怒的小鳥源代碼
python游戲代碼下載,Python代碼大全,python,pygame,開發(fā)語言
tool.py

__author__ = 'marble_xu'

import os
import json
from abc import abstractmethod
import pygame as pg
from . import constants as c

class State():
    def __init__(self):
        self.start_time = 0.0
        self.current_time = 0.0
        self.done = False
        self.next = None
        self.persist = {}
    
    @abstractmethod
    def startup(self, current_time, persist):
        '''abstract method'''

    def cleanup(self):
        self.done = False
        return self.persist
    
    @abstractmethod
    def update(sefl, surface, keys, current_time):
        '''abstract method'''

class Control():
    def __init__(self):
        self.screen = pg.display.get_surface()
        self.done = False
        self.clock = pg.time.Clock()
        self.fps = 60
        self.keys = pg.key.get_pressed()
        self.mouse_pos = None
        self.mouse_pressed = False
        self.current_time = 0.0
        self.state_dict = {}
        self.state_name = None
        self.state = None
        self.game_info = {c.CURRENT_TIME:0.0,
                          c.LEVEL_NUM:c.START_LEVEL_NUM,
                          c.SCORE:0}
 
    def setup_states(self, state_dict, start_state):
        self.state_dict = state_dict
        self.state_name = start_state
        self.state = self.state_dict[self.state_name]
        self.state.startup(self.current_time, self.game_info)

    def update(self):
        self.current_time = pg.time.get_ticks()
        if self.state.done:
            self.flip_state()
        self.state.update(self.screen, self.current_time, self.mouse_pos, self.mouse_pressed)
        self.mouse_pos = None

    def flip_state(self):
        previous, self.state_name = self.state_name, self.state.next
        persist = self.state.cleanup()
        self.state = self.state_dict[self.state_name]
        self.state.startup(self.current_time, persist)

    def event_loop(self):
        for event in pg.event.get():
            if event.type == pg.QUIT:
                self.done = True
            elif event.type == pg.KEYDOWN:
                self.keys = pg.key.get_pressed()
            elif event.type == pg.KEYUP:
                self.keys = pg.key.get_pressed()
            elif event.type == pg.MOUSEBUTTONDOWN and event.button == 1:
                self.mouse_pos = pg.mouse.get_pos()
                self.mouse_pressed = True
            elif event.type == pg.MOUSEBUTTONUP and event.button == 1:
                self.mouse_pressed = False

    def main(self):
        while not self.done:
            self.event_loop()
            self.update()
            pg.display.update()
            self.clock.tick(self.fps)
            if c.DEBUG:
                pg.display.set_caption("pos: " + str(pg.mouse.get_pos()))
        print('game over')

def distance(xo, yo, x, y):
    """distance between points"""
    dx = x - xo
    dy = y - yo
    d = ((dx ** 2) + (dy ** 2)) ** 0.5
    return d

def get_image(sheet, x, y, width, height, colorkey, scale):
        image = pg.Surface([width, height])
        rect = image.get_rect()

        image.blit(sheet, (0, 0), (x, y, width, height))
        image.set_colorkey(colorkey)
        image = pg.transform.scale(image,
                                   (int(rect.width*scale),
                                    int(rect.height*scale)))
        return image

def load_all_gfx(directory, colorkey=(255,0,255), accept=('.png', '.jpg', '.bmp', '.gif')):
    graphics = {}
    for pic in os.listdir(directory):
        name, ext = os.path.splitext(pic)
        if ext.lower() in accept:
            img = pg.image.load(os.path.join(directory, pic))
            if img.get_alpha():
                img = img.convert_alpha()
            else:
                img = img.convert()
                img.set_colorkey(colorkey)
            graphics[name] = img
    return graphics

pg.init()
pg.display.set_caption(c.ORIGINAL_CAPTION)
SCREEN = pg.display.set_mode(c.SCREEN_SIZE)

GFX = load_all_gfx(os.path.join("resources","graphics"))

python游戲代碼下載,Python代碼大全,python,pygame,開發(fā)語言
完整代碼下載地址:Python版經(jīng)典小游戲憤怒的小鳥源代碼文章來源地址http://www.zghlxwxcb.cn/news/detail-570067.html

到了這里,關于Python版經(jīng)典小游戲憤怒的小鳥源代碼,基于pygame+pymunk的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • python簡單小游戲代碼100行,python小游戲程序源代碼

    python簡單小游戲代碼100行,python小游戲程序源代碼

    大家好,本文將圍繞python簡單小游戲代碼100行展開說明,python小游戲代碼能用的是一個很多人都想弄明白的事情,想搞清楚python小游戲程序源代碼需要先了解以下幾個事情。 這次用Python實現(xiàn)的是一個接球打磚塊的小游戲,需要導入pygame模塊,有以下兩條經(jīng)驗總結(jié): 1.多父類的

    2024年02月06日
    瀏覽(98)
  • python簡單小游戲代碼200行,用python寫小游戲源代碼

    python簡單小游戲代碼200行,用python寫小游戲源代碼

    大家好,小編來為大家解答以下問題,python簡單小游戲代碼200行,用python寫小游戲源代碼,現(xiàn)在讓我們一起來看看吧! Source code download: 本文相關源碼 大家好,本文將圍繞python簡單小游戲代碼100行展開說明,python小游戲代碼能用的是一個很多人都想弄明白的事情,想搞清楚

    2024年02月21日
    瀏覽(98)
  • Python版基于pygame的瑪麗快跑小游戲源代碼,瑪麗冒險小游戲代碼,支持雙人模式

    Python版基于pygame的瑪麗快跑小游戲源代碼,瑪麗冒險小游戲代碼,支持雙人模式

    基于pygame的瑪麗快跑小游戲源代碼,瑪麗冒險小游戲代碼,支持雙人模式 按空格進入單人模式,按‘t’進入雙人模式,雙人模式下瑪麗1采用空格鍵上跳,瑪麗2采用方向上鍵上跳。 完整代碼下載地址:Python版基于pygame的瑪麗快跑小游戲源代碼 完整代碼下載地址:Python版基于

    2024年02月11日
    瀏覽(93)
  • 【Java實現(xiàn)小游戲】飛翔的小鳥(源碼)

    【Java實現(xiàn)小游戲】飛翔的小鳥(源碼)

    游戲玩法:通過鼠標點擊使小鳥上下移動穿過柱子并完成得分,小鳥碰到柱子或掉落到地面上都會結(jié)束游戲。 (游戲內(nèi)圖片) ? ? 下面是實現(xiàn)這個游戲的代碼: ? ?Brid類: ? ?BridGame類: Column類: Ground類: ? ?

    2024年02月12日
    瀏覽(22)
  • Python制作的賽車小游戲源代碼,逆行飆車

    Python制作的賽車小游戲源代碼,逆行飆車

    python制作的賽車小游戲,逆行飆車,通過鍵盤方向鍵控制 程序運行截圖: 源代碼 完整賽車小游戲下載:賽車小游戲源代碼 Python代碼大全,海量代碼任你下載

    2024年02月12日
    瀏覽(96)
  • java小游戲——飛翔的小鳥(java初學作品)

    注:學習了java基礎后,做出來的一個小作品,可以用來鞏固學習 飛翔的小鳥能夠作為Java基礎的收官之作,包涵了Java很多的基礎知識,在學習完Java基礎后,嘗試編寫一些東西,能夠起到很好的查漏補缺的作用。這里實現(xiàn)了Java小游戲飛翔的小鳥的一些基本功能。另外,隨著學

    2024年02月10日
    瀏覽(22)
  • python項目分享 憤怒的小鳥游戲設計與實現(xiàn) (源碼)

    python項目分享 憤怒的小鳥游戲設計與實現(xiàn) (源碼)

    ?? Hi,各位同學好呀,這里是L學長! ??今天向大家分享一個今年(2022)最新完成的畢業(yè)設計項目作品 憤怒的小鳥游戲設計與實現(xiàn) ?? 學長根據(jù)實現(xiàn)的難度和等級對項目進行評分(最低0分,滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:4分 項目獲?。?https://gitee.com/sinonfin/syst

    2024年02月01日
    瀏覽(26)
  • 基于Python pygame簡易版斗獸棋小游戲源代碼

    基于Python pygame簡易版斗獸棋小游戲源代碼

    基于Python pygame簡易版斗獸棋小游戲源代碼 游戲規(guī)則如下: 勝利條件: 1.吃掉對方全部棋子 2.走入對方獸穴(不可進入自己洞穴) 吃法: 1.象獅虎豹狼狗貓鼠象 2.同類棋子先行者吃掉對方 3.老鼠可以進河,老鼠在河里時,岸上的動物不能捕食他,他也不能捕食岸上的動物 4.獅虎在河中沒

    2023年04月09日
    瀏覽(101)
  • python畢設分享 憤怒的小鳥游戲設計與實現(xiàn) (源碼)

    python畢設分享 憤怒的小鳥游戲設計與實現(xiàn) (源碼)

    ?? Hi,各位同學好呀,這里是L學長! ??今天向大家分享一個今年(2022)最新完成的畢業(yè)設計項目作品 憤怒的小鳥游戲設計與實現(xiàn) ?? 學長根據(jù)實現(xiàn)的難度和等級對項目進行評分(最低0分,滿分5分) 難度系數(shù):3分 工作量:3分 創(chuàng)新點:4分 項目獲?。?https://gitee.com/sinonfin/syst

    2024年02月05日
    瀏覽(21)
  • Python背單詞記單詞小程序源代碼,背單詞記單詞小游戲源代碼

    Python背單詞記單詞小程序源代碼,背單詞記單詞小游戲源代碼

    背單詞小游戲,要有多界面交互,界面整潔、美觀,可調(diào)節(jié)游戲等級難度,可配置游戲信息。 有游戲分數(shù),游戲時間,動畫特效,背景音樂,不同游戲等級的歷史最高分記錄。 拼寫成功的英文單詞顯示中文意思。支持長按回刪鍵[backspace],快速刪除單詞字母。 多種游戲困難

    2024年02月15日
    瀏覽(95)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包