欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python pygame

程序员文章站 2022-03-23 13:19:13
...
# -*- coding:UTF-8 -*-
import pygame
from pygame.locals import *
from sys import exit

SCREEN_WIDTH=480
SCREEN_HEIGHT=640

pygame.init()
screen=pygame.display.set_mode([SCREEN_WIDTH,SCREEN_HEIGHT])
pygame.display.set_caption('This is my first-game')
#载入背景图
background=pygame.image.load('images/background.bmp')
ship=pygame.image.load('images/icon.png')
ticks=0
hero_pos=[0,0]
clock=pygame.time.Clock()
#w位置字典
offset = {pygame.K_LEFT:0, pygame.K_RIGHT:0, pygame.K_UP:0, pygame.K_DOWN:0}
while True:
    clock.tick(60)
    #绘制背景surface.blit()算是很常用的函数了,
    # 第一个参数是图像资源,第二个参数决定图像放置的位置
    # (左上角的坐标)
    screen.blit(background,(0,0))
    #更新屏幕假如我们把后面两条新语句移到while循环上面会怎样?
    # 在这个demo中不会有明显影响,但当以后我们在屏幕中加入其它图像元素后,一执行update操作,背景图就没有了。
    # ticks%20<15:
        #这样就是每20个就变换一个位置造成了动画的效果
    screen.blit(ship,hero_pos)
    # else:
    #     screen.blit(ship,hero_pos)
    ticks+=1

    pygame.display.update()
    #处理游戏退出
    #从消息队列中循环取出
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            pygame.quit()
            exit()
        if event.type==pygame.KEYDOWN:
            if event.key in offset:
                offset[event.key]=3
        elif event.type==pygame.KEYUP:
            if event.key in offset:
                offset[event.key]=0
    offset_x=offset[pygame.K_RIGHT]-offset[pygame.K_LEFT]
    offset_y=offset[pygame.K_DOWN]-offset[pygame.K_UP]
    hero_pos=[hero_pos[0]+offset_x,hero_pos[1]+offset_y]
    if hero_pos[1]<0:
        hero_pos[1]=SCREEN_HEIGHT+hero_pos[1]
    elif hero_pos[1]>SCREEN_HEIGHT:
        hero_pos[1]=hero_pos[1]-SCREEN_HEIGHT

    if hero_pos[0]<0:
        hero_pos[0]=SCREEN_WIDTH+hero_pos[0]
    elif hero_pos[0]>SCREEN_WIDTH:
        hero_pos[0]=hero_pos[0]-SCREEN_WIDTH


 

相关标签: pygame