Wątek przeniesiony 2021-12-24 03:18 z Python przez somekind.

Jak obracać postać w Ursinie gdy zmienia kierunek?

0

Chciałbym zrobić że gdy gladiator lub gladiator2 poruszy się w lewo, to obraca się w lewo, a gdy poruszy się w prawo, to obraca się w prawo. Oto kod:

from ursina import*

def update():
    if held_keys['left arrow']:
        gladiator.x -= 1 * 0.1
    if held_keys['right arrow']:
        gladiator.x += 1 * 0.1
    if held_keys['down arrow']:
        gladiator.y -= 1 * 0.1
    if held_keys['up arrow']:
        gladiator.y += 1 * 0.1
    if held_keys['a']:
        gladiator2.x -= 1 * 0.1
    if held_keys['d']:
        gladiator2.x += 1 * 0.1
    if held_keys['s']:
        gladiator2.y -= 1 * 0.1
    if held_keys['w']:
        gladiator2.y += 1 * 0.1

app = Ursina()

window.borderless = False
window.title = 'Arena'
window.fullscreen = True
gladiator_texture = load_texture(r'assets\gladiator-left.gif')
gladiator = Entity(model='quad', texture=gladiator_texture, scale=(4, 4), position=(3, 0))
gladiator2_texture = load_texture(r'assets\gladiator - right.gif')
gladiator2 = Entity(model='quad', texture=gladiator2_texture, scale=(4, 4), position=(-3, 0))
arena_texture = load_texture(r'assets\Download.jpg')
arena = Entity(model='quad', texture=arena_texture, scale=(15, 10))

app.run()
0

Nagłówek Rotating:
https://www.ursinaengine.org/entity_basics.html

W dużym uproszczeniu, po prostu ustaw odpowiedni kąt wtedy, kiedy postać idzie w danym kierunku.

0

@Spine Napiszesz przykład; nie cały kod tylko tą linijkę czy dwie?

0
    if held_keys['left arrow']:
        gladiator.x -= 1 * 0.1
        gladiator.rotation_z = 180
    if held_keys['right arrow']:
        gladiator.x += 1 * 0.1
        gladiator.rotation_z = 0
    if held_keys['down arrow']:
        gladiator.y -= 1 * 0.1
        gladiator.rotation_z = -90

Oczywiście zakładam, że postać domyślnie patrzy w prawo.
Tak poza tym, pisz takie wątki w kategorii Gamedev - https://4programmers.net/Forum/Gamedev/ :)

0

@Spine: Popróbuje z tym, a jest jakaś opcja żeby po prostu obrócić w poziomie? Bo ja ogólnie jestem dosyć nowy w programowaniu, a zwłaszcza w ursinie

@Spine: Obracanie w osi y nic mi nie dało żeby uzyskać ten efekt

1 użytkowników online, w tym zalogowanych: 0, gości: 1