Warum bewegen sich andere Objekte, die sich nicht im Python/Ursina -Motor bewegen sollten?Python

Python-Programme
Anonymous
 Warum bewegen sich andere Objekte, die sich nicht im Python/Ursina -Motor bewegen sollten?

Post by Anonymous »

Ich erstelle ein Spiel mit der Ursina -Engine. Ich fügte meinem Charakter eine einfache glattfolie hinzu. Bei SmoothFollow bemerkte ich, dass Objekte, die an den X- und Y -Koordinaten der Kamera (Gesundheitsstangen, Ebenen usw.) befestigt waren, leicht in die Richtung verschoben wurden, in die sich der Charakter bewegte, aber als der Charakter angehalten wurde, kehrten die Objekte in ihre ursprünglichen Positionen zurück. Es kann ein einfaches Problem sein, aber dieses Problem macht das Spiel wirklich hässlich. Hier ist der Python -Code: < /p>

Code: Select all

from ursina import *
import random

app = Ursina()

Mermiler = []
back = Entity(model="quad", z = 4, scale=(70,40,1), texture="Back.png")
mermiat = True
mertim = 0
can = 5
kill = 0
level = 0
dushiz = 4

class Dusman(Entity):
def __init__(self,x,y):
super().__init__()
self.model = "quad"
self.scale = (2.08,1.04)
self.x = x
self.y = y
self.collider = "box"
self.texture = "Dusman.png"

def update(self):
global can, oyun, Ens, kill, dushiz

if oyun == True:
if self.x > Player.x and self.y > Player.y:
self.x -= dushiz * time.dt
self.y -= dushiz * time.dt

elif self.x > Player.x and self.y < Player.y:
self.x -= dushiz * time.dt
self.y += dushiz * time.dt

elif self.x < Player.x and self.y > Player.y:
self.x += dushiz * time.dt
self.y -= dushiz * time.dt

elif self.x < Player.x and self.y < Player.y:
self.x += dushiz * time.dt
self.y += dushiz * time.dt

for mermi in Mermiler[:]:
if self.intersects(mermi).hit:
destroy(self)
destroy(mermi)
Mermiler.remove(mermi)
Ens -= 1
kill += 1

if self.intersects(Player).hit:
can -= 1
destroy(self)
Ens -=1

class Mermi(Entity):
def __init__(self):
super().__init__()
self.model = "quad"
self.position = Player.position
self.rotation_z = Player.rotation_z
self.scale = (0.25,0.5)
self.collider = "box"
self.texture = "Mermi.png"

class particle(Entity):
def __init__(self,x,y):
super().__init__()
self. model = "quad"
self.scale = 0.293
self.x = x
self.y = y
self.z = -3
self.texture = "Duman.png"

def update(self):
self.scale -= 0.19 * time.dt
ax = random.uniform(-0.5,0.5)
ay = random.uniform(-0.5,0.5)
self.x += ax * 3.4 * time.dt
self.y += ay * 3.4 * time.dt
self.rotation_z += 2 * time.dt
if self.scale  19 and held_keys["w"]:
self.y = 15

elif self.y <  -19 and held_keys["s"]:
self.y = -15

if mermiat == False and mertim >= 1.0:
mermiat = True
mertim = 0

elif mermiat == True and mertim >= 1.0:
mertim = 0

if mermiat == True:
BulletBar.scale_x = 12

if mermiat == False:
BulletBar.scale_x = mertim * 10

def SpawnEnemy1():
global oyun, Ens
if oyun == True:
rx = random.uniform(-35.0,35.0)
Dusman(x=rx,y=20)
Ens += 1

def SpawnEnemy2():
global oyun, Ens
if oyun == True:
rx = random.uniform(-35.0,35.0)
Dusman(x=rx,y=-20)
Ens += 1

def SpawnEnemy3():
global oyun, Ens
if oyun == True:
ry = random.uniform(-20.0,20.0)
Dusman(x=35,y=ry)
Ens +=1

def SpawnEnemy4():
global oyun, Ens
if oyun == True:
ry = random.uniform(-20.0,20.0)
Dusman(x=-35,y=ry)
Ens += 1

spwn1 = 0
spwn2 = 0
spwn3 = 0
spwn4 = 0

Player = Karakter()
BulletBar = Entity(model = "quad", position = (-13,-9,-2),scale=(12,0.5,1), color="FFFF00", origin=(-0.5,0,0))
HealthBar = Entity(model = "quad", position = (-13,-7.5,-2),scale=(12,1,1), color="FF0000", origin=(-0.5,0,0))
levelgos = Entity(model="quad", position=(-16,10,-2),scale=(12.3,3.3,1), texture="level-1.png")
gamewon = Entity(model="quad", position=(0,0), texture="Bink.png")
oyun = True
Ens = 0

spawnspeed = 6

def update():
global spwn1, spwn2, spwn3, spwn4, can, oyun, Ens, kill, level, spawnspeed, dushiz
BulletBar.x = camera.x - 13
BulletBar.y = camera.y - 9
HealthBar.x = camera.x - 13
HealthBar.y = camera.y - 7.5

HealthBar.scale_x = can * 2.4

spwn1 += time.dt
spwn2 += time.dt
spwn3 += time.dt
spwn4 += time.dt

level = (kill // 20) + 1

levelgos.x = camera.x - 15
levelgos.y = camera.y + 10.2

for mermi in Mermiler[:]:
if abs(mermi.x) > (abs(Player.x) + 5) or abs(mermi.y) >  (abs(Player.y) + 5):
Mermiler.remove(mermi)
destroy(mermi)

else:
if mermi.rotation_z == 0:
mermi.y += 4 * time.dt

elif mermi.rotation_z == 180:
mermi.y -= 4 * time.dt

elif mermi.rotation_z == 90:
mermi.x += 4 * time.dt

elif mermi.rotation_z == 270:
mermi.x -= 4 * time.dt

if spwn1 >= spawnspeed:
spwn1 = 0
if Ens = spawnspeed:
if Ens = spawnspeed:
if Ens= spawnspeed:
if Ens

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post