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
上一篇: 2018年最火的七个Python图形化gui开发框架
下一篇: Python自动化运维课程学习