怎么制作网站准考证在网上打印,wordpress网站数据库存在哪里,网站开发的步骤过程,阿里巴巴国际站怎么运营由于代码量大#xff0c;会逐渐发布
一.pycharm学习
在PyCharm中使用Pygame插入音乐和图片时#xff0c;有以下这些注意事项#xff1a; 插入音乐#xff1a; - 文件格式支持#xff1a;Pygame常用的音乐格式如MP3、OGG等#xff0c;但MP3可能需额外安装库#xf… 由于代码量大会逐渐发布
一.pycharm学习
在PyCharm中使用Pygame插入音乐和图片时有以下这些注意事项 插入音乐 - 文件格式支持Pygame常用的音乐格式如MP3、OGG等但MP3可能需额外安装库如pymedia等才能更好支持OGG格式兼容性相对较好建议优先选用OGG格式音乐文件以减少潜在问题。 - 路径问题要确保音乐文件的路径设置正确。在代码中指定音乐文件路径时要么是绝对路径完整的文件存储位置路径但这样可能在项目移植时出现路径不对的情况要么是相对路径一般是相对于当前Python脚本文件的位置比如音乐文件放在和脚本同一文件夹下直接写文件名就行若在子文件夹要写清楚相对的子文件夹路径。 - 初始化 mixer在播放音乐前需要先初始化Pygame的mixer模块例如 pygame.mixer.init() 否则无法正常播放音乐。 - 音乐加载与播放先使用 pygame.mixer.music.load(音乐文件名) 加载音乐文件然后再用 pygame.mixer.music.play() 播放音乐。播放时可设置循环次数等参数比如 pygame.mixer.music.play(-1) 表示无限循环播放。 插入图片 - 图片格式支持常见的如JPEG、PNG等格式一般都支持但同样要注意不同格式在某些情况下可能有兼容性差异PNG格式带透明通道等特性使用较灵活可优先考虑。 - 路径问题和音乐文件一样要保证图片文件路径正确注意是绝对路径还是相对路径的设置。 - 初始化显示要先初始化Pygame的显示模块比如 pygame.init() 通常在程序开头部分完成初始化操作后续才能正常加载和显示图片。 - 加载与显示使用 image pygame.image.load(图片文件名) 加载图片然后通过 screen.blit(image, (x坐标, y坐标)) 将图片绘制到指定的显示屏幕 screen 是初始化显示后创建的屏幕对象坐标指定图片显示的位置最后别忘用 pygame.display.flip() 更新显示让图片真正显示出来。
基础快速了解直接去pycharm操作可实现
import pygame
pygame.display.set_mode()#初始化一个准备的界面
pygame.display.get_surface()#获取当前的surface对象
pygame.display.flip()#更新整个待显示的surface对象
pygame.display.update(rectangleNone)#更新部分内容显示到屏幕上如果没有参数则与flip()功能相同# 1. 第一个窗口的实现
# import pygame# pygame.init() # 初始化pygame
# screen pygame.display.set_mode() # 初始化一个准备的界面
# 上例的缺点窗口闪一下就没有了不能持久工作
# 窗口最大化工作遮盖了任务栏影响其他操作进行优化2. # 窗口持久化import pygame
import sys
pygame.init() # 初始化pygame
sizewidth,height960,640
screen pygame.display.set_mode(size)while True:for event in pygame.event.get(): #遍历所有事件if event.typepygame.QUIT: #如果单击关闭窗口则退出sys.exit() # 执行退出操作# 加continue
# 缺点一直进行# 3.增加图片
import pygame
import sys
pygame.init() # 初始化pygame
sizewidth,height960,640
screen pygame.display.set_mode(size)
color(0,0,0) # 设置背景颜色
plane_image pygame.image.load(plane.png)#加载图片
plane_rect plane_image.get_rect()#获取该图片显示的矩形区域while True:for event in pygame.event.get(): #遍历所有事件if event.typepygame.QUIT: #如果单击关闭窗口则退出sys.exit() # 执行退出操作screen.fill(color) #填充颜色screen.blit(plane_image, plane_rect) #将图片化到窗口上去pygame.display.flip() #更新显示pygame.quit()
# 4.移动图片import pygame
import sys,time
pygame.init() # 初始化pygame
sizewidth,height960,640
screen pygame.display.set_mode(size)
color(0,0,0) # 设置背景颜色
plane_image pygame.image.load(plane.png)#加载图片
plane_rect plane_image.get_rect()#获取该图片显示的矩形区域
speed[5,5] #默认是偏移量while True:for event in pygame.event.get(): #遍历所有事件if event.typepygame.QUIT: #如果单击关闭窗口则退出sys.exit() # 执行退出操作plane_rectplane_rect.move(speed) #控制飞机移动screen.fill(color) #填充颜色screen.blit(plane_image, plane_rect) #将图片化到窗口上去pygame.display.flip() #更新显示time.sleep(0.1)pygame.quit()# 5.触碰反弹
import pygame
import sys,timepygame.init() # 初始化pygame
size width, height 960, 640
screen pygame.display.set_mode(size)
color (0, 0, 0) # 设置背景颜色
plane_image pygame.image.load(plane.png) # 加载图片
plane_rect plane_image.get_rect() # 获取该图片显示的矩形区域
speed [5, 5] # 默认是偏移量
i -1while True:for event in pygame.event.get(): # 遍历所有事件if event.type pygame.QUIT: # 如果单击关闭窗口则退出sys.exit() # 执行退出操作plane_rect plane_rect.move(speed) # 控制飞机移动# 默认矩形框左上角0,0if plane_rect.left 0 or plane_rect.right width:speed[0] speed[0] * i # x轴if plane_rect.top 0 or plane_rect.bottom height:speed[1] speed[1] * i # y轴screen.fill(color) # 填充颜色screen.blit(plane_image, plane_rect) # 将图片化到窗口上去pygame.display.flip() # 更新显示time.sleep(0.1)pygame.quit()
#6.音乐模块 不支持num格式音乐MP3OGG,WAV支持
import pygame
import syspygame.init() # 初始化pygame
pygame.mixer.init()
pygame.mixer.music.load(rD:\41期\pygame模块\有何不可.MP3)
pygame.mixer.music.play(5) #播放6次
pygame.mixer.music.queue(rD:\41期\pygame模块\有何不可.MP3)
#要持续化
while True:for event in pygame.event.get(): # 遍历所有事件if event.type pygame.QUIT: # 如果单击关闭窗口则退出sys.exit() # 执行退出操作 二.贪吃蛇实战 可以终端看方块的坐标移动 移动 代码1 #此串代码实现按键控制方块像贪吃蛇一样移动
import pygame
import syspygame.init() # 初始化pygame
size width, height 960, 640 # 窗口大小
screen pygame.display.set_mode(size)
color (0, 66, 0) # 设置背景颜色
square_color 33, 255, 33 # 小方块颜色
square_x, square_y 0, 0 # 小方块坐标
square_size 20 # 小方块大小
game_speed120
speed0.05 # 方块速度
square_speed_x,square_speed_yspeed,0
clock pygame.time.Clock()
while True:for event in pygame.event.get(): # 遍历所有事件if event.type pygame.QUIT: # 如果单击关闭窗口则退出sys.exit() # 执行退出操作# elif event.type pygame.KEYDOWN:# if event.key pygame.K_UP:# square_y -5# elif event.key pygame.K_DOWN:# square_y 5# elif event.key pygame.K_LEFT:# square_x 5# elif event.key pygame.K_RIGHT:# square_x 5# 以上按键对应各方向移动要实现x,y轴像贪吃蛇一样移动下面代码elif event.type pygame.KEYDOWN:if event.key pygame.K_UP:square_speed_x 0square_speed_y -speedelif event.key pygame.K_DOWN:square_speed_x 0square_speed_y speedelif event.key pygame.K_LEFT:square_speed_y 0square_speed_x -speedelif event.key pygame.K_RIGHT:square_speed_y 0square_speed_x speedsquare_ysquare_speed_ysquare_xsquare_speed_x# 防止小方块移出左右边界if square_x0:square_x0elif square_xwidth-square_size:square_xwidth-square_size# 防止小方块移出上下边界if square_y 0:square_y 0elif square_y height - square_size:square_y height - square_size# 终端看坐标print(square_x,square_y,square_speed_x,square_speed_y)screen.fill(color) # 填充颜色pygame.draw.rect(screen, square_color, (square_x, square_y, square_size, square_size))pygame.display.flip() # 更新显示pygame.quit()代码2
上述代码用x,y坐标实现方块移动代码较为冗长复杂下面代码同样可以实现上述效果
import pygame
import sys
import randompygame.init() # 初始化pygame
clock pygame.time.Clock()
size width, height 960, 640 # 窗口大小
screen pygame.display.set_mode(size)
game_speed120
color (33,66,33) # 设置背景颜色
square_color 33, 255, 33 # 小方块颜色# square_x, square_y 0, 0 # 小方块坐标
# speed0.05 # 方块速度
# square_speed_x,square_speed_yspeed,0
# square_size 20 # 小方块大小
CELL_SIZE20
square_rectpygame.Rect(0,0,CELL_SIZE,CELL_SIZE)
UP,DOWN,LEFT,RIGHT(0,-1),(0,1),(-1,0),(1,0)
square_directionRIGHT # 定义一个初始方向
while True:for event in pygame.event.get(): # 遍历所有事件if event.type pygame.QUIT: # 如果单击关闭窗口则退出sys.exit() # 执行退出操作# elif event.type pygame.KEYDOWN:# if event.key pygame.K_UP:# square_y -5# elif event.key pygame.K_DOWN:# square_y 5# elif event.key pygame.K_LEFT:# square_x 5# elif event.key pygame.K_RIGHT:# square_x 5# 以上按键对应各方向移动要实现x,y轴像贪吃蛇一样移动下面代码elif event.type pygame.KEYDOWN:if event.key pygame.K_UP:square_directionUPelif event.key pygame.K_DOWN:square_direction DOWNelif event.key pygame.K_LEFT:square_direction LEFTelif event.key pygame.K_RIGHT:square_direction RIGHTsquare_rectsquare_rect.move(square_direction)# 防止小方块移出左右边界if square_rect.left0:square_rect.left0elif square_rect.rightwidth:square_rect.rightwidthif square_rect.top0:square_rect.top0elif square_rect.bottomheight:square_rect.bottomheight# 终端看坐标print(square_rect.x, square_rect.y, square_direction[0],square_direction[1])screen.fill(color) # 填充颜色pygame.draw.rect(screen, square_color,square_rect)pygame.display.flip() # 更新显示clock.tick(game_speed)
pygame.quit()代码3
在上述代码基础上增加方块的丰富性及背景的网格线并修改代码提高效率
背景颜色改为黑色方块内有一个小黑方块screen.fill(square_color2, square_rect.inflate(-4,-4)) # 可以放大或缩小图形 来实现 import pygame
import sys
import randompygame.init() # 初始化pygame
clock pygame.time.Clock()
size width, height 960, 640 # 窗口大小
screen pygame.display.set_mode(size)
game_speed120
color 0,0,0 # 设置背景颜色
color233,33,33
square_color 33, 255, 33 # 小方块颜色
square_color2 0,0,0# square_x, square_y 0, 0 # 小方块坐标
# speed0.05 # 方块速度
# square_speed_x,square_speed_yspeed,0
# square_size 20 # 小方块大小
CELL_SIZE20
square_rectpygame.Rect(0,0,CELL_SIZE,CELL_SIZE)
UP,DOWN,LEFT,RIGHT(0,-1),(0,1),(-1,0),(1,0)
square_directionRIGHT # 定义一个初始方向
while True:for event in pygame.event.get(): # 遍历所有事件if event.type pygame.QUIT: # 如果单击关闭窗口则退出sys.exit() # 执行退出操作# elif event.type pygame.KEYDOWN:# if event.key pygame.K_UP:# square_y -5# elif event.key pygame.K_DOWN:# square_y 5# elif event.key pygame.K_LEFT:# square_x 5# elif event.key pygame.K_RIGHT:# square_x 5# 以上按键对应各方向移动要实现x,y轴像贪吃蛇一样移动下面代码elif event.type pygame.KEYDOWN:if event.key pygame.K_UP:square_directionUPelif event.key pygame.K_DOWN:square_direction DOWNelif event.key pygame.K_LEFT:square_direction LEFTelif event.key pygame.K_RIGHT:square_direction RIGHTsquare_rectsquare_rect.move(square_direction)# 防止小方块移出左右边界if square_rect.left0:square_rect.left0elif square_rect.rightwidth:square_rect.rightwidthif square_rect.top0:square_rect.top0elif square_rect.bottomheight:square_rect.bottomheight# 终端看坐标print(square_rect.x, square_rect.y, square_direction[0],square_direction[1])screen.fill(color) # 填充颜色# pygame.draw.rect(screen, square_color,square_rect)for i in range(CELL_SIZE,width,CELL_SIZE):pygame.draw.line(screen,color2,(i,0),(i,height))for i in range(CELL_SIZE,height,CELL_SIZE):pygame.draw.line(screen,color2,(0,i),(width,i))screen.fill(square_color,square_rect)screen.fill(square_color2, square_rect.inflate(-4,-4)) # 可以放大或缩小图形pygame.display.flip() # 更新显示clock.tick(game_speed)
pygame.quit()后续发布贪吃蛇吃食物计分完整代码内容量多