python完成一个小游戏(一)



想写一个小游戏,由于自己时间水平有限所以分开来写来记录一下写的过程

有什么好的建议,思路欢迎留言

背景和主人公实现

这里不知道如何上传视频文件,所以大家可以自己试一下

基本实现了:音频导入,一个主人物的设定,背景图片跳跃
等会上传视频的时候会添加上

  • 模块和对象的初始化
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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球