[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум Panda3D - по русски » Panda3D » Для начинающих » ДеЦЦкий сад "ПандЁнок"
ДеЦЦкий сад "ПандЁнок"
ninthДата: Среда, 07.09.2011, 17:43 | Сообщение # 151
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Code
demon.loop('Demon', fromFrame = 10, toFrame = 20)
 
KornivalДата: Среда, 07.09.2011, 17:55 | Сообщение # 152
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
Спасибо огромное. Прежде чем спросить, облазил весь Python Reference, но натыкался только на эту функцию loop
Code

loop(self, string, int=1, string=None)

Откуда я мог узнать о решении, чтобы в следующий раз не дергать людей по мелочам?
 
ninthДата: Среда, 07.09.2011, 18:14 | Сообщение # 153
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
http://www.panda3d.org/manual/index.php/Main_Page
http://panda3d.org.ru/publ/1-1-0-9
http://panda3d.org.ru/publ/1-1-0-13
 
KornivalДата: Суббота, 10.09.2011, 00:04 | Сообщение # 154
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
Спс

Добавлено (10.09.2011, 00:04)
---------------------------------------------
С помощью define_key можно повесить вызов функции на нажатие клавиши, можно ли подобным образом повесит вызов функции на отпускание клавиши?


Сообщение отредактировал Kornival - Суббота, 10.09.2011, 00:13
 
serg-kkzДата: Суббота, 10.09.2011, 00:30 | Сообщение # 155
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
Так пробовал?
Code
framework.define_key("w-up", "weeds", Move, 0);


ООП  -  
 
KornivalДата: Воскресенье, 11.09.2011, 11:29 | Сообщение # 156
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
Quote (serg-kkz)
Так пробовал?

w_up пробовал, но так не додумался biggrin Спасибо.

Добавлено (11.09.2011, 11:29)
---------------------------------------------
В панде, для отрисовки 2d, очень неудобная система координат, можно ли ее заменить на привычную прямоугольную?

 
serg-kkzДата: Воскресенье, 11.09.2011, 11:50 | Сообщение # 157
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
Quote (Kornival)
В панде, для отрисовки 2d, очень неудобная система координат, можно ли ее заменить на привычную прямоугольную?

В каком смысле не удобная?


ООП  -  
 
KornivalДата: Воскресенье, 11.09.2011, 12:07 | Сообщение # 158
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
К примеру если надо нарисовать текст:
Code

PT(TextNode) text = new TextNode("MyText");
text->set_text("Checking of Panda3D text renderer");
NodePath textNode = window->get_aspect_2d().attach_new_node(text);
textNode.set_pos(-1,0,1);  //Рисуем текст в верхнем левом углу.

Это же кошмар настоящий, а если мне надо рисовать текст на 20 пикселов левее и 14 пикселов ниже угла экрана? Понятно, что при очень большом желании можно переводить(приблизительно) координаты из одной системы в другую руками, но мне интересно есть для этого в панде встроенные средства.


Сообщение отредактировал Kornival - Воскресенье, 11.09.2011, 12:10
 
serg-kkzДата: Воскресенье, 11.09.2011, 13:42 | Сообщение # 159
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
Kornival, есть способ определить соотношение, но в данном случае нужно рассчитывать исходя разрешения это соотношение, я пока думаю об этом. Вот как можно оределить соотношение.

Code
r1 = -base.getAspectRatio()
r2 = base.getAspectRatio()


Нужно дополнительно рассчитать соотношение по разрешению (т.к. это функция выводит для квадрата) и потом рассчитать в обратном порядке, скажем от угла координаты. Мне еще не приходилось этого делать сам разбираюсь. Думаю другии способы есть, но я их пока не знаю.


ООП  -  

Сообщение отредактировал serg-kkz - Воскресенье, 11.09.2011, 13:43
 
ninthДата: Понедельник, 12.09.2011, 16:17 | Сообщение # 160
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Эта фишка сделана чтобы гуи масштабировался в соответствии с экраном.
Если хочется сместить сисему координат - просто можете повесить дочерний узел на аспект, сместить куда нравиться и отмасштабировать в соответствии с вашим разрешением. Смещать и масштабировать по событию ресайза окна. После вешать весь гуи на этот узел
 
KornivalДата: Понедельник, 12.09.2011, 19:58 | Сообщение # 161
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
Ребята, или я вас не понимаю, или вы меня: я говорю не сместить, а сменить, чтобы отрисовывать 2d не в пределах [0;1][0;1], а [0;ScreenWidth][0;ScreenHeight]. Надеюсь вы поняли меня.

Добавлено (12.09.2011, 19:58)
---------------------------------------------
То есть, к примеру, если мне нужно отрисовать спрайт размером 32*32 на весь экран, я мог сделать так:

Code

for(int i = 0; i<ScreenWidth/32; i++)
for(int j = 0; j<ScreenHeight/32; j++)
DrawSprite(i,j);

А с системой координат панды такие вещи делать очень неудобно, хотя мне уже сказали, что aspect_2d заточен под гуи.
 
serg-kkzДата: Понедельник, 12.09.2011, 23:51 | Сообщение # 162
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
Kornival,
Quote (Kornival)
мне надо рисовать текст на 20 пикселов левее и 14 пикселов ниже угла экрана?

Если про это, то вот.

Пример кода.
Code
# -*- coding: utf-8 -*-  
from pandac.PandaModules import *
import direct.directbase.DirectStart
from direct.gui.DirectGui import *
h = 0.1
v = 0.9
Text = OnscreenText(text = "Text", pos = (-base.getAspectRatio()+h, v), scale = 0.07)
run()


А вот про спрайт я тебя не понял.
Прикрепления: 4984404.png (3.3 Kb)


ООП  -  
 
serg-kkzДата: Вторник, 13.09.2011, 00:01 | Сообщение # 163
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
Я как понял, ты хочешь не в отношении указывать, а в координатах?

ООП  -  
 
KornivalДата: Вторник, 13.09.2011, 00:06 | Сообщение # 164
Лейтенант
Группа: Пользователи
Сообщений: 40
Награды: 0
Репутация: 1
Статус: Offline
Quote (serg-kkz)
Я как понял, ты хочешь не в отношении указывать, а в координатах?

Да. Это возможно?
 
serg-kkzДата: Вторник, 13.09.2011, 00:15 | Сообщение # 165
Генерал-полковник
Группа: Модераторы
Сообщений: 803
Награды: 3
Репутация: 18
Статус: Offline
Не знаю, нужно порыться в reference. Или расскажи суть проблемы подробней, может что и придумаем.

ООП  -  
 
Форум Panda3D - по русски » Panda3D » Для начинающих » ДеЦЦкий сад "ПандЁнок"
Поиск: