# -*- coding: utf-8 -*-
import pygame
from sys import exit
class Bullet:
def __init__(self):
#初始化成员变量,x,y,image
self.x = 0
self.y = -1
self.image = pygame.image.load('bullet.png').convert_alpha()
def move(self):
#处理子弹的运动
if self.y < 0:
mouseX, mouseY = pygame.mouse.get_pos()
self.x = mouseX - self.image.get_width() / 2
self.y = mouseY - self.image.get_height() / 2
else:
self.y -= 5
pygame.init()
screen = pygame.display.set_mode((450, 800), 0, 32)
pygame.display.set_caption("Hello, World!")
background = pygame.image.load('back.jpg').convert()
plane = pygame.image.load('plane.png').convert_alpha()
bullet = Bullet()
#加载子弹图像
#初始化子弹位置
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
screen.blit(background, (0,0))
bullet.move()
screen.blit(bullet.image, (bullet.x, bullet.y))
#把子弹画到屏幕上
x, y = pygame.mouse.get_pos()
x-= plane.get_width() / 2
y-= plane.get_height() / 2
screen.blit(plane, (x, y))
pygame.display.update()
# -*- coding: utf-8 -*-
import pygame
#导入pygame库
from sys import exit
#向sys模块借一个exit函数用来退出程序
pygame.init()
#初始化pygame,为使用硬件做准备
screen = pygame.display.set_mode((600, 170), 0, 32)
#创建了一个窗口,窗口大小和背景图片大小一样
pygame.display.set_caption("Hello, World!")
#设置窗口标题
background = pygame.image.load('0.jpg').convert()
#加载并转换图像
plane = pygame.image.load('2.jpg').convert()
while True:
#游戏主循环
for event in pygame.event.get():
if event.type == pygame.QUIT:
#接收到退出事件后退出程序
pygame.quit()
exit()
screen.blit(background, (0,0))
x, y = pygame.mouse.get_pos()
#获取鼠标位置
x-= plane.get_width() / 2
y-= plane.get_height() / 2
#计算飞机的左上角位置
screen.blit(plane, (x,y))
#把飞机画到屏幕上
pygame.display.update()
#刷新一下画面
# -*- coding: utf-8 -*-
import pygame
from sys import exit
pygame.init()
screen = pygame.display.set_mode((450, 800), 0, 32)
pygame.display.set_caption("Hello, World!")
background = pygame.image.load('back.jpg').convert()
plane = pygame.image.load('plane.png').convert_alpha()
bullet = pygame.image.load('bullet.png').convert_alpha()
#加载子弹图像
bullet_x = 0
bullet_y = -1
#初始化子弹位置
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
screen.blit(background, (0,0))
x, y = pygame.mouse.get_pos()
if bullet_y < 0:
#如果子弹位置超出了屏幕上端
bullet_x = x - bullet.get_width() / 2
bullet_y = y - bullet.get_height() / 2
#把子弹的中心位置设为鼠标坐标
else:
bullet_y -= 5
#子弹的位置往上移
screen.blit(bullet, (bullet_x, bullet_y))
#把子弹画到屏幕上
x-= plane.get_width() / 2
y-= plane.get_height() / 2
screen.blit(plane, (x, y))
pygame.display.update()
# -*- coding: utf-8 -*-
import pygame
import random
from sys import exit
class Bullet:
def __init__(self):
#初始化成员变量,x,y,image
self.x = 0
self.y = -1
self.image = pygame.image.load('bullet.png').convert_alpha()
self.active = False
def move(self):
if self.active:
self.y-=3
if self.y < 0:
self.active =False
#处理子弹的运动
def restart(self):
mouseX, mouseY = pygame.mouse.get_pos()
self.x = mouseX - self.image.get_width() / 2
self.y = mouseY - self.image.get_height() / 2
self.active = True
class Enemy:
def restart(self):
self.x = random.randint(50, 400)
self.y = random.randint(-200, -50)
self.speed = random.random() + 0.1
def __init__(self):
self.restart()
self.image = pygame.image.load('enemy.png').convert_alpha()
def move(self):
if self.y < 800:
self.y += self.speed
else:
self.restart()
class Plane:
def restart(self):
self.x = 200
self.y = 600
def __init__(self):
self.restart()
self.image = pygame.image.load('plane.png').convert_alpha()
def move(self):
x, y = pygame.mouse.get_pos()
x-= self.image.get_width() / 2
y-= self.image.get_height() / 2
self.x = x
self.y = y
def checkCrash(enemy, plane):
if (plane.x + 0.7*plane.image.get_width() > enemy.x) and (plane.x + 0.3*plane.image.get_width() < enemy.x + enemy.image.get_width()) and (plane.y + 0.7*plane.image.get_height() > enemy.y) and (plane.y + 0.3*plane.image.get_width() < enemy.y + enemy.image.get_height()):
return True
return False
def checkHit(enemy, bullet):
if (bullet.x > enemy.x and bullet.x < enemy.x + enemy.image.get_width()) and (
bullet.y > enemy.y and bullet.y < enemy.y + enemy.image.get_height()
):
enemy.restart()
bullet.active = False
#增加返回值
return True
return False
pygame.init()
screen = pygame.display.set_mode((450, 800), 0, 32)
pygame.display.set_caption("Hello, World!")
background = pygame.image.load('back.jpg').convert()
plane = Plane()
bullets = []
for i in range(10):
bullets.append(Bullet())
count_b =len(bullets)
index_b=0
interval_b=0
gameover = False
score = 0
font = pygame.font.Font(None, 32)
enemies = []
for i in range(5):
enemies.append(Enemy())
#加载子弹图像
#初始化子弹位置
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
if gameover and event.type == pygame.MOUSEBUTTONUP:
plane.restart()
for e in enemies:
e.restart()
for b in bullets:
b.active = False
score = 0
gameover = False
interval_b-=1
screen.blit(background, (0,0))
if not gameover:
if interval_b<0:
bullets[index_b].restart()
interval_b=100
index_b=(index_b+1)%count_b
for b in bullets:
if b.active:
for e in enemies:
if checkHit(e, b):
score+=100
b.move()
screen.blit(b.image,(b.x,b.y))
for e in enemies:
if checkCrash(e, plane):
gameover = True
e.move()
screen.blit(e.image, (e.x, e.y))
screen.blit(plane.image, (plane.x, plane.y))
plane.move()
text = font.render("Socre: %d" % score, 1, (0, 0, 0))
screen.blit(text, (0, 50))
else:
text = font.render("Socre: %d" % score, 1, (0, 0, 0))
screen.blit(text, (190, 400))
pygame.display.update()