小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

我用pygame實現(xiàn)了垃圾分類小游戲,最終獲得了《校級二等獎》!

 O聽_海_軒O 2020-09-17

 作者:Vincentish

 原文鏈接:http:///5DKdLs

文末獲取本文完整代碼!

本文是作者的一個參賽作品,他當(dāng)時僅僅是一個大一新生,僅自學(xué)Python才一個月,就可以完成如此漂亮的一個案例,我覺得對我們過來人來說是一個鼓勵,我們應(yīng)該有信心能夠堅持學(xué)好某一門編程語言。

基于此,經(jīng)過作者授權(quán)將這個案例分享給大家學(xué)習(xí)參考,希望對大家有幫助。在觀看這篇文章之前,大家可以提前看看這篇文章的效果展示,錄制的視頻如下。

項目簡介

本項目是報名參加了“兗州中材杯”武漢理工大學(xué)第十一屆環(huán)保創(chuàng)意大賽藝術(shù)理念組的比賽。其中組員共三名,本人負責(zé)代碼實現(xiàn)部分,一人負責(zé)項目策劃,另外一人負責(zé)場景人物繪制。

項目背景

小組中負責(zé)策劃的同學(xué),經(jīng)過一定的調(diào)研之后,發(fā)現(xiàn)我校在校生普遍缺乏垃圾分類方面的知識。經(jīng)過討論后,我們決定把游戲方向定位于“垃圾分類”,游戲類型定位于像素風(fēng)游戲。由于本人水平和時間有限,只能將玩法設(shè)計得盡量簡單,感謝另外兩位組員,他們的努力掩蓋了我水平上的不足。

玩法介紹

控制一名角色在操場背景上移動,垃圾桶在操場邊上,撿起垃圾丟進相應(yīng)的垃圾桶內(nèi),若全部正確投放則游戲成功,否則游戲失敗。游戲期間,若有不清楚該作何分類的垃圾,則可以點擊圖書館的按鈕,進入圖書館查詢。圖書館提供垃圾圖鑒和分類標(biāo)準(zhǔn)兩種信息。垃圾圖鑒幫助玩家分辨自己撿到的垃圾,而分類標(biāo)準(zhǔn)指每種垃圾的定義及舉例。

項目成果

本項目在“兗州中材杯”武漢理工大學(xué)第十一屆環(huán)保創(chuàng)意作品大賽藝術(shù)理念組比賽中,最終排名第五,獲得了二等獎的好成績,距離第四名僅差0.5分。

項目實現(xiàn)

寫這個項目時,本人僅自學(xué)了一個月的Python,且是一個大一新生,對計算機科學(xué)的基礎(chǔ)知識了解甚少,若代碼讓你覺得風(fēng)格幼稚、愚蠢,還望讀者見諒。

模塊劃分

游戲按場景分為以下幾個模塊:開始游戲界面、游戲說明界面人物選擇界面、操場界面(主要游戲場地)、圖書館外界面、圖書館內(nèi)界面、游戲結(jié)束界面。

1. 開始游戲界面:背景(像素化的學(xué)校建筑),游戲標(biāo)題,三個按鈕(開始、游戲說明、退出)。
2. 游戲說明界面:背景(與開始界面相同),游戲說明文字,返回按鈕。
3. 人物選擇界面:背景,提示(選擇人物),兩個可選人物。
4. 操場界面:背景,人物,垃圾桶,隨機產(chǎn)生的垃圾,圖書館按鈕。
5. 圖書館外界面:背景(我校圖書館的像素風(fēng)繪制)、操場按鈕(會到操場)、進入按鈕(進入圖書館內(nèi)部)。
6. 圖書館內(nèi)界面:背景(我校圖書館內(nèi)部),各類垃圾圖標(biāo)按鈕(廚余垃圾、可回收垃圾、有害垃圾、其他垃圾),垃圾圖鑒按鈕,返回按鈕。子界面:各類垃圾信息界面,垃圾圖鑒界面,返回按鈕。
7. 游戲結(jié)束界面:勝利界面,失敗界面。

代碼實現(xiàn)

限于文章篇幅,我這里只展示部分代碼,完整代碼可以在文末直接獲取,我相信受到這個文章的啟發(fā),你也能夠?qū)懗龊芎猛鎯旱捻椖縼怼?/span>

import pygame as py
import sys
import random
from pygame.locals import *

#==========================選擇人物=========================

def choose_role():
    background = py.image.load('Files\\choose_player\\background.jpg')
    background = py.transform.smoothscale(background,(1000,650))
    screen.blit(background, (00))
    man = py.image.load('Files\\choose_player\\man.png')
    man = py.transform.smoothscale(man,(123325))
    man_button = screen.blit(man,(200200))
    man_button = Button(man_button)
    woman = py.image.load('Files\\choose_player\\woman.png')
    woman = py.transform.smoothscale(woman,(113325))
    woman_button = screen.blit(woman,(687200))
    woman_button = Button(woman_button)
    py.display.flip()
    while True:
        for event in py.event.get():
            if event.type == QUIT:
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                pos = py.mouse.get_pos()
                if man_button.has(pos):
                    return 'man'
                if woman_button.has(pos):
                    return 'woman'
#========================開始游戲界面========================

def start():
    background = py.image.load('Files\\start\\background.jpg')
    background = py.transform.smoothscale(background,(1000,650))
    screen.blit(background, (00))
    start_game = py.image.load('Files\\start\\start_game.png')
    start_game = py.transform.smoothscale(start_game,(140149))
    start_button = screen.blit(start_game,(150330))
    start_button = Button(start_button)
    game_help = py.image.load('Files\\start\\game_help.png')
    game_help = py.transform.smoothscale(game_help,(280182))
    help_button = screen.blit(game_help,(380320))
    help_button = Button(help_button)
    quit_game = py.image.load('Files\\start\\quit_game.png')
    quit_game = py.transform.smoothscale(quit_game,(200,160))
    quit_button = screen.blit(quit_game,(680330))
    quit_button = Button(quit_button)
    py.display.flip()
    while True:
        for event in py.event.get():
            if event.type == QUIT:
                sys.exit()
            if event.type == MOUSEBUTTONDOWN:
                pos = py.mouse.get_pos()
                if start_button.has(pos):
                    role = choose_role()
                    playground(role)
                    break
                elif help_button.has(pos):
                    help_page()
                    break
                elif quit_button.has(pos):
                    sys.exit()
        break
    start()
start()

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多