想写一个小游戏,由于自己时间水平有限所以分开来写来记录一下写的过程
有什么好的建议,思路欢迎留言
背景和主人公实现
这里不知道如何上传视频文件,所以大家可以自己试一下
基本实现了:音频导入,一个主人物的设定,背景图片跳跃
等会上传视频的时候会添加上
- 模块和对象的初始化
import myspirit
import pygame
import sys
pygame.init()
pygame.mixer.init()
- 设置界面尺寸,根据图片长宽来设定
bgsize= width,height= 720,509
screen =pygame.display.set_mode(bgsize)
- 设置标题
pygame.display.set_caption('Mygame')
-
导入背景图片和音频
-
每个生成的图片都应该获取一个矩阵便于控制位置
image1=pygame.image.load('figure/my.png').convert_alpha()
rect= image1.get_rect()
- 创建时钟对象 (可以控制游戏循环频率)
clock = pygame.time.Clock()
- 图片进行反转
F_image=pygame.transform.flip(self.image1,True,False)
- 还有就是跳跃的实现
这里是用 y±数值来实现 - 将图像在界面中显示和屏幕的刷新
screen.blit(me.F_image,me.rect)
pygame.display.flip()
import myspirit
import pygame
import sys
pygame.init()
pygame.mixer.init()
bgsize= width,height= 720,509
screen =pygame.display.set_mode(bgsize)
pygame.display.set_caption('Mygame')
background = pygame.image.load('bg.jpg')
pygame.mixer.music.load('bgmusic.mp3')
clock = pygame.time.Clock()
def main():
me= myspirit.MySpirit(bgsize)
pygame.mixer.music.play(-1)
running =True
while running:
clock.tick(60)
me.space()
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
screen.blit(background,(0,0))
screen.blit(me.F_image,me.rect)
pygame.display.flip()
if __name__ =="__main__":
main()
import pygame
class MySpirit(pygame.sprite.Sprite):
def __init__(self,bg_size):
pygame.sprite.Sprite.__init__(self)
self.image1=pygame.image.load('figure/my.png').convert_alpha()
self.F_image=self.image1
self.rect= self.image1.get_rect()
self.width,self.height=bg_size
self.rect.left,self.rect.top=0,self.height-self.rect.height
self.speed=1
self.spr_y=0
self.jump=False
def space(self):
x_move=0
y_move=0
key=pygame.key.get_pressed()
if key[pygame.K_SPACE] and self.jump is False:
self.spr_y=-18
self.jump=True
if not key[pygame.K_SPACE]:
self.jump=False
if key[pygame.K_LEFT] or key[pygame.K_a]:
self.F_image=pygame.transform.flip(self.image1,True,False)
x_move-=5
if key[pygame.K_RIGHT] or key[pygame.K_d]:
self.F_image=self.image1
x_move+=5
self.spr_y+=1
if self.spr_y>9.8:
self.spr_y=9.8
y_move +=self.spr_y
self.rect.left+=x_move
self.rect.top+=y_move
if(self.rect.bottom>self.height):
self.rect.bottom=self.height
if(self.rect.left>self.width):
self.rect.right=0
if(self.rect.right<0):
self.rect.left= self.width
现在只写了两个py模块 还有好多没写 尽快会更新的
Original: https://blog.csdn.net/qq_46540840/article/details/115770729
Author: Rgylin
Title: python完成一个小游戏(一)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/783464/
转载文章受原作者版权保护。转载请注明原作者出处!