import pygame
import os
import random
pygame.font.init()
WIDTH = 750
HEIGHT = 600
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
COOLDOWN = 30
#imageları yüklemek
# #arkaplan
BG = pygame.image.load(os.path.join('assets', 'background_space.png'))
#görev gemisi
MISSION_SHIP = pygame.image.load(os.path.join('assets', 'mission_ship.png'))
#düşman gemisi
RED_ENEMY_SHIP = pygame.image.load(os.path.join("assets", "enemy_ship_red.png"))
GREEN_ENEMY_SHIP = pygame.image.load(os.path.join("assets", "enemy_ship_green.png"))
BLUE_ENEMY_SHIP = pygame.image.load(os.path.join("assets", "enemy_ship_blue.png"))
#player lazerleri
PLAYER_LASER = pygame.image.load(os.path.join("assets", "blue_rocket.png"))
#düşman lazerleri
LASER01 = pygame.image.load(os.path.join("assets", "laser01.png"))
LASER02 = pygame.image.load(os.path.join("assets", "laser02.png"))
LASER03 = pygame.image.load(os.path.join("assets", "laser03.png"))
def collide(object1, object2):
offset_x = object2.x - object1.x
offset_y = object2.y - object1.y
return object1.mask.overlap(object2.mask, (offset_x, offset_y)) != None
class Laser():
def __init__(self, x, y, img):
self.x = x
self.y = y
self.img = img
self.mask = pygame.mask.from_surface(self.img)
def move(self, velocity):
self.y += velocity
def draw(self, window):
window.blit(self.img, (self.x, self.y))
def collision(self, object):
return collide(object, self)
class Ship():
def __init__(self, x, y, health=100):
self.x = x
self.y = y
self.health = health
self.ship_img = None
self.laser_img = None
self.lasers = []
self.cool_down_counter = 0
def cool_down(self):
if self.cool_down_counter >= COOLDOWN:
self.cool_down_counter = 0
else:
self.cool_down_counter += 1
def shoot(self):
if self.cool_down_counter == 0:
laser = Laser(self.x, self.y, self.laser_img)
self.lasers.append(laser)
def move_lasers(self, velocity, object):
self.cool_down() #ne kadar sürede bir lazer atacak
for laser in self.lasers:
laser.move(velocity)
if laser.collision(object):
object.health -= 10 #düşman lazeri görev gemisine çarptığında canının 10'da 1'ini götür
self.lasers.remove(laser) #lazer çarptıktan sonra lazeri yok et
def draw(self, window):
window.blit(self.ship_img, (self.x, self.y))
for laser in self.lasers:
laser.draw(window)
def get_width(self):
return self.ship_img.get_width()
def get_height(self):
return self.ship_img.get_height()
class PlayerShip(Ship):
def __init__(self, x, y, health=100):
super().__init__(x, y, health)
self.ship_img = MISSION_SHIP
self.lazer_img = PLAYER_LASER
self.mask = pygame.mask.from_surface(self.ship_img)
def shoot(self):
if self.cool_down_counter == 0:
laser = Laser(self.x+20, self.y, self.laser_img)
self.lasers.append(laser)
def move_lasers(self, velocity, objects):
self.cool_down()
for laser in self.lasers:
laser.move(velocity)
for object in objects:
if laser.collision(object):
objects.remove(object) #düşman gemilerine lazer çarptığında germileri yok et
self.lasers.remove(laser)
class EnemyShip(Ship):
COLOR_MAP = {
"red": [RED_ENEMY_SHIP, LASER01],
"green": [GREEN_ENEMY_SHIP, LASER02],
"blue": [BLUE_ENEMY_SHIP, LASER03]
}
def __init__(self, x, y, color, health=100):
super().__init__(x, y, health)
self.ship_img, self.laser_img = self.COLOR_MAP[color]
self.mask = pygame.mask.from_surface(self.ship_img)
def move(self, velocity):
self.y += velocity
def shoot(self):
if self.cool_down_counter == 0:
laser = Laser(self.x+5, self.y, self.laser_img)
self.lasers.append(laser)
def main():
run = True
FPS = 60 #saniye başına hareket hızı ayarlama
enemies = []
enemy_velocity = 1
laser_velocity = 5
enemy_length = 0
level = 0
main_font = pygame.font.SysFont("Algerian", 30)
player_velocity = 5 #gemilerin hızı
clock = pygame.time.Clock()
player = PlayerShip(350, 490)
def draws():
WIN.blit(BG, (0, 0))
player.draw(WIN)
level_label = main_font.render("LEVEL: {}".format(level), 1, (255, 255, 255))
WIN.blit(level_label, (600, 10))
for enemy in enemies:
enemy.draw(WIN)
pygame.display.update() #arkaplan resmini günceller
while run:
clock.tick(FPS)
draws()
if len(enemies) == 0:
enemy_velocity += 1
laser_velocity += 1
enemy_length += 5
level += 1
global COOLDOWN
COOLDOWN -= 5 #her seviyede 5 frame daha hızlı roket
for i in range(enemy_length):
enemy = EnemyShip(random.randrange(1, 700), random.randrange(-1500, -100),
random.choice(["red", "blue", "green"]))
enemies.append(enemy)
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False #programın sonsuz döngüye girmesini engeller
keys = pygame.key.get_pressed()
#gemiyi 4 yöne hareket ettirme
if keys[pygame.K_LEFT] and player.x > 0: #and kısmından sonrası geminin pencere dışına çıkmasını engeller
player.x -= player_velocity
if keys[pygame.K_RIGHT] and player.x < 670:
player.x += player_velocity
if keys[pygame.K_UP] and player.y > 0:
player.y -= player_velocity
if keys[pygame.K_DOWN] and player.y < 490:
player.y += player_velocity
if keys[pygame.K_SPACE]:
player.shoot()
for enemy in enemies:
enemy.move(enemy_velocity)
enemy.move_lasers(laser_velocity, player)
if random.randrange(0, 10) == 1:
enemy.shoot()
if enemy.y > HEIGHT:
enemies.remove(enemy)
player.move_lasers(-laser_velocity, enemies)
main()
Думаю, с моим кодом проблем нет, но я запускаю игру и нажимаю пробел, чтобы выстрелить, но игра внезапно закрывается и выдает следующие ошибки:
Traceback (последний вызов последний):
Файл "C:\Users\cemre\PycharmProjects\SpaceInvaders\main.py", строка 220, в
main()
Файл "C :\Users\cemre\PycharmProjects\SpaceInvaders\main.py", строка 205, в основном
player.shoot()
файле "C:\Users\cemre\PycharmProjects\SpaceInvaders\main.py" , строка 106, в Shoot
laser = Laser(self.x+20, self.y, self.laser_img)
Файл "C:\Users\cemre\PycharmProjects\SpaceInvaders\main.py", строка 43 в init
self.mask = pygame.mask.from_surface(self.img)
TypeError: аргумент 1 должен быть pygame.surface.Surface, а не None
пожалуйста, помогите мне, это мой последний проект
def move_lasers(self, velocity, object): self.cool_down() #ne kadar sürede bir lazer atacak for laser in self.lasers: laser.move(velocity) if laser.collision(object): object.health -= 10 #düşman lazeri görev gemisine çarptığında canının 10'da 1'ini götür self.lasers.remove(laser) #lazer çarptıktan sonra lazeri yok et
def draw(self, window): window.blit(self.ship_img, (self.x, self.y)) for laser in self.lasers: laser.draw(window)
def move_lasers(self, velocity, objects): self.cool_down() for laser in self.lasers: laser.move(velocity) for object in objects: if laser.collision(object): objects.remove(object) #düşman gemilerine lazer çarptığında germileri yok et self.lasers.remove(laser)
if len(enemies) == 0: enemy_velocity += 1 laser_velocity += 1 enemy_length += 5 level += 1 global COOLDOWN COOLDOWN -= 5 #her seviyede 5 frame daha hızlı roket
for i in range(enemy_length): enemy = EnemyShip(random.randrange(1, 700), random.randrange(-1500, -100), random.choice(["red", "blue", "green"]))
enemies.append(enemy)
for event in pygame.event.get(): if event.type == pygame.QUIT: run = False #programın sonsuz döngüye girmesini engeller
keys = pygame.key.get_pressed()
#gemiyi 4 yöne hareket ettirme if keys[pygame.K_LEFT] and player.x > 0: #and kısmından sonrası geminin pencere dışına çıkmasını engeller player.x -= player_velocity
if keys[pygame.K_RIGHT] and player.x < 670: player.x += player_velocity
if keys[pygame.K_UP] and player.y > 0: player.y -= player_velocity
if keys[pygame.K_DOWN] and player.y < 490: player.y += player_velocity
if keys[pygame.K_SPACE]: player.shoot()
for enemy in enemies: enemy.move(enemy_velocity) enemy.move_lasers(laser_velocity, player) if random.randrange(0, 10) == 1: enemy.shoot()
if enemy.y > HEIGHT: enemies.remove(enemy)
player.move_lasers(-laser_velocity, enemies)
main() [/code] Думаю, с моим кодом проблем нет, но я запускаю игру и нажимаю пробел, чтобы выстрелить, но игра внезапно закрывается и выдает следующие ошибки: Traceback (последний вызов последний): Файл "C:\Users\cemre\PycharmProjects\SpaceInvaders\main.py", строка 220, в main() Файл "C :\Users\cemre\PycharmProjects\SpaceInvaders\main.py", строка 205, в основном player.shoot() файле "C:\Users\cemre\PycharmProjects\SpaceInvaders\main.py" , строка 106, в Shoot laser = Laser(self.x+20, self.y, self.laser_img) Файл "C:\Users\cemre\PycharmProjects\SpaceInvaders\main.py", строка 43 в [b]init[/b] self.mask = pygame.mask.from_surface(self.img) TypeError: аргумент 1 должен быть pygame.surface.Surface, а не None пожалуйста, помогите мне, это мой последний проект
Я использую селен для получения описания SSIC на основе UEN компании и для печати результатов. Однако при запуске кода я получаю следующее сообщение об ошибке:
TimeoutException Traceback (самый последний вызов — последний) в 10 submit =...
Я пытаюсь получить данные NSE, используя Yahoo Finance в Python. Я использую файл EQUITY_L.csv, который доступен на веб-сайте NSE, для получения минимальной и максимальной цены акций за определенный период, а также пытаюсь получить текущую рыночную...
for i in range(int(input())):
N = int(input())
A = list(map(int,input().split()))
holidays = 8
if A ==6 or A ==7 or A ==13 or A ==14 or A ==20 or A ==21 or A ==27 or A ==28:
holidays-=1
print(holidays)
else:
print(holidays+N)
Я пытаюсь запустить один кофе, но он говорит это на Python:
Traceback (most recent call last): File file.py , line 1, in
num1 = int(input( Enter First Number: )) EOFError: EOF when reading a line