python学习之游戏开发二:事件

两个案例

第一个将所有事件都写入文件,并且打印到屏幕上面


import pygame
import sys

#初始化pygame

pygame.init()


size = width,height = 600,400

screen = pygame.display.set_mode(size)
pygame.display.set_caption('初次见面,请大家多多关照!')
bg = (0,0,0)
position = 0
font = pygame.font.Font(None,20)
line_height = font.get_linesize()


screen.fill(bg)



f = open("record.txt",'w')

while True:
    for event in pygame.event.get():
        f.write(str(event) + '\n')

        if event.type == pygame.QUIT:
            f.close()
            sys.exit()

        screen.blit(font.render(str(event),True,(0,255,0)),(0,position))
        position += line_height

        if(position > height):
            position = 0
            screen.fill(bg)

    pygame.display.flip()

修改游戏代码,使图片收到控制

import pygame
import sys
from pygame.locals import *

#初始化pygame
pygame.init()

size = width,height = 600,400
speed = [-2,1]
bg = (255,255,255)#RGB


clock = pygame.time.Clock()
#创建指定大小的窗口
screen = pygame.display.set_mode(size)

#设置窗口标题
pygame.display.set_caption('初次见面,请多关照!')


#加载图片
turtle = pygame.image.load("D:/Study/2.gif")

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

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



while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        if event.type == pygame.KEYDOWN:
            if event.key == K_LEFT:
                turtle = l_head
                speed = [-1,0]
            if event.key == K_RIGHT:
                turtle = r_head
                speed = [1,0]
            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:
        #翻转图像
        turtle = pygame.transform.flip(turtle,True,False)
        #反方向移动
        speed[0] = -speed[0]

    if position.top < 0 or position.bottom > height:
        speed[1] = -speed[1]


    #填充背景
    screen.fill(bg)
    #更新图像
    screen.blit(turtle,position)
    #更新界面
    pygame.display.flip()
    #延迟10秒
    #pygame.time.delay(50)
    #设置帧率
    clock.tick(200)

原创文章 59 获赞 39 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_28174951/article/details/79361521