import pygame import time #Necesitas dormir en el bucle; de lo contrario, la memoria se llenará en un momento desde pygame.locals import * #Detecta el teclado import random import sys #Salga del sistema #Para proyectos dinámicos, primero tome una foto estática Para analizar: En aras de la tranquilidad, convierta las dificultades en fáciles. Corte una sandía en pedazos y luego júntelos. Cuando tenga un proyecto grande, primero divida los distintos elementos del proyecto en objetos, determine los atributos y métodos de los objetos y luego ensamblarlos en un proyecto. # Clase de jugador: #Atributos: ventana de visualización, ubicación, imagen, lista de viñetas, estado de movimiento #Método: mostrar, mover, disparar, todas las clases de acción se convierten en métodos clase player() : def __init__(self,screen): self.screen =screen# Utilice un objeto de ventana como valor de atributo self.x=150 self.y=500 self.img =pygame.image.load("Avión\\hero.gif ") self.bullet_list=[] self.ifmoveright= 0#0 significa no moverse, 1 significa moverse self.ifmoveleft=0 def display(self): self.screen.blit(self.img,(self.x,self.y)) print() para f en self.bullet_list: f.move() f.display() si fy<=0: self.bullet_list. remove(f) def move(self): si self.ifmoveleft==1 y self.x>=-30: self.x-=20 si self.ifmoveright==1 y self.x<=270: self.x+ =20 def fuego(self): d=playerzd(self.screen,self.x,self.y) self.bullet_list.append(d) clase playerzd(): def __init__(self,screen,x,y): self .pantalla=pantalla self.x=x self.y=y self.img=pygame.image.load("飞机\\bullet.png") def visualización(self): self.screen.blit(self.img,(self.x,self.y)) def mover(self): self.y-=20 clase diji(): def __init__(self,pantalla): self.screen=pantalla #Utilice un objeto de ventana como valor de atributo self.x=0 self.y=0 self.img =pygame.image.load("Avión\\enemy1.png") self.bullet_list=[] self.dijimove=0# 0 significa movimiento hacia la izquierda, 1 significa movimiento hacia la derecha def display(self): self.screen.blit(self.img,(self.x,self.y)) para b en self.bullet_list: b.move() b.display () si por>=600: si self.x<=0: self.dijimove=1 self.bullet_list.remove(b) def mover(self): #玩家子弹类 if self.x>280: self.dijimove=0 if self.dijimove==1: self.x+=10 if self.dijimove==0: self.x-=10 def fuego(self): dijizd1=dijizd(self .screen,self.x,self.y) self.bullet_list.append(dijizd1) clase dijizd(): def __init__(self,screen,x,y): self.screen=screen#将一个窗口对象作为了属性值 self.x=x self.y=y self.img=pygame.image.load("飞机\\bullet-1.gif") def display(self): self.screen.blit(self.img,(self. x,self.y)) def mover(self): self.y+=20 #键盘监控 def jpinput(jugador): para evento en pygame.event.get(): si event.type==SALIR: print("Saliendo") sys.exit(0)#Forzar salida si event.type==KEYDOWN: si event.key==K_RIGHT: print("Moviéndose hacia la derecha") player.ifmoveright=1 if event.key==K_LEFT: print("Moviéndose hacia la izquierda") player.ifmoveleft=1 if event.key==K_SPACE: print("El jugador dispara") player.fire () si event.type==KEYUP: si event.key==K_RIGHT: player.ifmoveright=0 clase principal(): si event.key==K_LEFT: player.ifmoveleft=0 screen=pygame.display.set_mode((300,600)) backimg = pygame.image.load("飞机\\background.png") a = jugador(pantalla) b = diji(pantalla) while 1==1: screen.blit (backimg,(0,0)) b.move() c=random.randint(1,5) si c==1: b.fire() b.display() jpinput(a) a.move() a .display() pygame.display.update() tiempo.dormir(0.5)
Los conceptos básicos de Python: guerra hombre-máquina, pensamiento de programación
Supongo que te gusta
Origin blog.csdn.net/qq_40333984/article/details/125637376
Recomendado
Clasificación