|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 KeyError 于 2023-1-14 14:37 编辑
hello,看到我这么快就更了,是不是很惊讶
开始撸代码 :
我方飞只因:
- #myplne.py
- import pygame
- class MyPlane(pygame.sprite.Sprite):
- def __init__(self,bg_size):
- pygame.sprite.Sprite.__init__(self)
- self.image1=pygame.image.load("images/me1.png").convert_alpha() #载入图片
- self.image2=pygame.image.load("images/me2.png").convert_alpha()
- self.rect=self.image1.get_rect()
- self.width,self.height=bg_size[0],bg_size[1]
- self.rect.left,self.rect.top=(self.width-self.rect.width)//2,\ #设置位置
- self.height-self.rect.height-60
- self.speed=10
- self.active=True
- self.mask=pygame.mask.from_surface(self.image1)
- #↓定义移动函数
- def moveUp(self):
- if self.rect.top>0:
- self.rect.top-=self.speed
- else:
- self.rect.top=0
- def moveDown(self):
- if self.rect.bottom<self.height-60:
- self.rect.bottom+=self.speed
- else:
- self.rect.bottom=self.height-60
- def moveLeft(self):
- if self.rect.left>0:
- self.rect.left-=self.speed
- else:
- self.rect.left=0
- def moveRight(self):
- if self.rect.right<self.width:
- self.rect.right+=self.speed
- else:
- self.rect.right=self.width
复制代码
主程序(有改动):
- #main.py
- import pygame
- import sys
- import traceback
- import myplne
- from pygame.locals import *
- pygame.init()
- pygamr.mixer.init()
- bg_size = width,height = 480,700 #尺寸
- screen = pygame.display.set_mode(bg_size) #画布
- pygame.display.set_caption("飞机大战") #标题
- background = pygame.image.load("images/background.png").convert() #导入背景
- def main():
- clock = pygame.time.Clock()
- me = myplne.MyPlane(bg_size)
- qie = True
- while True:
- for event in pygame.event.get():
- if event.type == QUIT: #如果用户点击关闭按钮
- pygame.quit()
- sys.exit()
-
- #控制飞机
- key_p=pygame.key.get_pressed()
- if key_p[K_w] or key_p[K_UP]:
- me.moveUp()
- if key_p[K_s] or key_p[K_DOWN]:
- me.moveDown()
- if key_p[K_a] or key_p[K_LEFT]:
- me.moveLeft()
- if key_p[K_d] or key_p[K_RIGHT]:
- me.moveRight()
- if qie:
- screen.blit(me.image1,me.rect)
- else:
- screen.blit(me.image2,me.rect)
- screen.blit(background, (0,0)) #绘制背景
- if not (delay % 5):
- qie=not qie
- delay-=1
- if not delay:
- delay=100
-
- pygame.display.flip()
- clock.tick(60) #限制帧率
- if __name__ == "__main__":
- try:
- main()
- except SystemExit:
- pass
- except:
- traceback.print_exc() #报告异常
- pygame.quit()
- input()
复制代码
上一篇: 传送门
下一篇: 传送门
|
评分
-
查看全部评分
|