Python pygame入门

1.前言

很多人学语言就是想做出来一个小游戏,但是你会发现,初学者一般学习的是输入输出,还没涉及到显示屏上的窗口图片游戏。如果你把基础已经学好了,你就可以开始做一些游戏了。做游戏需要用到一些第三方库。就看你为了做出来什么样的游戏。这篇文章我会带你们来学习一下pygame入门.

2.框架

如果你之前学过C++,你一定知道什么叫做框架​​​​​​看看我做的《c++入门和Python入门》icon-default.png?t=N7T8https://blog.csdn.net/pythonwyw123321/article/details/134345913?spm=1001.2014.3001.5502

框架代码:

import pygame,sys
pygame.init()
pygame.display.set_caption('') #设置窗口名称
s = pygame.display.set_mode((800,600))  #设置窗口大小 ,S是窗口
while True: #让窗口一直出现 ,就要用到while循环
    s.fill((255,255,255))   #设置背景颜色 ,格式为: 窗口名称.fill(颜色元组)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()  #结束整个程序
    pygame.display.update()
    pygame.time.Clock().tick(20)

执行这些代码会有一个白色的窗口显示在你的面前,你点X就可以把它关闭.

3.青铜玩法

把背景颜色换一下,变成随机数.

import pygame,sys,random as r
pygame.init()
pygame.display.set_caption('') #设置窗口名称
s = pygame.display.set_mode((800,600))  #设置窗口大小 ,S是窗口
while True: #让窗口一直出现 ,就要用到while循环
    s.fill((r.randint(0,255),r.randint(0,255),r.randint(0,255)))   #设置背景颜色 ,格式为: 窗口名称.fill(颜色元组)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()  #结束整个程序
    pygame.display.update()
    pygame.time.Clock().tick(20)

啊!要把我的眼睛闪瞎了 .

4.白银玩法

教你怎么导入图片.

在循环的前面先写一些代码,导入一下照片.

变量名 = pygame.image.load("路径")

在循环里面显示一下图片.

窗口名.blit(变量名,(x,y))

就像这样

​
import pygame,sys
pygame.init()
pygame.display.set_caption('') #设置窗口名称
s = pygame.display.set_mode((800,600))  #设置窗口大小 ,S是窗口
a = pygame.image.load("a.png")
while True: #让窗口一直出现 ,就要用到while循环
    s.fill((255,255,255))   #设置背景颜色 ,格式为: 窗口名称.fill(颜色元组)
    s.blit(a,(0,0))
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()  #结束整个程序
    pygame.display.update()
    pygame.time.Clock().tick(20)

​

然后我们让图片跟着我们的鼠标移动,获取鼠标的xy坐标.

pygame.mouse.get_pos() -->这个是一个元组像这样(0,0)

把s.blit(a,(0,0))改成s.blit(a,pygame.mouse.get_pos())

这样图片就可以跟着鼠标移动了.

代码:

​
import pygame,sys
pygame.init()
pygame.display.set_caption('') #设置窗口名称
s = pygame.display.set_mode((800,600))  #设置窗口大小 ,S是窗口
a = pygame.image.load("a.png")
while True: #让窗口一直出现 ,就要用到while循环
    s.fill((255,255,255))   #设置背景颜色 ,格式为: 窗口名称.fill(颜色元组)
    s.blit(a,​pygame.mouse.get_pos())
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()  #结束整个程序
    pygame.display.update()
    pygame.time.Clock().tick(20)

​

 5.黄金玩法

加上了碰撞检测

名字 = pygame.Rect(x, y, 宽, 高)

名字2 = pygame.Rect(x, y, 宽, 高)

if 名字.colliderect(名字2):

        #如果名字一和名字二的地方发生了碰撞,接下来要怎么做.

这个是鼠标的判断

pygame.mouse.get_pressed()

它是一个列表,零号位是左键按下判断,一号位是滚轮按下判断,二号位是右键按下判断.

向使这样的一个列表:[True,False,False]

展示代码(图片需要自己配,1个叫做13.png的图片,这是一个开关灯的程序,用鼠标点击左上角)

import pygame,sys,time
pygame.init()
pygame.display.set_caption('跳跳小恐龙') #设置窗口名称
s = pygame.display.set_mode((800,600))  #设置窗口大小 ,S是窗口
a = pygame.image.load("13.png")
a = pygame.transform.scale(a,(100,100))
b = pygame.image.load("13.png")
b = pygame.transform.scale(b,(50,50))
j = 0   #0是关 1是开
while True: #让窗口一直出现 ,就要用到while循环


    m = pygame.mouse.get_pos()
    hit = pygame.Rect(0, 0, 100, 100)
    hit2 = pygame.Rect(m[0], m[1], 50, 50)

    if hit.colliderect(hit2) and pygame.mouse.get_pressed()[0]:
        if j == 0:
            j = 1
        elif j == 1:
            j = 0
        time.sleep(0.1)
    if j == 1:
        s.fill((255,255,255))   #设置背景颜色 ,格式为: 窗口名称.fill(颜色元组)
    if j == 0:
        s.fill((0, 0, 0))  # 设置背景颜色 ,格式为: 窗口名称.fill(颜色元组)
    s.blit(a,(0,0))
    s.blit(b,m)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()  #结束整个程序
    pygame.display.update()
    pygame.time.Clock().tick(20)
pygame.transform.scale(a,(100,100))这个代码是控制图片大小的,我把这个变量名叫做a的图片变成了100乘100的.

6.总结

那些好玩的游戏都是用这些基础语句做的,组合一下就可以变成一个小游戏了.

但是最好用精灵类.判断碰撞更好一些.

  • 12
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值