Top.Mail.Ru
Ответы

Что не так в python

Вот код

from panda3d.core import Point3, Vec3
from direct.showbase.ShowBase import ShowBase
from direct.task import Task
from direct.interval.IntervalGlobal import Sequence
from math import sin, cos, radians

class ShooterGame(ShowBase):
def __init__(self):
ShowBase.__init__(self)

# Настройка камеры
self.disableMouse()
self.camera.set_pos(0, -10, 2)
self.camera.look_at(0, 0, 0)

# Добавление земли
self.create_ground()

# Инициализация переменных
self.player_pos = Point3(0, 0, 0)

# Добавление игрока
self.create_player()

# Обработчик событий для управления
self.accept('arrow_left', self.move_left)
self.accept('arrow_right', self.move_right)
self.accept('arrow_up', self.move_forward)
self.accept('arrow_down', self.move_backward)
self.accept('space', self.shoot)

# Перемещение камеры
self.taskMgr.add(self.update_camera, "update_camera")

def create_ground(self):
ground = self.loader.loadModel("models/plane")
ground.reparent_to(self.render)
ground.set_scale(10, 10, 1)
ground.set_pos(0, 0, 0)
ground.set_color(0.2, 0.8, 0.2, 1) # зеленый цвет
ground.set_bin('ground', 0)

def create_player(self):
self.player = self.loader.loadModel("models/smiley")
self.player.reparent_to(self.render)
self.player.set_scale(0.5, 0.5, 0.5)
self.player.set_pos(self.player_pos)

def move_left(self):
self.player.set_x(self.player.get_x() - 0.1)

def move_right(self):
self.player.set_x(self.player.get_x() + 0.1)

def move_forward(self):
self.player.set_y(self.player.get_y() + 0.1)

def move_backward(self):
self.player.set_y(self.player.get_y() - 0.1)

def shoot(self):
bullet = self.loader.loadModel("models/smiley")
bullet.reparent_to(self.render)
bullet.set_scale(0.1, 0.1, 0.1)
bullet.set_pos(self.player.get_pos())
bullet.set_color(1, 0, 0, 1) # красный цвет
# Анимация пули
bullet.set_z(1) # Начальная высота
bullet_sequence = Sequence(
bullet.posInterval(1, Point3(bullet.get_x(), bullet.get_y() + 10, 1), startPos=bullet.get_pos()),
bullet.remove_node()
)
bullet_sequence.start()

def update_camera(self, task):
self.camera.look_at(self.player)
return Task.cont

if __name__ == "__main__":
game = ShooterGame()
game.run()

По дате
По Рейтингу
Аватар пользователя
Просветленный
2мес

Ошибка прямо вопит: Couldn't load file models/plane.egg. Not found on model path. Оно слепое или файлы лежат не там? Перепроверь пути для моделей.

Аватар пользователя
Искусственный Интеллект
2мес

Ты читать не умеешь? В панде нет такой модели

Аватар пользователя
Профи
2мес

нейронке дай код этот, она исправит

Аватар пользователя
Мыслитель
2мес

иии что это