[python]pygame游戏开发学习(一)

现在功能实现了画面的变化,人物动画效果,方向移动,方向转化。

#2015/9/18
import pygame#导入库
from pygame.locals import *
from sys import exit

pygame.init()#初始化游戏
SCREEN=pygame.display.set_mode((640,480))#设置幕布
pygame.display.set_caption('The Otter\'s Adventure')#设置标题
pygame.mouse.set_visible(0)
background=pygame.image.load('resource/image/Background1.png')
#2015/9/19
Flower1=pygame.image.load('resource/image/Flower1.png')#载入图片资源,生成surface对象
Flower2=pygame.image.load('resource/image/Flower2.png')
Flower3=pygame.image.load('resource/image/Flower3.png')
Flower4=pygame.image.load('resource/image/Flower4.png')
Running01=pygame.image.load('resource/image/Running1.png')
Running02=pygame.image.load("resource/image/Running2.png")
Running1=pygame.image.load('resource/image/Running1.png')
Running2=pygame.image.load("resource/image/Running2.png")
Running3=pygame.image.load("resource/image/Running3.png")
Running4=pygame.image.load('resource/image/Running4.png')
#2015/10/1  Late Night  "I'm saving the world!"
ticks=0 #导入ticks计数

offset={pygame.K_LEFT:0,pygame.K_RIGHT:0,pygame.K_UP:0,pygame.K_DOWN:0}#按键字典文件

hero_x=200
hero_y=325

hero_pos=[hero_x,hero_y]#人物位置

background_x=0 
background_y=0 
background_pos=(background_x,background_y)


while True: #游戏主循环
	
	SCREEN.blit(background,(background_pos))#绘制背景
	if ticks%50<25:#动画效果
		SCREEN.blit(Running1,hero_pos)
	else:
		SCREEN.blit(Running2,hero_pos)
	ticks=ticks+0.75
	pygame.display.update()
#2015/10/2
	for event in pygame.event.get():#获取事件列表
		if event.type==pygame.QUIT:#点击退出后关闭程序
			pygame.quit()
		if event.type==pygame.KEYDOWN:#坐标位置更改
			if event.key in offset: 
				offset[event.key]=1.5
				if event.key==pygame.K_LEFT:
					Running1=Running3
					Running2=Running4
				if event.key==pygame.K_RIGHT:
					Running1=Running01
					Running2=Running02
		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]


#2015/10/6 边界
	if hero_x<0:
		hero_x=0
	elif hero_x>230:
		if offset_x>0:
			background_x=background_x-offset_x
			if background_x<-1280:
				background_x=-1280
			if background_x>0:
				background_x=0
			background_pos=[background_x,background_y]
		else:
			hero_x=hero_x+offset_x
	elif hero_x>640:
		hero_x=640
	else:
		hero_x=hero_x+offset_x
		
		
	if  hero_y<0:
		hero_y=0 
	elif hero_y>325:
		hero_y=325
	else:
		hero_y=hero_y+offset_y
		
	hero_pos=[hero_x,hero_y]
	print(hero_pos)

接下来的目标是重力,考虑用循环来做

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值