- 帖子
- 6
- 精华
- 0
- 积分
- 27
- 阅读权限
- 10
- 注册时间
- 2018-1-26
- 最后登录
- 2018-2-9
|
#_*_coding:utf-8 _*_
import pygame
#导入pygame库
from sys import exit
import random
#向sys模块借一个exit函数用来退出程序
class Bullet:
def __init__(self):
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-=3
#把子弹的位置往上移
class Enemy:
def restart(self):
self.x=random.randint(50,400)
self.y=random.randint(-200,-50)
self.speed=random.randint()+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()
pygame.init()
#初始化pygame,为使用硬件做准备
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() #创建一个Bullet实例
enemy=Enemy()
while True:
#游戏主循环
for event in pygame.event.get():
if event.type==pygame.QUIT:
#接收到退出事件后退出程序
pygame.quit()
exit()
screen.blit(background,(0,0))
#将背景图画上去
bullet.move()#调用move方法,处理子弹的运动
screen.blit(bullet.image,(bullet.x,bullet.y))
#把子弹画到屏幕上
#更新敌机位置
enemy.move()
screen.blit(enemy.image,(enemy.x,enemy.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()
#刷新一下画面
---------------------------------------------------------------------------------
代码就是上面那样,但是运行就黑屏,也不报错。
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\450390870\QQ\WinTemp\RichOle\JM6$7%V%I1YK7V7E)MCNAAO.png
|
|