Почему другие объекты не должны двигаться в двигателе Python/Ursina?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему другие объекты не должны двигаться в двигателе Python/Ursina?

Сообщение Anonymous »

Я создаю игру, используя двигатель Ursina. Я добавил простой плавную сплюснув к своему персонажу. С SmoothFollow я заметил, что объекты, прикрепленные к координатам x и Y камеры (стержни здоровья, счетчики уровня и т. Д.) Слегка сдвинулись в направлении, в котором персонаж движется, но когда символ остановился, объекты возвращались в свои исходные позиции. Это может быть простой проблемой, но эта проблема действительно делает игру уродливой. Вот код Python: < /p>
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

Подробнее здесь: https://stackoverflow.com/questions/797 ... ina-engine
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»