Помогите с кодом на 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() По дате
По рейтингу
Игры на питоне не пишут, забей.
Видео по теме