用Python制作简单的小游戏

Posted 前端码农..

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Python制作简单的小游戏相关的知识,希望对你有一定的参考价值。

朋友们大家好,相信大部分人都喜欢玩游戏,无论是在工作间隙还是下班回家的路上,可能都会拿起手机玩游戏打发时间,亦或是在游戏中寻找乐趣,放松自己。上

我跟大家分享的内容主要是用Python的Pygame Zero模块来制作小游戏,同时推荐编程环境:Thonny(开源跨平台)。Thonny是一个跨平台的开源开发环境,自带Python解释器,体积小巧、功能齐备。扫描如下二维码,会有老师手把手教你如何安装Thonny和运用Thonny。 

Thonny安装好后,进行Pygame Zero模块的安装。首先打开Thonny,点击菜单“工具”->“管理模块”,输入“pgzero” 点击搜索,最后点击“install” ,安装成功!

我们制作一个小精灵,要求点击小精灵后,会发出声音并且精灵会摔倒。第一步创建游戏角色:

• 在源代码文件目录下新建两个目录:一个是images(名字可自定义),用来存放图片文件;另一个是sounds,用来存放声音文件。

• 用Actor类创建一个精灵对象:指定图片、位置

• 在draw中画出精灵:精灵图片将出现在指定的位置alien.pos

第二步更新update:改变精灵的位置,每秒会改变60次!

import pgzrun
import time
#创建一个精灵
alien = Actor('alien')
alien.pos = 100,56
#绘制窗口大小
WIDTH = 500
HEIGHT = alien.height + 100
#每次需要刷新窗口的时候,会自动调用draw函数
def draw():
    screen.clear()
    screen.fill((128, 0, 0))
    alien.draw()

每一帧都会调用update函数
def update():
    alien.left += 2
    if alien.left > WIDTH:
        alien.left = 0

 第三步与精灵的交互:pos是鼠标的位置,当点击到精灵,精灵就会摔倒,并发出“呃”的声音,1s后恢复初始状态;如果没有点击到精灵,就会打印出“快闪”二字;如果无点击行为,精灵就将一直循环移动。

def on_mouse_down(pos):
    if alien.collidepoint(pos):
        set_alien_hurt()
    else:
        print("快闪")
        
def set_alien_hurt():
        sounds.eep.play()
        alien.image = 'alien_hurt'
        print("呃")
        clock.schedule_unique(set_alien_normal, 1.0)
        
def set_alien_normal():
    alien.image = 'alien'
pgzrun.go()

     到这里就大功告成了!以上是一个小例子,让大家初识Python的Pygame Zero模块,大家在空余时间可以用Python来做做小游戏,一方面可以巩固相关知识,另一方面可以开拓视野释放压力。

上期参考答案

程序:

from turtle import *
from random import *
from math import *
 
def tree(n, l):
    pd() 
    pencolor('brown')
    pensize(n / 3)
    forward(l) 
 
 
    if n > 0:
        b = random() * 15 + 10 
        c = random() * 15 + 10 
        d = l * (random() * 0.25 + 0.7) 
        right(b)
        tree(n - 1, d)
        left(b + c)
        tree(n - 1, d)
        right(c)
    else:
        right(90)
        pencolor('green')
        circle(3)
        left(90)
        
    pu()
    backward(l)

ht()
speed(0) 
tracer(0)
pu() 
backward(100)
left(90) 
pu()
backward(300)
tree(12, 100)
done()

   

结果:

在这里还是要推荐下我自己建的Python学习Q群:831804576,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),
包括我自己整理的一份2022最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

python pygame制作简单的游戏移动操作

效果演示:

【python 】pygame制作简单的游戏移动操作演示

完整操作视频:

【python 】pygame制作简单的游戏移动操作完全操作

1.创建游戏窗体

##main.py
import pygame,sys
class Game:
    def __init__(self):
        pygame.init()
        ##title
        pygame.display.set_caption('game')
        ##windows size
        pygame.display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT))
    def run(self):
        while 1:
            ##退出
            for event in pygame.event.get():
                if event.type==pygame.QUIT:
                    pygame.quit()
                    sys.exit()
            pygame.display.update()

if __name__ == '__main__':
    game=Game()
    game.run()

2.分割默认的数值到配置文件

2.1创建配置文件config.py

2.2 导包替换默认值

3.创建地图

3.1地图类
##map.py
import pygame
class Map:
    def __init__(self):
        self.display=pygame.display.get_surface()

    def run(self,dt):
        self.display.fill('green')
  
3.2实例地图,运行方法

4.创建角色类

4.1生成类继承pygame精灵类,定义一个(30X30)红色的的方块,设置中心坐标点
##character.py
import pygame

class Character(pygame.sprite.Sprite):
    def __init__(self,pos,group):
        super(Character, self).__init__(group)

        self.image=pygame.Surface((30,30))
        self.image.fill('red')
        self.rect=self.image.get_rect(center=pos)

4.2 在地图里面导入并应用

5.实现键盘方向输入操作

5.1 增加方法

6.实现移动

6.1 mian.py添加刷新率属性

6.2将刷新率应用到各项,并角色添加移动方法


6.3添加方向向量

![在这里插入图片描述](https://img-blog.csdnimg.cn/789886242cde4db3893e348de42dac92.png

6.4实现移动方法

6.5修复对角移动比上下左右快的bug

7.待续…

以上是关于用Python制作简单的小游戏的主要内容,如果未能解决你的问题,请参考以下文章

Python Pygame制作简单五子棋游戏(详细代码+解释)

Python 程序员过中秋Python+pygame 制作拼图小游戏(附源码:5源码)

python简单小游戏代码 怎么用Python制作简单小游戏

用pygame制作的游戏可以提交到steam吗? [关闭]

如何用Pygame制作简单的贪吃蛇游戏

如何用Pygame制作简单的贪吃蛇游戏