#python #ursina
#python #ursina
Вопрос:
я создаю игру в ursina и хочу знать, как я могу вывести что-то, что говорит о его истинности или ложности (например, в логическом значении). потому что игра, которую я создаю, нуждается в столкновении с сущностью. я искал решение, но ничего не могу найти. итак, люди, которые используют ursina, пожалуйста, помогите мне, вот код:
from ursina import *
import random
#variables
speed = 0.05
number_of_pokemon = 10
app = Ursina()
#textures
player_texture = load_texture('pokemon orange assets/player.png')
pokemon_texture1 = load_texture('pokemon orange assets/pokemon.png')
pokemon_texture2 = load_texture('pokemon orange assets/pokemon2.png')
pokemon_texture3 = load_texture('pokemon orange assets/pokemon3.png')
grass_texture = load_texture('pokemon orange assets/grass.png')
textbox_texture = load_texture('pokemon orange assets/textbox.png')
missingno_texture = load_texture('pokemon orange assets/missingno.png')
pokemontextures = [pokemon_texture1, pokemon_texture2, pokemon_texture3]
#entitys: pokemon(s), player, textbox, battles
player = Entity(model = 'cube', texture = player_texture, scale = (1,1,0), position =
(0,0,-0.1))
#textbox = Entity(model ='cube', texture = textbox_texture, scale = (5,1,0), position =
(0,-3,0))
#spawns pokemon
number = random.uniform(0,100)
if(number == 100):
for i in range (100):
pokemon = Entity(model ='cube', texture = missingno_texture, scale = (1,2,0),
position = (random.uniform(-10,10),random.uniform(-10,10),random.uniform(-10,10)))
else:
for i in range(number_of_pokemon):
pokemon = Entity(model ='cube', texture = random.choice(pokemontextures), scale = (1.5,1.5,0), position = (random.uniform(-5,5),random.uniform(-4,4),-0.1))
#spawns grass
for y in range(20):
for x in range(20):
grass = Entity(model ='cube', texture = grass_texture, scale = (1,1,0), position = (x - 10,y - 10,0))
#movement
def update():
player.x = held_keys['d'] * speed
player.x -= held_keys['a'] * speed
player.y = held_keys['w'] * speed
player.y -= held_keys['s'] * speed
app.run()
Ответ №1:
Установите коллайдер и проверьте, пересекается ли ваша сущность с другой:
player = Entity(model='cube',
texture=player_texture,
scale=(1, 1, 0),
position=(0, 0, -0.1),
collider='box') # <-- do the same for all pokemon entities
hit_info = player.intersects()
if hit_info.hit:
print(hit_info.entity)
Комментарии:
1. спасибо за объяснение: D
2. @LucasVuijk если я решил вашу проблему, пожалуйста, рассмотрите возможность голосования и / или пометки ответа как принятого для завершения цикла контроля качества.