可以做宣传的网站有哪些,网站认证收费吗,wordpress改网站地址,ps网页设计怎么做经常听到有朋友说#xff0c;学习编程是一件非常枯燥无味的事情。其实#xff0c;大家有没有认真想过#xff0c;可能是我们的学习方法不对#xff1f;
比方说#xff0c;你有没有想过#xff0c;可以通过打游戏来学编程#xff1f;
今天我想跟大家分享几个Python小游…经常听到有朋友说学习编程是一件非常枯燥无味的事情。其实大家有没有认真想过可能是我们的学习方法不对
比方说你有没有想过可以通过打游戏来学编程
今天我想跟大家分享几个Python小游戏教你如何通过边打游戏边学编程
今天给大家带来15个Py小游戏一定要收藏 飞扬的小鸟 Python简易时钟 Python中国象棋 Python吃豆豆小游戏 Python幸运大转盘 Python简易植物大战僵尸 Python2048小游戏 Python俄罗斯方块 Python 烟花 Python 贪吃蛇 Python 数字游戏 拼图游戏 滑雪小游戏 数独游戏 飞机大战
1.飞扬的小鸟
①游戏介绍
《flappy bird》是一款由来自越南的独立游戏开发者Dong Nguyen所开发的作品游戏于2013年5月24日上线并在2014年2月突然暴红。
游戏规则
游戏玩法非常简单通过点击屏幕使小鸟一直飞并穿过水管的空隙。虽然玩法简单但是却具有一定的难度因为要一直控制小鸟飞在适合的高度以避开障碍。
这篇文章呢就来分析这个游戏的原理以及用python做一个简易版的FlappyBird。
②源码分享 #itbaizhan
import pygame
import sys
import randomclass Bird(object):定义一个鸟类def __init__(self):定义初始化方法self.birdRect pygame.Rect(65, 50, 50, 50) # 鸟的矩形# 定义鸟的3种状态列表self.birdStatus [pygame.image.load(images/0.png),pygame.image.load(images/2.png),pygame.image.load(images/dead.png)]self.status 0 # 默认飞行状态self.birdX 120 # 鸟所在X轴坐标,即是向右飞行的速度self.birdY 350 # 鸟所在Y轴坐标,即上下飞行高度self.jump False # 默认情况小鸟自动降落self.jumpSpeed 10 # 跳跃高度self.gravity 5 # 重力self.dead False # 默认小鸟生命状态为活着def birdUpdate(self):if self.jump:# 小鸟跳跃self.jumpSpeed - 1 # 速度递减上升越来越慢self.birdY - self.jumpSpeed # 鸟Y轴坐标减小小鸟上升else:# 小鸟坠落self.gravity 0.1 # 重力递增下降越来越快self.birdY self.gravity # 鸟Y轴坐标增加小鸟下降self.birdRect[1] self.birdY # 更改Y轴位置class Pipeline(object):定义一个管道类def __init__(self):定义初始化方法self.wallx 400 # 管道所在X轴坐标self.pineUp pygame.image.load(images/top.png)self.pineDown pygame.image.load(images/bottom.png)def updatePipeline(self):管道移动方法self.wallx - 5 # 管道X轴坐标递减即管道向左移动# 当管道运行到一定位置即小鸟飞越管道分数加1并且重置管道if self.wallx -80:global scorescore 1self.wallx 400def createMap():定义创建地图的方法screen.fill((255, 255, 255)) # 填充颜色screen.blit(background, (0, 0)) # 填入到背景# 显示管道screen.blit(Pipeline.pineUp, (Pipeline.wallx, -300)) # 上管道坐标位置screen.blit(Pipeline.pineDown, (Pipeline.wallx, 500)) # 下管道坐标位置Pipeline.updatePipeline() # 管道移动# 显示小鸟if Bird.dead: # 撞管道状态Bird.status 2elif Bird.jump: # 起飞状态Bird.status 1screen.blit(Bird.birdStatus[Bird.status], (Bird.birdX, Bird.birdY)) # 设置小鸟的坐标Bird.birdUpdate() # 鸟移动# 显示分数screen.blit(font.render(Score: str(score), -1, (255, 255, 255)), (100, 50)) # 设置颜色及坐标位置pygame.display.update() # 更新显示def checkDead():# 上方管子的矩形位置upRect pygame.Rect(Pipeline.wallx, -300,Pipeline.pineUp.get_width() - 10,Pipeline.pineUp.get_height())# 下方管子的矩形位置downRect pygame.Rect(Pipeline.wallx, 500,Pipeline.pineDown.get_width() - 10,Pipeline.pineDown.get_height())# 检测小鸟与上下方管子是否碰撞if upRect.colliderect(Bird.birdRect) or downRect.colliderect(Bird.birdRect):Bird.dead True# 检测小鸟是否飞出上下边界if not 0 Bird.birdRect[1] height:Bird.dead Truereturn Trueelse:return Falsedef getResutl():final_text1 Game Overfinal_text2 Your final score is: str(score)ft1_font pygame.font.SysFont(Arial, 70) # 设置第一行文字字体ft1_surf font.render(final_text1, 1, (242, 3, 36)) # 设置第一行文字颜色ft2_font pygame.font.SysFont(Arial, 50) # 设置第二行文字字体ft2_surf font.render(final_text2, 1, (253, 177, 6)) # 设置第二行文字颜色screen.blit(ft1_surf, [screen.get_width() / 2 - ft1_surf.get_width() / 2, 100]) # 设置第一行文字显示位置screen.blit(ft2_surf, [screen.get_width() / 2 - ft2_surf.get_width() / 2, 200]) # 设置第二行文字显示位置pygame.display.flip() # 更新整个待显示的Surface对象到屏幕上if __name__ __main__:主程序pygame.init() # 初始化pygamepygame.font.init() # 初始化字体font pygame.font.SysFont(ziti.ttf, 50) # 设置字体和大小size width, height 400, 650 # 设置窗口screen pygame.display.set_mode(size) # 显示窗口clock pygame.time.Clock() # 设置时钟Pipeline Pipeline() # 实例化管道类Bird Bird() # 实例化鸟类score 0while True:clock.tick(30) # 每秒执行30次# 轮询事件for event in pygame.event.get():if event.type pygame.QUIT:sys.exit()if (event.type pygame.KEYDOWN or event.type pygame.MOUSEBUTTONDOWN) and not Bird.dead:Bird.jump True # 跳跃Bird.gravity 5 # 重力Bird.jumpSpeed 5 # 跳跃速度,可以自己设置控制速度background pygame.image.load(images/background.png) # 加载背景图片if checkDead(): # 检测小鸟生命状态getResutl() # 如果小鸟死亡显示游戏总分数else:createMap() # 创建地图pygame.quit()2.Python简易时钟
源码分享 itbaizhanimport turtle
import datetime悬空移动
def move(distance):turtle.penup()turtle.forward(distance)turtle.pendown()创建表针turtle
def createHand(name, length):turtle.reset()move(-length * 0.01)turtle.begin_poly()turtle.forward(length * 1.01)turtle.end_poly()hand turtle.get_poly()turtle.register_shape(name, hand)创建时钟
def createClock(radius):turtle.reset()turtle.pensize(7)for i in range(60):move(radius)if i % 5 0:turtle.forward(20)move(-radius-20)else:turtle.dot(5)move(-radius)turtle.right(6)获得今天是星期几
def getWeekday(today):return [星期一, 星期二, 星期三, 星期四, 星期五, 星期六, 星期日][today.weekday()]获得今天的日期
def getDate(today):return %s年%s月%s日 % (today.year, today.month, today.day)动态显示表针
def startTick(second_hand, minute_hand, hour_hand, printer):today datetime.datetime.today()second today.second today.microsecond * 1e-6minute today.minute second / 60.hour (today.hour minute / 60) % 12# 设置朝向second_hand.setheading(6 * second)minute_hand.setheading(6 * minute)hour_hand.setheading(12 * hour)turtle.tracer(False)printer.forward(65)printer.write(getWeekday(today), aligncenter, font(Courier, 14, bold))printer.forward(120)printer.write(12, aligncenter, font(Courier, 14, bold))printer.back(250)printer.write(getDate(today), aligncenter, font(Courier, 14, bold))printer.back(145)printer.write(6, aligncenter, font(Courier, 14, bold))printer.home()printer.right(92.5)printer.forward(200)printer.write(3, aligncenter, font(Courier, 14, bold))printer.left(2.5)printer.back(400)printer.write(9, aligncenter, font(Courier, 14, bold))printer.home()turtle.tracer(True)# 100ms调用一次turtle.ontimer(lambda: startTick(second_hand, minute_hand, hour_hand, printer), 100)开始运行时钟
def start():# 不显示绘制时钟的过程turtle.tracer(False)turtle.mode(logo)createHand(second_hand, 150)createHand(minute_hand, 125)createHand(hour_hand, 85)# 秒, 分, 时second_hand turtle.Turtle()second_hand.shape(second_hand)minute_hand turtle.Turtle()minute_hand.shape(minute_hand)hour_hand turtle.Turtle()hour_hand.shape(hour_hand)for hand in [second_hand, minute_hand, hour_hand]:hand.shapesize(1, 1, 3)hand.speed(0)# 用于打印日期等文字printer turtle.Turtle()printer.hideturtle()printer.penup()createClock(160)# 开始显示轨迹turtle.tracer(True)startTick(second_hand, minute_hand, hour_hand, printer)turtle.mainloop()if __name__ __main__:start()3.Python中国象棋
源码分享部分源码 #itbaizhan
import pygame
import time
import constants
from button import Button
import piecesimport computerclass MainGame():window NoneStart_X constants.Start_XStart_Y constants.Start_YLine_Span constants.Line_SpanMax_X Start_X 8 * Line_SpanMax_Y Start_Y 9 * Line_Spanplayer1Color constants.player1Colorplayer2Color constants.player2ColorPutdownflag player1ColorpiecesSelected Nonebutton_go NonepiecesList []def start_game(self):MainGame.window pygame.display.set_mode([constants.SCREEN_WIDTH, constants.SCREEN_HEIGHT])pygame.display.set_caption(天青-中国象棋)MainGame.button_go Button(MainGame.window, 重新开始, constants.SCREEN_WIDTH - 100, 300) # 创建开始按钮self.piecesInit()while True:time.sleep(0.1)# 获取事件MainGame.window.fill(constants.BG_COLOR)self.drawChessboard()#MainGame.button_go.draw_button()self.piecesDisplay()self.VictoryOrDefeat()self.Computerplay()self.getEvent()pygame.display.update()pygame.display.flip()def drawChessboard(self):mid_end_y MainGame.Start_Y 4 * MainGame.Line_Spanmin_start_y MainGame.Start_Y 5 * MainGame.Line_Spanfor i in range(0, 9):x MainGame.Start_X i * MainGame.Line_Spanif i0 or i 8:y MainGame.Start_Y i * MainGame.Line_Spanpygame.draw.line(MainGame.window, constants.BLACK, [x, MainGame.Start_Y], [x, MainGame.Max_Y], 1)else:pygame.draw.line(MainGame.window, constants.BLACK, [x, MainGame.Start_Y], [x, mid_end_y], 1)pygame.draw.line(MainGame.window, constants.BLACK, [x, min_start_y], [x, MainGame.Max_Y], 1)for i in range(0, 10):x MainGame.Start_X i * MainGame.Line_Spany MainGame.Start_Y i * MainGame.Line_Spanpygame.draw.line(MainGame.window, constants.BLACK, [MainGame.Start_X, y], [MainGame.Max_X, y], 1)speed_dial_start_x MainGame.Start_X 3 * MainGame.Line_Spanspeed_dial_end_x MainGame.Start_X 5 * MainGame.Line_Spanspeed_dial_y1 MainGame.Start_Y 0 * MainGame.Line_Spanspeed_dial_y2 MainGame.Start_Y 2 * MainGame.Line_Spanspeed_dial_y3 MainGame.Start_Y 7 * MainGame.Line_Spanspeed_dial_y4 MainGame.Start_Y 9 * MainGame.Line_Spanpygame.draw.line(MainGame.window, constants.BLACK, [speed_dial_start_x, speed_dial_y1], [speed_dial_end_x, speed_dial_y2], 1)pygame.draw.line(MainGame.window, constants.BLACK, [speed_dial_start_x, speed_dial_y2],[speed_dial_end_x, speed_dial_y1], 1)pygame.draw.line(MainGame.window, constants.BLACK, [speed_dial_start_x, speed_dial_y3],[speed_dial_end_x, speed_dial_y4], 1)pygame.draw.line(MainGame.window, constants.BLACK, [speed_dial_start_x, speed_dial_y4],[speed_dial_end_x, speed_dial_y3], 1)def piecesInit(self):MainGame.piecesList.append(pieces.Rooks(MainGame.player2Color, 0,0))MainGame.piecesList.append(pieces.Rooks(MainGame.player2Color, 8, 0))MainGame.piecesList.append(pieces.Elephants(MainGame.player2Color, 2, 0))MainGame.piecesList.append(pieces.Elephants(MainGame.player2Color, 6, 0))MainGame.piecesList.append(pieces.King(MainGame.player2Color, 4, 0))MainGame.piecesList.append(pieces.Knighs(MainGame.player2Color, 1, 0))MainGame.piecesList.append(pieces.Knighs(MainGame.player2Color, 7, 0))MainGame.piecesList.append(pieces.Cannons(MainGame.player2Color, 1, 2))MainGame.piecesList.append(pieces.Cannons(MainGame.player2Color, 7, 2))MainGame.piecesList.append(pieces.Mandarins(MainGame.player2Color, 3, 0))MainGame.piecesList.append(pieces.Mandarins(MainGame.player2Color, 5, 0))MainGame.piecesList.append(pieces.Pawns(MainGame.player2Color, 0, 3))MainGame.piecesList.append(pieces.Pawns(MainGame.player2Color, 2, 3))MainGame.piecesList.append(pieces.Pawns(MainGame.player2Color, 4, 3))MainGame.piecesList.append(pieces.Pawns(MainGame.player2Color, 6, 3))MainGame.piecesList.append(pieces.Pawns(MainGame.player2Color, 8, 3))MainGame.piecesList.append(pieces.Rooks(MainGame.player1Color, 0, 9))MainGame.piecesList.append(pieces.Rooks(MainGame.player1Color, 8, 9))MainGame.piecesList.append(pieces.Elephants(MainGame.player1Color, 2, 9))MainGame.piecesList.append(pieces.Elephants(MainGame.player1Color, 6, 9))MainGame.piecesList.append(pieces.King(MainGame.player1Color, 4, 9))MainGame.piecesList.append(pieces.Knighs(MainGame.player1Color, 1, 9))MainGame.piecesList.append(pieces.Knighs(MainGame.player1Color, 7, 9))MainGame.piecesList.append(pieces.Cannons(MainGame.player1Color, 1, 7))MainGame.piecesList.append(pieces.Cannons(MainGame.player1Color, 7, 7))MainGame.piecesList.append(pieces.Mandarins(MainGame.player1Color, 3, 9))MainGame.piecesList.append(pieces.Mandarins(MainGame.player1Color, 5, 9))MainGame.piecesList.append(pieces.Pawns(MainGame.player1Color, 0, 6))MainGame.piecesList.append(pieces.Pawns(MainGame.player1Color, 2, 6))MainGame.piecesList.append(pieces.Pawns(MainGame.player1Color, 4, 6))MainGame.piecesList.append(pieces.Pawns(MainGame.player1Color, 6, 6))MainGame.piecesList.append(pieces.Pawns(MainGame.player1Color, 8, 6))def piecesDisplay(self):for item in MainGame.piecesList:item.displaypieces(MainGame.window)#MainGame.window.blit(item.image, item.rect)def getEvent(self):# 获取所有的事件eventList pygame.event.get()for event in eventList:if event.type pygame.QUIT:self.endGame()elif event.type pygame.MOUSEBUTTONDOWN:pos pygame.mouse.get_pos()mouse_x pos[0]mouse_y pos[1]if (mouse_x MainGame.Start_X - MainGame.Line_Span / 2 and mouse_x MainGame.Max_X MainGame.Line_Span / 2) and (mouse_y MainGame.Start_Y - MainGame.Line_Span / 2 and mouse_y MainGame.Max_Y MainGame.Line_Span / 2):# print( str(mouse_x) str(mouse_y))# print(str(MainGame.Putdownflag))if MainGame.Putdownflag ! MainGame.player1Color:returnclick_x round((mouse_x - MainGame.Start_X) / MainGame.Line_Span)click_y round((mouse_y - MainGame.Start_Y) / MainGame.Line_Span)click_mod_x (mouse_x - MainGame.Start_X) % MainGame.Line_Spanclick_mod_y (mouse_y - MainGame.Start_Y) % MainGame.Line_Spanif abs(click_mod_x - MainGame.Line_Span / 2) 5 and abs(click_mod_y - MainGame.Line_Span / 2) 5:# print(有效点xstr(click_x) ystr(click_y))# 有效点击点self.PutdownPieces(MainGame.player1Color, click_x, click_y)else:print(out)if MainGame.button_go.is_click():#self.restart()print(button_go click)else:print(button_go click out)def PutdownPieces(self, t, x, y):selectfilterlist(filter(lambda cm: cm.x x and cm.y y and cm.player MainGame.player1Color,MainGame.piecesList))if len(selectfilter):MainGame.piecesSelected selectfilter[0]returnif MainGame.piecesSelected :#print(1111)arr pieces.listPiecestoArr(MainGame.piecesList)if MainGame.piecesSelected.canmove(arr, x, y):self.PiecesMove(MainGame.piecesSelected, x, y)MainGame.Putdownflag MainGame.player2Colorelse:fi filter(lambda p: p.x x and p.y y, MainGame.piecesList)listfi list(fi)if len(listfi) ! 0:MainGame.piecesSelected listfi[0]def PiecesMove(self,pieces, x , y):for item in MainGame.piecesList:if item.x x and item.y y:MainGame.piecesList.remove(item)pieces.x xpieces.y yprint(move to str(x) str(y))return Truedef Computerplay(self):if MainGame.Putdownflag MainGame.player2Color:print(轮到电脑了)computermove computer.getPlayInfo(MainGame.piecesList)#if computerNone:#returnpiecemove Nonefor item in MainGame.piecesList:if item.x computermove[0] and item.y computermove[1]:piecemove itemself.PiecesMove(piecemove, computermove[2], computermove[3])MainGame.Putdownflag MainGame.player1Color#判断游戏胜利def VictoryOrDefeat(self):txt result [MainGame.player1Color,MainGame.player2Color]for item in MainGame.piecesList:if type(item) pieces.King:if item.player MainGame.player1Color:result.remove(MainGame.player1Color)if item.player MainGame.player2Color:result.remove(MainGame.player2Color)if len(result)0:returnif result[0] MainGame.player1Color :txt 失败else:txt 胜利MainGame.window.blit(self.getTextSuface(%s % txt), (constants.SCREEN_WIDTH - 100, 200))MainGame.Putdownflag constants.overColordef getTextSuface(self, text):pygame.font.init()# print(pygame.font.get_fonts())font pygame.font.SysFont(kaiti, 18)txt font.render(text, True, constants.TEXT_COLOR)return txtdef endGame(self):print(exit)exit()if __name__ __main__:MainGame().start_game()4.Python吃豆豆小游戏
源码分享部分源码 itbaizhanimport os
import sys
import pygame
import Levels定义一些必要的参数
BLACK (0, 0, 0)
WHITE (255, 255, 255)
BLUE (0, 0, 255)
GREEN (0, 255, 0)
RED (255, 0, 0)
YELLOW (255, 255, 0)
PURPLE (255, 0, 255)
SKYBLUE (0, 191, 255)
BGMPATH os.path.join(os.getcwd(), resources/sounds/bg.mp3)
ICONPATH os.path.join(os.getcwd(), resources/images/icon.png)
FONTPATH os.path.join(os.getcwd(), resources/font/ALGER.TTF)
HEROPATH os.path.join(os.getcwd(), resources/images/pacman.png)
BlinkyPATH os.path.join(os.getcwd(), resources/images/Blinky.png)
ClydePATH os.path.join(os.getcwd(), resources/images/Clyde.png)
InkyPATH os.path.join(os.getcwd(), resources/images/Inky.png)
PinkyPATH os.path.join(os.getcwd(), resources/images/Pinky.png)开始某一关游戏
def startLevelGame(level, screen, font):clock pygame.time.Clock()SCORE 0wall_sprites level.setupWalls(SKYBLUE)gate_sprites level.setupGate(WHITE)hero_sprites, ghost_sprites level.setupPlayers(HEROPATH, [BlinkyPATH, ClydePATH, InkyPATH, PinkyPATH])food_sprites level.setupFood(YELLOW, WHITE)is_clearance Falsewhile True:for event in pygame.event.get():if event.type pygame.QUIT:sys.exit(-1)pygame.quit()if event.type pygame.KEYDOWN:if event.key pygame.K_LEFT:for hero in hero_sprites:hero.changeSpeed([-1, 0])hero.is_move Trueelif event.key pygame.K_RIGHT:for hero in hero_sprites:hero.changeSpeed([1, 0])hero.is_move Trueelif event.key pygame.K_UP:for hero in hero_sprites:hero.changeSpeed([0, -1])hero.is_move Trueelif event.key pygame.K_DOWN:for hero in hero_sprites:hero.changeSpeed([0, 1])hero.is_move Trueif event.type pygame.KEYUP:if (event.key pygame.K_LEFT) or (event.key pygame.K_RIGHT) or (event.key pygame.K_UP) or (event.key pygame.K_DOWN):hero.is_move Falsescreen.fill(BLACK)for hero in hero_sprites:hero.update(wall_sprites, gate_sprites)hero_sprites.draw(screen)for hero in hero_sprites:food_eaten pygame.sprite.spritecollide(hero, food_sprites, True)SCORE len(food_eaten)wall_sprites.draw(screen)gate_sprites.draw(screen)food_sprites.draw(screen)for ghost in ghost_sprites:# 幽灵随机运动()res ghost.update(wall_sprites, None)while not res:ghost.changeSpeed(ghost.randomDirection())res ghost.update(wall_sprites, None)# 指定幽灵运动路径if ghost.tracks_loc[1] ghost.tracks[ghost.tracks_loc[0]][2]:ghost.changeSpeed(ghost.tracks[ghost.tracks_loc[0]][0: 2])ghost.tracks_loc[1] 1else:if ghost.tracks_loc[0] len(ghost.tracks) - 1:ghost.tracks_loc[0] 1elif ghost.role_name Clyde:ghost.tracks_loc[0] 2else:ghost.tracks_loc[0] 0ghost.changeSpeed(ghost.tracks[ghost.tracks_loc[0]][0: 2])ghost.tracks_loc[1] 0if ghost.tracks_loc[1] ghost.tracks[ghost.tracks_loc[0]][2]:ghost.changeSpeed(ghost.tracks[ghost.tracks_loc[0]][0: 2])else:if ghost.tracks_loc[0] len(ghost.tracks) - 1:loc0 ghost.tracks_loc[0] 1elif ghost.role_name Clyde:loc0 2else:loc0 0ghost.changeSpeed(ghost.tracks[loc0][0: 2])ghost.update(wall_sprites, None)ghost_sprites.draw(screen)score_text font.render(Score: %s % SCORE, True, RED)screen.blit(score_text, [10, 10])if len(food_sprites) 0:is_clearance Truebreakif pygame.sprite.groupcollide(hero_sprites, ghost_sprites, False, False):is_clearance Falsebreakpygame.display.flip()clock.tick(10)return is_clearance显示文字
def showText(screen, font, is_clearance, flagFalse):clock pygame.time.Clock()msg Game Over! if not is_clearance else Congratulations, you won!positions [[235, 233], [65, 303], [170, 333]] if not is_clearance else [[145, 233], [65, 303], [170, 333]]surface pygame.Surface((400, 200))surface.set_alpha(10)surface.fill((128, 128, 128))screen.blit(surface, (100, 200))texts [font.render(msg, True, WHITE),font.render(Press ENTER to continue or play again., True, WHITE),font.render(Press ESCAPE to quit., True, WHITE)]while True:for event in pygame.event.get():if event.type pygame.QUIT:sys.exit()pygame.quit()if event.type pygame.KEYDOWN:if event.key pygame.K_RETURN:if is_clearance:if not flag:returnelse:main(initialize())else:main(initialize())elif event.key pygame.K_ESCAPE:sys.exit()pygame.quit()for idx, (text, position) in enumerate(zip(texts, positions)):screen.blit(text, position)pygame.display.flip()clock.tick(10)初始化
def initialize():pygame.init()icon_image pygame.image.load(ICONPATH)pygame.display.set_icon(icon_image)screen pygame.display.set_mode([606, 606])pygame.display.set_caption(吃豆人)return screen主函数
def main(screen):pygame.mixer.init()pygame.mixer.music.load(BGMPATH)pygame.mixer.music.play(-1, 0.0)pygame.font.init()font_small pygame.font.Font(FONTPATH, 18)font_big pygame.font.Font(FONTPATH, 24)for num_level in range(1, Levels.NUMLEVELS1):if num_level 1:level Levels.Level1()is_clearance startLevelGame(level, screen, font_small)if num_level Levels.NUMLEVELS:showText(screen, font_big, is_clearance, True)else:showText(screen, font_big, is_clearance)test
if __name__ __main__:main(initialize())5.Python幸运大转盘
源码分享部分源码 #itbaizhan
import pygame,sys
import math
import randompygame.init() # 初始化pygame类
screen pygame.display.set_mode((600, 600)) # 设置窗口大小
pygame.display.set_caption(幸运大转盘) # 设置窗口标题
tick pygame.time.Clock()
fps 10 # 设置刷新率数字越大刷新率越高
picture pygame.transform.scale(pygame.image.load(./幸运大转盘.png), (600, 600))
bgpicture.convert()
picture pygame.transform.scale(pygame.image.load(./1.png), (30, 230))
hand picture.convert_alpha()rewardDict {first level: (0, 0.03),second level: (0.03, 0.2),third level: (0.2, 1)
}
def rewardFun():用户的得奖等级# 生成一个01之间的随机数number random.random()# 判断随机转盘是几等奖for k, v in rewardDict.items():if v[0] number v[1]:return kdef start():while True:for event in pygame.event.get():# 处理退出事件if event.type pygame.QUIT:pygame.quit()sys.exit()elif event.type pygame.KEYDOWN:if (event.key pygame.K_ESCAPE):pygame.quit()sys.exit()else:returnscreen.blit(bg,(0,0))newRect hand.get_rect(center(300,150))screen.blit(hand,newRect)pygame.draw.circle(screen,(255,255,0),(300,300),50)textFont pygame.font.Font(./font.ttf, 80)textSurface textFont.render(go, True, (110, 55, 155))screen.blit(textSurface, (270, 230))pygame.display.update()def middle():angle 0while True:posx 300 int(150 * math.sin(angle * math.pi / 180))posy 300 - int(150 * math.cos(angle * math.pi / 180))print(posx, posy, math.sin(angle * math.pi / 180))for event in pygame.event.get():if event.type pygame.QUIT:sys.exit()screen.blit(bg,(0,0))newhand pygame.transform.rotate(hand, -angle)newRect newhand.get_rect(center(posx,posy))screen.blit(newhand,newRect)pygame.draw.circle(screen,(255,255,0),(300,300),50)angle 10if angle 500:k rewardFun()end(k)breaktick.tick(fps)pygame.display.flip() # 刷新窗口def end(k):textFont pygame.font.Font(./font.ttf, 50)print(恭喜你你抽中了k)textSurface textFont.render(your awards is %s % k, True, (110, 55, 155))screen.fill((155, 155, 0))screen.blit(textSurface, (30, 230))if __name__ __main__:start()middle()由于文章篇幅有限文档资料内容较多需要这些文档的朋友可以加小助手微信免费获取【保证100%免费】中国人不骗中国人。 扫码立即免费领取
其他实战案例 光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。