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

今天下午把代码全部重写了一遍,因为之前的太乱,变量到处都是。。。

重写之后用了类和精灵组

功能基本实现

#This editon has been modified carefully
#And still I hope you will love it
#Code can also be romantic
# 2015/11/24
######################################################

# To import some basic parts
import pygame
from sys import exit
from random import randint

# To define a new hero class
class Hero(pygame.sprite.Sprite):
	def __init__(self,init_pos,Hero_Surface): #pos(200,355)
		pygame.sprite.Sprite.__init__(self)
		self.image=Hero_Surface  #!!! Error
		self.pos=init_pos
		self.surface=Hero_Surface
		self.rect=self.image.get_rect()
		self.rect.topleft=init_pos
		self.speed=2.5
	def move(self, offset):
		x=self.rect.left+ offset[pygame.K_RIGHT]-offset[pygame.K_LEFT]
		y=self.rect.top+offset[pygame.K_DOWN]-offset[pygame.K_UP]

		if x<0:
			self.rect.left=0
		elif x>230:
			self.rect.left=230
		else:
			self.rect.left=x

		if y<0:
			self.rect.top=0
		elif y>325:
			self.rect.top=325
		else:
			self.rect.top=y




# To initialize the game
SCREEN_WIDTH=640
SCREEN_HIGH=480
Background=pygame.image.load('resource/image/Background1.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')

Hero_Surface=[Running1,Running2]

#Game on

pygame.init()
pygame.display.set_caption('The Otter\'s Adventure')
screen=pygame.display.set_mode([SCREEN_WIDTH,SCREEN_HIGH])
offset={pygame.K_DOWN:0,pygame.K_UP:0,pygame.K_LEFT:0,pygame.K_RIGHT:0}

hero=Hero((200,355),Hero_Surface[0])
ANIMATE_CYCLE=30
ticks=0

while True:
	screen.blit(Background,(0,0))
	if ticks>=ANIMATE_CYCLE:
		ticks=0
	hero.image=Hero_Surface[ticks//(ANIMATE_CYCLE//2)]

	screen.blit(hero.image,hero.rect)
	ticks+=1
	pygame.display.update()

	for event in pygame.event.get():
		if event.type==pygame.QUIT:
			pygame.quit()
			exit()

		elif event.type==pygame.KEYDOWN:
			if event.key in offset:
				offset[event.key]=hero.speed
		elif event.type==pygame.KEYUP:
			if event.key in offset:
				offset[event.key]=0

	hero.move(offset)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值