Когда я пытаюсь разбить блок, сгенерированный кодом генерации ландшафта, ничего не происходит, никаких ошибок трассировки ничего не происходит, когда я щелкаю правой кнопкой мыши по блоку, сгенерированному функцией генерации ландшафта. блок создается из класса вокселей и добавляется к списку фрагментов, который повторяется функциейgenerate_terrain. вот код:
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ
from ursina import *
from numpy import floor
from perlin_noise import PerlinNoise
from ursina.prefabs.first_person_controller import FirstPersonController
RENDER_DISTANCE = 5 # How far to render terrain from player
AMPLITUDE = 8
FREQUENCY = 24
SEED = 42
chunks = []
noise = PerlinNoise(octaves=3, seed=SEED)
Minecraft = Ursina(
title='Minecraft',
borderless=False,
vsync=False,
show_ursina_splash= True)
player = FirstPersonController()
def input(key):
if key == 'escape':
quit()
class Voxel(Button):
def __init__(self, position=(0,0,0)):
super().__init__(
parent=scene,
position=position,
model='cube',
origin_y=0.5,
texture='white_cube',
color=color.white,
highlight_color=color.lime
)
def input(self, key):
if self.hovered:
if key == 'left mouse down':
Voxel(position=self.position + mouse.normal)
elif key == 'right mouse down':
if self in chunks:
chunks.remove(self)
destroy(self)
def generate_terrain(player):
"""Generate terrain blocks around the player."""
global amp, freq
for i in range(RENDER_DISTANCE * RENDER_DISTANCE):
x = floor((i / RENDER_DISTANCE) + player.x - 0.5 * RENDER_DISTANCE)
z = floor((i % RENDER_DISTANCE) + player.z - 0.5 * RENDER_DISTANCE)
y = floor(noise([x / FREQUENCY, z / FREQUENCY]) * AMPLITUDE)
# Create a terrain block using the Voxel class
voxel = Voxel(position=(x, y, z))
chunks.append(voxel)
def update():
# Delete chunks outside render distance
for chunk in chunks[:]: # Use slice copy to avoid modification during iteration
distance = abs(chunk.x - player.x) + abs(chunk.z - player.z)
if distance > RENDER_DISTANCE * 2:
destroy(chunk)
chunks.remove(chunk)
# Generate new terrain
generate_terrain(player)
Minecraft.run()
Подробнее здесь: https://stackoverflow.com/questions/793 ... raft-clone
Я не могу сломать блок, созданный ландшафтом, в своем клоне Minecraft. ⇐ Python
Программы на Python
1736974485
Anonymous
Когда я пытаюсь разбить блок, сгенерированный кодом генерации ландшафта, ничего не происходит, никаких ошибок трассировки ничего не происходит, когда я щелкаю правой кнопкой мыши по блоку, сгенерированному функцией генерации ландшафта. блок создается из класса вокселей и добавляется к списку фрагментов, который повторяется функциейgenerate_terrain. вот код:
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ
from ursina import *
from numpy import floor
from perlin_noise import PerlinNoise
from ursina.prefabs.first_person_controller import FirstPersonController
RENDER_DISTANCE = 5 # How far to render terrain from player
AMPLITUDE = 8
FREQUENCY = 24
SEED = 42
chunks = []
noise = PerlinNoise(octaves=3, seed=SEED)
Minecraft = Ursina(
title='Minecraft',
borderless=False,
vsync=False,
show_ursina_splash= True)
player = FirstPersonController()
def input(key):
if key == 'escape':
quit()
class Voxel(Button):
def __init__(self, position=(0,0,0)):
super().__init__(
parent=scene,
position=position,
model='cube',
origin_y=0.5,
texture='white_cube',
color=color.white,
highlight_color=color.lime
)
def input(self, key):
if self.hovered:
if key == 'left mouse down':
Voxel(position=self.position + mouse.normal)
elif key == 'right mouse down':
if self in chunks:
chunks.remove(self)
destroy(self)
def generate_terrain(player):
"""Generate terrain blocks around the player."""
global amp, freq
for i in range(RENDER_DISTANCE * RENDER_DISTANCE):
x = floor((i / RENDER_DISTANCE) + player.x - 0.5 * RENDER_DISTANCE)
z = floor((i % RENDER_DISTANCE) + player.z - 0.5 * RENDER_DISTANCE)
y = floor(noise([x / FREQUENCY, z / FREQUENCY]) * AMPLITUDE)
# Create a terrain block using the Voxel class
voxel = Voxel(position=(x, y, z))
chunks.append(voxel)
def update():
# Delete chunks outside render distance
for chunk in chunks[:]: # Use slice copy to avoid modification during iteration
distance = abs(chunk.x - player.x) + abs(chunk.z - player.z)
if distance > RENDER_DISTANCE * 2:
destroy(chunk)
chunks.remove(chunk)
# Generate new terrain
generate_terrain(player)
Minecraft.run()
Подробнее здесь: [url]https://stackoverflow.com/questions/79322117/i-cant-break-terrain-generated-block-in-my-mincraft-clone[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия