Top.Mail.Ru
Ответы

Помогите с кодом на python

Вообщем, я программирую на phyton и недавно нашел библиотеку: ursina. Изучив ее я захотел сделать свою игру. За основу я взял этот проект: https://github.com/pokepetter/pyweek_30_castaway
Но столкнулся с проблемой. При загрузке новой карты я не смог сделать коллизию. Редактировал карту я в blender 4.1(мой первый опыт работы с blender). Прошу помочь мне, объяснив мне как добавить коллизию в мою игру. Заранее спасибо.Вот мой измененный код(main.py). Не знаю как тут закрепить модель карты. Поэтому могу закрепить только скриншот экрана.


1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
 from ursina import * 
from ursina.prefabs.first_person_controller import FirstPersonController 
 
app = Ursina(    vsync=False,  # Принудительно отключаем вертикальную синхронизацию 
    development_mode=False 
) 
window.fps_counter.enabled = True  # Включаем точный счётчик FPS) 
 
# 1. Загрузка с визуальной диагностикой 
level = Entity( 
    model="assets/new_island.obj", 
    texture="brick ", 
    collider = 'box' 
) 
platform = Entity(model='cube', collider='box', scale=(10000,1,10000), visible=False) 
 
 
 
DirectionalLight(shadow_map_size=1024)  # По умолчанию 4096 (снижаем в 4 раза) 
window.vsync = False 
DirectionalLight(shadows=False)  # Тени сильно нагружают GPU 
 
 
# Освещение (обязательно!) 
DirectionalLight(color=color.white, direction=(1, -1, 0.5)) 
AmbientLight(color=color.light_gray) 
 
# Игрок (стандартный FPS-контроллер) 
player = FirstPersonController( 
    position=(0, 100, 0),  # Высоко над картой 
    speed=10 
) 
 
# Автоматическое опускание на землю 
def update(): 
    hit_info = raycast(player.position, (0,-1,0), distance=100) 
    if hit_info.hit and player.y > hit_info.world_point.y + 2: 
        player.y -= 5 * time.dt  # Плавное падение 
 
def update(): 
    if time.time() % 1 < time.dt: 
        print(f"Real FPS: {1//time.dt}")  # Вывод реального FPS 
 
camera.clip_plane_far = 500 
Sky(texture='castaway_sky', scale=camera.clip_plane_far-1) 
 
app.run() 
По дате
По рейтингу
Аватар пользователя
Мыслитель

Игры на питоне не пишут, забей.



Видео по теме