python編程制作接金幣游戲_一個簡單的pygame接金幣游戲

左右鍵控制小人移動去接空中下來的金幣,接住金幣得5分,接不住游戲結束,金幣速度會隨著level的關數

而越來越快

import pygame,sys,os,random

pygame.init()

class rect():#畫出小人

def __init__(self,filename,initial_position):

self.image=pygame.image.load(filename)

self.rect=self.image.get_rect()

self.rect.topleft=initial_position

class goldrect(pygame.sprite.Sprite):#繪出金幣

def __init__(self,gold_position,speed):

pygame.sprite.Sprite.__init__(self)

self.image=pygame.image.load('image\\gold.png')

self.rect=self.image.get_rect()

self.rect.topleft=gold_position

self.speed=speed

def move(self):

self.rect=self.rect.move(self.speed)

def drawback(): #繪出背景圖片

my_back=pygame.image.load('image\\qi3.jpg')

bakscreen.blit(my_back,[0,0])

def loadtext(levelnum,score,highscore):#繪出成績、level、最高分等

my_font=pygame.font.SysFont(None,24)

levelstr='Level:'+str(levelnum)

text_screen=my_font.render(levelstr, True, (255, 0, 0))

bakscreen.blit(text_screen, (650,50))

highscorestr='Higescore:'+str(highscore)

text_screen=my_font.render(highscorestr, True, (255, 0, 0))

bakscreen.blit(text_screen, (650,80))

scorestr='Score:'+str(score)

text_screen=my_font.render(scorestr, True, (255, 0, 0))

bakscreen.blit(text_screen, (650,110))

def loadgameover(scorenum,highscore):#繪出GAME OVER

my_font=pygame.font.SysFont(None,50)

levelstr='GAME OVER'

over_screen=my_font.render(levelstr, True, (255, 0, 0))

bakscreen.blit(over_screen, (300,240))

highscorestr='YOUR SCORE IS '+str(scorenum)

over_screen=my_font.render(highscorestr, True, (255, 0, 0))

bakscreen.blit(over_screen, (280,290))

if scorenum>int(highscore):#寫入最高分

highscorestr='YOUR HAVE GOT THE HIGHEST SCORE!'

text_screen=my_font.render(highscorestr, True, (255, 0, 0))

bakscreen.blit(text_screen, (100,340))

highfile=open('highscore','w')

highfile.writelines(str(scorenum))

highfile.close()

def gethighscore(): #讀取最高分

if os.path.isfile('highscore'):

highfile=open('highscore','r')

highscore=highfile.readline()

highfile.close()

else:

highscore=0

return highscore

bakscreen=pygame.display.set_mode([800,600])

bakscreen.fill([0,160,233])

pygame.display.set_caption('Dig!Dig!')

drawback()

levelnum=1 #level

scorenum=0 #得分

highscore=gethighscore()#最高分

ileft=1 #記錄向左移動步數,用來控制圖片

iright=10 #記錄向右移動步數,用來控制圖片

x=100

y=450

filename='image\\1.png'

backimg_ren=rect(filename,[x,y])

bakscreen.blit(backimg_ren.image,backimg_ren.rect)

loadtext(levelnum,scorenum,highscore)

goldx=random.randint(50,580)

speed=[0,levelnum]

mygold=goldrect([goldx,100],speed)

pygame.display.update()

while True:

if scorenum>0 and scorenum/50.0==int(scorenum/50.0):#當得分是50的倍數時修改level

levelnum=scorenum/50+1

speed=[0,levelnum]

for event in pygame.event.get():

if event.type==pygame.QUIT:

sys.exit()

#make gold

pressed_keys = pygame.key.get_pressed()

if pressed_keys[pygame.K_LEFT]:#按下左鍵

drawback()

loadtext(levelnum,scorenum,highscore)

if iright > 14 :iright=10

iright=iright+1

filename='image\\'+str(iright)+'.png'

if x<50 :

x=50

else:

x=x-10

backimg_surface=rect(filename,[x,y])

bakscreen.blit(backimg_surface.image,backimg_surface.rect)

if pressed_keys[pygame.K_RIGHT]:#按下右鍵

drawback()

loadtext(levelnum,scorenum,highscore)

if ileft > 4 :ileft=0

ileft=ileft+1

filename='image\\'+str(ileft)+'.png'

if x>560:

x=560

else:

x=x+10

backimg_surface=rect(filename,[x,y])

bakscreen.blit(backimg_surface.image,backimg_surface.rect)

drawback()

loadtext(levelnum,scorenum,highscore)

mygold.move()

bakscreen.blit(mygold.image,mygold.rect)

backimg_surface=rect(filename,[x,y])

bakscreen.blit(backimg_surface.image,backimg_surface.rect)

if mygold.rect.top>600:#判斷金幣是否著地,一但著地,游戲結束

loadgameover(scorenum,highscore)

if mygold.rect.colliderect(backimg_surface.rect):#判斷金幣是否與小人碰撞,如果碰撞表示小人接到金幣

scorenum+=5

loadtext(levelnum,scorenum,highscore)

goldx=random.randint(50,580)

mygold=goldrect([goldx,100],speed)

pygame.display.update()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/533580.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/533580.shtml
英文地址,請注明出處:http://en.pswp.cn/news/533580.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php 126怎么設置發送郵箱驗證碼,phpmailer發送網易126郵箱的例子

本文介紹下&#xff0c;使用phpmailer發送網易126.com郵件的例子&#xff0c;有需要的朋友參考下。使用PHPMailer類發郵件的例子&#xff1a;IsSMTP();//郵件服務器$mail->Host "smtp.126.com";$mail->SMTPDebug 0;//使用SMPT驗證$mail->SMTPAuth true;/…

容器中apscheduler不執行_APScheduler:定時任務框架

APScheduler:定時任務框架安裝文檔: https://apscheduler.readthedocs.io/en/stable/userguide.html安裝$ pip install apscheduler>>> import apscheduler>>> apscheduler.version3.6.3組件APScheduler由一下四部分組成triggers:觸發器,指定定時任務執行的時…

nginx php image,[Docker]應該把 nginx 和 PHP 放在一個 image 里還是分開?

因為老板想搞 K8S&#xff0c;但是我連 Docker 都不懂&#xff0c;就覺得還是要學一點點 Docker 的&#xff0c;之前還是看了一點點的&#xff0c;甚至折騰過一個開發環境的方案&#xff0c;但是&#xff0c;很長時間不弄了以后&#xff0c;就全都還回去了。這次我又想自己搭建…

python pep8模塊_讀懂PEP8,讓你的Python代碼更加優雅

PEP8《8 號 Python 增強規范》(Python Enhacement Proposal #8)&#xff0c;簡稱PEP8通俗的來講 PEP8 是針對 python 代碼格式而編訂的風格指南&#xff0c;令代碼更加易讀易懂。像谷歌這樣的大公司是有自己內部的風格規范Google Style&#xff0c;目的就是為了提高開發效率。據…

python數值模擬教程_數值模擬必備random模塊

該模塊實現了各種分布的偽隨機數生成器。可以在區間內抽取一個隨機數&#xff0c;可以在列表中抽取一個元素&#xff0c;可以從分布中抽取樣本 。random模塊不能直接訪問&#xff0c;需要導入 random 模塊&#xff0c;然后通過 random 靜態對象調用該方法。import random1 生成…

php版本哪個沒有面向對象,php面向對象的方法重載兩種版本比較

多個函數用同一個名字&#xff0c;但參數表&#xff0c;即參數的個數或(和)數據類型可以不同&#xff0c;調用的時候&#xff0c;雖然方法名字相同&#xff0c;但根據參數表可以自動調用對應的函數。PHP4 中僅僅實現了面向對象的部分的、簡單的功能&#xff0c;而 PHP5 以后對對…

python實現錄音小程序 界面_小程序如何實現錄音 播放功能

第二步&#xff1a;編輯文件首先在src下創建一個test包并在test包下新建一個類MyRecord具體步驟代碼如下所示&#xff1a;package test;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;import javax.sound.sampled.*;public class MyRecord…

織夢php網站修改教程,織夢DEDEcms織夢軟件模型增加圖集功能教程(含修改文件下載)...

這篇文章主要為大家詳細介紹了織夢DEDEcms織夢軟件模型增加圖集功能教程(含修改文件下載)&#xff0c;具有一定的參考價值&#xff0c;感興趣的小伙伴們可以參考一下,有需要的朋友可以收藏方便以后借鑒。織夢DEDEcms織夢軟件模型增加圖集功能,這是今天361模板要給大家分享的。下…

python自動截圖發送郵件_PhantomJS按尺寸截取頁面,并用python發送郵件

前言&#xff1a;當前有個任務是要把幾個網站的日志返回狀態碼進行匯總&#xff0c;用餅圖展示&#xff0c;并每天發送郵件。一、分析問題畫出餅圖&#xff0c;這個我用kibana給畫出來了&#xff0c;下面不做講解&#xff1b;截取餅圖&#xff0c;因為kibana是用js展示出來的&a…

nikita popov php,PHP中對performance的考慮點

Nikita Popov 在他的演講中談了幾個PHP 程序中和performance相關的point。1.PHP使用shared memory, preload的方式事先分配&#xff0c;而只有在所有的處理結束之后&#xff0c;share memory 才會斷開和所有進程或者thread之間的聯系。光是opcode&#xff0c;FPM的設定還不足以…

python建模仿真 matlab_清華大學出版社-圖書詳情-《仿真建模與MATLAB實用教程》

MATLAB語言是目前世界上最為流行的科學計算語言之一&#xff0c;它的特點是能夠快速地完成諸如矩陣運算、微分、尋優等計算任務。由于它配備了很多應用領域的專業工具箱,諸如金融、信號處理、圖像處理、神經網絡、嵌入式系統、仿真建模等&#xff0c;而且每個工具箱都包含了該應…

java web使用jquery,JAVA_Web_JQuery

簡介&#xff1a;jquery 全稱 javaScript Query.是js的一個框架。本質上仍然是js。特點&#xff1a;支持各種主流的瀏覽器、使用特別簡單、擁有便捷的插件擴展機制和豐富的插件。一、JQuery內部封裝原理介紹&#xff1a;匿名閉包。下面這兩行代碼是jquery包下的已經封裝的代碼&…

python語法學習_Python學習1——語法

Python語法包括了行、縮進、注釋、標識符、保留關鍵字等方面。打印語句&#xff1a;>>> print(hello,world!)hello,world!輸入語句&#xff1a;>>> input(請輸入你的名字&#xff1a;)請輸入你的名字&#xff1a;哈哈#”哈哈”是你自己輸入的名字哈哈 #打印出…

java 兩個頁面傳遞數據,請問Cookie怎么在兩個頁面間傳遞數據?

參考代碼如下&#xff1a;//如果請求的Cookie對象為空if (Request.Cookies["userCookie"] null){//創建一個Cookie對象HttpCookie userCookie new HttpCookie("userCookie");//給對象賦值userCookie.Values["userName"] userInfo.UserName.ToS…

優化matlab作業,現代設計優化算法MATLAB實現

開篇語前陣子做現代設計方法的時候&#xff0c;發現網上很是缺乏這種作業形式的簡易算法實現&#xff0c;所以特地來簡書寫一篇。有兩份&#xff0c;一份是我的(說來慚愧&#xff0c;我的大部分都是在網上找的代碼&#xff0c;然后在自己的電腦上跑一次&#xff0c;跑出來了就行…

怎樣用python畫玫瑰花的簡筆畫_玫瑰花簡筆畫素描作品圖片

玫瑰原產是中國。在古時的漢語&#xff0c;“玫瑰”一詞原意是指紅色美玉。玫瑰花這么漂亮&#xff0c;素描怎么畫得好看呢?你知道玫瑰花的簡筆畫素描是怎樣的嗎?今天先和學習啦小編一起欣賞這些玫瑰花簡筆畫素描圖片&#xff0c;希望你會有所收獲的。玫瑰花簡筆畫素描圖片欣…

多因子選選股MATLAB代碼,金工研報:利用卷積神經網絡進行多因子選股

首先&#xff0c;我們先來看一下通過卷積神經網絡選股模型的整體流程&#xff0c;然后再根據每一步流程進行介紹&#xff0c;具體如下圖所示&#xff1a;1、數據獲取用于歷史回測數據來自所有A股股票&#xff0c;其中剔除了ST股以及上市3個月的股票&#xff0c;另外&#xff0c…

python list tuple 打包 解包_python的打包與解包

python的*與**&#xff0c;在函數的定義與調用過程中&#xff0c;有著不同的作用打包參數&#xff1a;一、函數定義時&#xff0c;形參前加*號(如&#xff1a;*args)&#xff1a;收集實參中所有的位置參數&#xff0c;打包成新元組并將該元組賦值給args變量實參位置參數&#x…

python 成員函數 泛型函數_【一點資訊】白學這么多年 Python?連泛型函數都不會寫? www.yidianzixun.com...

泛型&#xff0c;如果你嘗過java&#xff0c;應該對他不陌生吧。但你可能不知道在 Python 中(3.4 )&#xff0c;也可以實現 簡單的泛型函數。在Python中只能實現基于單個(第一個)參數的數據類型來選擇具體的實現方式&#xff0c;官方名稱 是single-dispatch。你或許聽不懂&…

matlab bad apple,【bad apple】matlab制作矩陣蘋果~

有屏幕的地方就有bad apple那么作為一名工科生&#xff0c;熟練的操♂作馬桶蘿卜(matlab)是一項基本技能下面開始講解如何用matlab制作別具一格的“矩陣蘋果”~實驗環境matlab R2018a原版bad apple視頻技術要求可以即時演算圖形可以將處理后的每幀圖形合并成新的視頻先上代碼%t…