设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Pygame 第7课】 多变的宿敌

[复制链接]

1

主题

0

好友

19

积分

新手上路

Rank: 1

楼主
发表于 2018-1-30 10:53:06 |显示全部楼层
# -*- coding: utf-8 -*-
import pygame
from sys import exit
import random
from random import randint
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 -= 5
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()
pygame.init()
screen = pygame.display.set_mode((450,800), 0, 32)
pygame.display.set_caption("Hello, Queens!")
background = pygame.image.load('back.jpg').convert()
plane = pygame.image.load('plane.png').convert_alpha()
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()
    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()

但是显示出错:    screen.blit(enemy.image,(enemy.x,enemy.y))
TypeError: invalid destination position for blit
请问先生
回复

使用道具 举报

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

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

GMT+8, 2024-5-18 16:59 , Processed in 0.025399 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部