鱼C论坛

 找回密码
 立即注册
查看: 1219|回复: 3

外星人入侵求助

[复制链接]
发表于 2020-7-4 11:09:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1.主程序
import sys
import pygame
from settings import Setting as st
from ship import *
import game_functions as gf
def run_game():
    """初始化游戏 并创建一个1200x800的一个屏幕对象"""
    pygame.init()
    #创建一个seings的实例对象
    setting = st()
    screen = pygame.display.set_mode((setting.screen_width,setting.screen_height))
    pygame.display.set_caption("liuxingyu")
#设置背景颜色
    #创建一个飞船吧
    ship = Ship(screen)
         while True:
        #监视鼠标和键盘事件
        gf.check_events(ship)
        #for event in pygame.event.get():
            #if event.type == pygame.QUIT:
                #pygame.quit()
                #sys.exit()
        ship.update()
        #每次循环都重绘屏幕
        screen.fill(setting.be_color)
        ship.blitem()

    #让最近的屏幕刷新可见
        pygame.display.flip()
run_game()

2.ship
import pygame
class Ship():
    def __init__(self,screen):
    #初始化飞船并为其设置开始位置
        self.screen =screen
    #加载飞船的图片并设置其接近矩形
        self.airship='F://python//alien_invasion//images//ship.bmp'
        self.image = pygame.image.load(self.airship)
        self.rect = self.image.get_rect()
        self.screen_rect = screen.get_rect()
        #这个函数表示显示一个suface 而我们将suface存放在self.image中
    #将每架飞船存放在屏幕底部中央
        self.rect.centerx =self.screen_rect.centerx
        self.rect.bottom =self.screen_rect.bottom
        #移动标志
        self.move_right = False
        self.move_left = False
    def update(self):
        if self.move_right:
            self.rect.centerx +=1
        if self.move_right:
            self.rect.centerx -=1
    def blitem(self):
        #在指定的地方生成一个飞机
        self.screen.blit(self.image,self.rect)

3.响应键盘和鼠标的模块
import pdb  
import sys
import pygame
def check_events(ship):
    """响应鼠标和键盘的事件"""
    for event in pygame.event.get():
        if event.type ==pygame.QUIT:
            pygame.quit()
            sys.exit
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RIGHT:
                ship.move_right = True
            elif event.key == pygame.K_LEFT:
                ship.move_left = True
        elif event.type == pygame.KEYUP:
            if event.key == pygame.K_RIGHT:
                ship.move_right = False
            elif event.key == pygame.K_LEFT:
                ship.move_left = False
4.报错
Traceback (most recent call last):
  File "F:\python\alien_invasion\alien_invasion.py", line 42, in <module>
    run_game()
  File "F:\python\alien_invasion\alien_invasion.py", line 35, in run_game
    screen.fill(setting.be_color)
pygame.error: display Surface quit

求解(自己在百度找了一些办法但是弄了之后飞船就无法移动了)
如果有别的地方有错希望大神们多多指导哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-4 11:10:38 | 显示全部楼层
之前向右还是可以移动的但是加了左边就这样了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-25 18:58:34 | 显示全部楼层
这是飞机大战,什么外星人入侵啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-25 20:06:17 | 显示全部楼层
陈尚涵 发表于 2020-7-25 18:58
这是飞机大战,什么外星人入侵啊

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 20:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表