python--pygame(一)疯狂的蜗牛

   日期:2020-05-14     浏览:109    评论:0    
核心提示:1 环境安装 。游戏模块导入:直接去cmd下 pip install pygame多试几次 ,可能会因为网速原因出现错误 , 多来几次 就好了。1 什么是Surface 对象?就是 pygame 中表示图像的对象。2 将一个对象移动到另一个图像之上是怎么回事?pygame 每一时刻展示一个图像 。 每个图像是由像素组成的bilt方法将一个图像放到另一个图像上: 其实pygame并不是真正的移动的。 他只将部分区域替换成另一个图像了。3 移动图像是怎么回事?这是个帧率的问题:帧python

1 环境安装 。

游戏模块导入:

直接去cmd下 pip install pygame

多试几次 ,可能会因为网速原因出现错误 , 多来几次 就好了。

1 什么是Surface 对象?

就是 pygame 中表示图像的对象。

2 将一个对象移动到另一个图像之上是怎么回事?

pygame 每一时刻展示一个图像 。 每个图像是由像素组成的

blit方法将一个图像放到另一个图像上: 其实pygame并不是真正的移动的。 他只将部分区域替换成另一个图像了。

3 移动图像是怎么回事?

这是个帧率的问题:

帧 : 一幅图像

帧率: 一秒钟可以切换多少帧

pygame每秒切换40-200帧

4 如何控制移动速度?

采用延迟time.delay(ms)

也可以用帧率来控制:

clock = pygame.time.Clock()
clock.tick(20)

5 pygame 效率高不高?

python 简洁好用 但是效率不高

pygame 考虑了 效率, 于是内部好多模块用C语言来实现的。

6 怎么获取帮助 ?

www.pygame.org官网

来看一个 样例





代码如下

import pygame
import sys

#初始化:启动游戏相关功能
pygame.init()

size = width,height = 800, 500#tuple
speed =[-2,1]#速度和初始方向:
bg = (255,255,255)#背景色

#设置指定大小的窗口Surface
screen = pygame.display.set_mode(size)
#设置窗口标题
pygame.display.set_caption('初次见面,多多关照')

#加载图片Surface对象
photo = pygame.image.load('link.jpg')

#获得图像的位置矩形facele
position = photo.get_rect()


while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()#退出游戏 右上角X

    #移动图像
    position = position.move(speed)

    #碰撞检测:水平方向
    if position.left < 0 or position.right > width:
        #翻转图像 翻转谁, 水平翻转吗? 垂直翻转吗?
        photo = pygame.transform.flip(photo, True, False)
        # 水平翻转 :反方向移动 
        speed[0] = -speed[0]

    #碰撞检测:垂直方向
    if position.top < 0 or position.bottom > height:
        speed[1] = -speed[1]

    #背景填充
    screen.fill(bg)
    #更新背景:将photo对象画在screen对象上的position位置
    screen.blit(photo,position)
    #更新界面;flip刷新 pygame是双缓冲的,将写好的对象放在屏幕上,防止闪烁现象,就是刷新过快导致的。
    pygame.display.flip()
    #设置移动延迟 ms
    pygame.time.delay(5)
    

2 加入键盘控制移动

import pygame
import sys
from pygame.locals import *


#初始化
pygame.init()

size = width,height = 1000, 600#tuple
speed =[-2,1]
bg = (255,255,255)#背景色

#设置指定大小的窗口Surface
screen = pygame.display.set_mode(size)
#设置窗口标题
pygame.display.set_caption('初次见面,多多关照')

#加载图片Surface对象
photo = pygame.image.load('link.jpg')

#获得图像的位置矩形rectangle
position = photo.get_rect()

photo = photo = pygame.transform.flip(photo, True, False)

r_head = photo
l_head =  photo = pygame.transform.flip(photo, True, False)


while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()#退出游戏 右上角X
        if event.type == KEYDOWN:
            if event.key == K_LEFT:
                speed = [-1,0]
                photo = l_head
            if event.key == K_RIGHT:
                speed = [1,0]
                photo = r_head
            if event.key == K_UP:
                speed = [0,-1]
            if event.key == K_DOWN:
                speed = [0,1]
            

    #移动图像
    position = position.move(speed)

    #碰撞检测:水平方向
    if position.left < 0 or position.right > width:
        #翻转图像 翻转谁, 水平翻转吗? 垂直翻转吗?
        photo = pygame.transform.flip(photo, True, False)
        # 水平翻转 :反方向移动 
        speed[0] = -speed[0]

    #碰撞检测:垂直方向
    if position.top < 0 or position.bottom > height:
        speed[1] = -speed[1]

    #背景填充
    screen.fill(bg)
    #更新背景
    screen.blit(photo,position)
    #更新界面
    pygame.display.flip()
    #设置延迟
    pygame.time.delay(1)
    
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服