Problem mit FirstPersonController in UrsinaPython

Python-Programme
Anonymous
 Problem mit FirstPersonController in Ursina

Post by Anonymous »

Ich verwende die Ursina-Engine, um ein 3D-Spiel zu erstellen. Wenn ich jedoch versuche, den FirstPersonCharacter zu laden, erhalte ich nur einen grauen Hintergrund (normal) und ein sehr kleines magentafarbenes Quadrat in der Mitte, das um 45° geneigt ist. Was ist das?
Ich habe zuerst versucht, meine eigene Mechanik für einen Ego-Charakter zu erstellen, die Kamera entsprechend der Mausposition zu bewegen (ich habe das), und ich habe mit Mathematik und anderen Dingen für Bewegungen gespielt ... Ich habe mir dieses Video () für etwas ganz anderes angesehen und bin auf den FirstPersonController gestoßen.
Aber mit dem (fast) gleichen Code wie ihm, es funktioniert nicht! Was ist das für ein Problem? Ist schon jemand darauf gestoßen? Ist FirstPersonController kaputt? Oder ist mein Gehirn kaputt?
Bearbeiten: Habe im Ursina-Spickzettel herausgefunden, dass das kleine magentafarbene, geneigte Quadrat der Cursor ist. Aber ich kann mich immer noch nicht bewegen, kann ich keine Schwerkraft haben oder so? Und ich kann meine Etage nicht sehen.
Zweite Bearbeitung: Mithilfe eines Codes, den das Ursina-Cheatsheet bereitgestellt hat, arrangiert, kann ich jetzt meine Etage sehen. Aber ich kann die Kamera nur auf einer Achse bewegen (auf und ab), ich kann mich nicht bewegen, keine Schwerkraft, nichts...
Hier ist mein Code:

Code: Select all

from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController

app = Ursina()

window.title = 'The lab'
window.borderless = False
window.fullscreen = True
window.exit_button.visible = False
window.fps_counter.enabled = True

floorcubes = []
for i in range(-20, 20, 2):
for j in range(-20, 20, 2):
floorcubes.append(Entity(model='cube', color=color.white, scale=(2,2,2), position = (i, 0, j)))
player = FirstPersonController()
app.run()
Hier ist der im Ursina-Cheatsheet bereitgestellte Code, etwas arrangiert:

Code: Select all

from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController
app = Ursina()
ground = Entity(model='plane', scale=(100,1,100), color=color.yellow.tint(-.2), texture='white_cube', texture_scale=(100,100), collider='box', position = (0, -2, 0), grounded = True)
e = Entity(model='cube', scale=(1,5,10), x=2, y=.01, rotation_y=45, collider='box', texture='white_cube')
e.texture_scale = (e.scale_z, e.scale_y)
e = Entity(model='cube', scale=(1,5,10), x=-2, y=.01, collider='box', texture='white_cube')
e.texture_scale = (e.scale_z, e.scale_y)

player = FirstPersonController(model='cube', y=2, origin_y=-.5, gravity = 1)
player.gun = None

gun = Button(parent=scene, model='cube', color=color.blue, origin_y=-.5, position=(3,0,3), collider='box')
gun.on_click = Sequence(Func(setattr, gun, 'parent', camera), Func(setattr, player, 'gun', gun))

gun_2 = duplicate(gun, z=7, x=8)
slope = Entity(model='cube', collider='box', position=(0,0,8), scale=6, rotation=(45,0,0), texture='brick', texture_scale=(8,8))
slope = Entity(model='cube', collider='box', position=(5,0,10), scale=6, rotation=(80,0,0), texture='brick', texture_scale=(8,8))

def input(key):
if key == 'left mouse down' and player.gun:
gun.blink(color.orange)
bullet = Entity(parent=gun, model='cube', scale=.1, color=color.black)
bullet.world_parent = scene
bullet.animate_position(bullet.position+(bullet.forward*50), curve=curve.linear, duration=1)
destroy(bullet, delay=1)
app.run()
Dank der Antwort habe ich jetzt:

Code: Select all

from ursina import *
from ursina.prefabs.first_person_controller import FirstPersonController
import pyautogui
import random
import math

app = Ursina()

is_fullscreen = True
window.title = 'The lab'
window.borderless = False
window.fullscreen = is_fullscreen
window.exit_button.visible = False
window.fps_counter.enabled = True

latest_mouse_pos = pyautogui.position()
pyautogui.FAILSAFE = False
sensibility = 2.5
mouse.visible = True

floorcube = Entity(model="cube", color = color.white, scale=(20, 1, 20), collider="box", position=(0, -100, 0))

def update():
global latest_mouse_pos
if held_keys['f']:
camera.fov += 1
if held_keys['r']:
camera.fov -= 1

player = FirstPersonController()

app.run()

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post