pygame需要python基础吗_用pygame学习初级python(一) 15.4.19

1 __author__ = 'Administrator'

2

3 importpygame4 from pygame.locals import *

5 from sys importexit6

7

8 classBullet(pygame.sprite.Sprite):  #子弹类9 def __init__(self, init_pos):10 pygame.sprite.Sprite.__init__(self)11 self.image = pygame.image.load('Bullet.gif') #设定子弹图片(记得放在根目录下)12 self.rect =self.image.get_rect()       #rect的意思是对象的区块大小,他把大小设定为图片的大小13 self.rect.midtop =init_pos           #子弹位置14 self.speed = 10                  #射速10

15

16 defmove(self):17 self.rect.centerx +=self.speed        #x轴+速度=长度18 #screen.blit(self.image,self.rect)

19 #pygame.display.update()

20

21

22 classPlayer(pygame.sprite.Sprite):          #玩家类23 def __init__(self):24 pygame.sprite.Sprite.__init__(self)25 self.image = pygame.image.load('right.png') #设定初始图片为右向26 self.rect =self.image.get_rect()27 self.rect.center =first_location       #center,设定初始位置28 #print self.rect.center

29

30 defturn(self, distance):              #转向函数31 center =self.rect.center32 self.image =pygame.image.load(Player_image[distance])#设定为数组里第一个33 self.rect =self.image.get_rect()34 self.rect.center =center35

36 defmove(self, temper):                #移动函数37 temper =int(temper)38 if temper ==0:                   #左39 for temp in range(1, 10):40 self.rect.centerx -= 3

41 printself.rect.centerx42 if temper == 1:43 self.rect.centerx += 30            #右

44 printself.rect.centery45 if temper == 2:46 self.rect.centery -= 30            #上

47 printself.rect.centery48 if temper == 3:49 self.rect.centery += 30            #下

50 if 0 > self.rect.centerx or self.rect.centerx >screen.get_width():      #这个是防止出去框架51 self.rect.centerx = -self.rect.centerx52 if 0 > self.rect.centery or self.rect.centery >screen.get_height():53 self.rect.centery = -self.rect.centery54

55 defshoot(self):                                      #射击函数56 bullet =Bullet(self.rect.midtop)57 Bullets.append(bullet)                                #添加到Bullets的数组统一播放58

59

60 background_image_filename = 'gamestart.png'                         #设定背景

61 start_image = 'bg2.png'                                    #开始背景

62 Player_image = ['left.png', 'right.png']                          #图片状态数组63 x =0                                               #background的x,y轴64 y =065 pygame.init()                                          #初始化66 screen = pygame.display.set_mode([1365, 768])                       #设定分辨率67 first_location = [screen.get_width() / 2, screen.get_height() / 2]           #初始位置为中央68 background =pygame.image.load(background_image_filename).convert()          #设定图片69 pygame.key.set_repeat(100, 100)                               #设定key的可重复按键,第一个参数是重复一次等待多长,第二个参数是多快的速度重复70 clock =pygame.time.Clock()                                  #设定时钟时间71 flag =0    #flag标记72 Bullets =[] #Bullets数组73 running =True  #循环标记74 whilerunning:75 clock.tick(60)    #不要超过60帧每秒76 for event inpygame.event.get():77 if event.type ==QUIT:      #监听退出78 exit()79 if event.type ==KEYDOWN:    #按下监听80 if flag ==0:81 if event.key ==pygame.K_1:     #按1键进行转场生成人物设置flag标记为182 background =pygame.image.load(start_image).convert()83 player =Player()84 printscreen.get_width()85 printscreen.get_height()86 flag = 1

87 elif event.key ==pygame.K_4:       #4退出88 exit()89 elif event.key ==pygame.K_RIGHT:     #下面就是上下左右:90 if flag == 1:91 player.turn(1)92 player.move(1)93 #flag == 1

94 elif event.key ==pygame.K_LEFT:95 if flag == 1:96 player.turn(0)97 player.move(0)98 elif event.key ==pygame.K_UP:99 if flag == 1:100 player.move(2)101 #flag == 1

102 elif event.key ==pygame.K_DOWN:103 if flag == 1:104 player.move(3)105 elif event.key ==pygame.K_x:      #设定射击按键:106 if flag == 1:107 player.shoot()108 print("shoot")109 screen.blit(background, (x, y))          #把背景填充到上层110 if flag == 1:                    #如果转场了就进行下去:111 screen.blit(player.image, player.rect)      放置人物;112 for bullet inBullets:             #循环把Bullets的东西移动,并放置到上层113 bullet.move()114 screen.blit(bullet.image, bullet.rect)115 pygame.display.update()              #更新背景116 if flag ==0:117 pygame.display.update()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值