[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 20 из 20«12181920
Форум Panda3D - по русски » Panda3D » Для начинающих » ДеЦЦкий сад "ПандЁнок"
ДеЦЦкий сад "ПандЁнок"
pupДата: Пятница, 25.01.2013, 19:05 | Сообщение # 286
Рядовой
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
Про ссылку на экземпляр класса это я знаю. я в коде сервера так делал. при получении вейпоинта создавался отдельный поток в который передавалась ссылка. там просчитывались координаты и получается изменялись во внешнем классе. Но т.к. в питоне нет такой штуки как getDt() пришлось сделать так:

создал
Код
def getDt(self, dt):  
         dt = time.clock() - dt
         return dt


и в апдейте:

Код
dt = time.clock()
dir = b - a    
pos = a + dir * currentTime / duration
currentTime += self.getDt(dt)

но по запарке вместо currentTime я делил dt =))) и накрутил себе что это изза того что я через ссылку изменяю координаты.. а теперь лень назад все переделывать
 
ninthДата: Пятница, 25.01.2013, 20:33 | Сообщение # 287
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Ну в питоне нет дт, потому что нет рендеринга фрейма, хотя если у тебя имеется общий постоянный цикл, то можно эмулировать в нём считая разницу времени от последнего прохода цикла - как я понимаю, ты так и сделал.
 
pupДата: Воскресенье, 27.01.2013, 18:59 | Сообщение # 288
Рядовой
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
почему если в character.py импортировать globals.py то переменные с глобалс не доступны?
 
ninthДата: Понедельник, 28.01.2013, 01:36 | Сообщение # 289
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
А ты как импортировал? import globals или from globals import * ?
 
pupДата: Понедельник, 28.01.2013, 02:52 | Сообщение # 290
Рядовой
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
from modules.globals import * так же как и в маин.ру также как и контролс.ру. но там виден экземпляр класса созданного в глобалс.ру а в characters.py пишет глобал нейм из нот дефайнед

Добавлено (28.01.2013, 02:52)
---------------------------------------------
даже в скачаный урок вставить в character вставить from modules.globals import * и попробовать в нем обратиться к объекту player...

 
ninthДата: Понедельник, 28.01.2013, 08:13 | Сообщение # 291
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
А, ну в characters там получается рекурсивный импорт - globals импортирует characters, а он в свою очередь - globals. Думаю из-за этого. В общем я на схему, которую выше описывал и перешёл в итоге чтобы не иметь таких заморочек.
 
pupДата: Понедельник, 28.01.2013, 16:08 | Сообщение # 292
Рядовой
Группа: Пользователи
Сообщений: 15
Награды: 0
Репутация: 0
Статус: Offline
я не очень понял как там реализовано
 
ninthДата: Понедельник, 28.01.2013, 16:23 | Сообщение # 293
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Ну смотри, у тебя есть некоторый класс "верхнего уровня", назовём его Диспетчер, этот класс содержит ссылки на все твои остальные классы - сцена, игрок, монстры, эффекты, звук. Соответственно к любому объекту кода можно добраться через ссылку на диспетчер.

Код
# -*- coding: utf_8 -*-

class MyApp():
      
     def __init__(self):
         self.my_val = 100500
         self.c1 = Class1(self)
         self.c2 = Class2(self)

class Class1():
     def __init__(self, app):
         self.base = app
         self.name = 'CLASS 1'
         print 'Base value =', self.base.my_val

class Class2():
     def __init__(self, app):
         self.base = app
         self.name = 'CLASS 2'
         print 'Class 1 name is', self.base.c1.name

MyApp()
 
Ps3ZwerДата: Вторник, 04.06.2013, 17:04 | Сообщение # 294
Рядовой
Группа: Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Статус: Offline
У меня вот это вылезает: 
Что делать??? я вводил все правильно.
 
ninthДата: Вторник, 04.06.2013, 18:36 | Сообщение # 295
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Раз вылезло - значит что-то не правильно. Я, например не помню чтобы в файле __init__.py вообще что-то было, так что пока не увижу полностью код - чего-то конкретного не смогу сказать
 
Форум Panda3D - по русски » Panda3D » Для начинающих » ДеЦЦкий сад "ПандЁнок"
Страница 20 из 20«12181920
Поиск: