设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 10250|回复: 2
打印 上一主题 下一主题

打飞机游戏黑屏怎么解决?麻烦大神看下

[复制链接]

3

主题

0

好友

27

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2018-2-5 14:48:43 |只看该作者 |倒序浏览
#_*_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



回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2018-2-6 10:37:58 |只看该作者
你先把代码去掉大部分,留下核心的一点,看能不能运行,再逐步添加代码。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

3

主题

0

好友

27

积分

新手上路

Rank: 1

板凳
发表于 2018-2-7 09:52:18 |只看该作者
谢谢,找到了一个代码写错了。
class Enemy:
    def restart(self):
        self.x=random.randint(50,400)
        self.y=random.randint(-200,-50)
        self.speed=random.randint()+0.1   写错了,应该self.speed=random.random()+0.1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-4-26 13:54 , Processed in 0.024257 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部