{{notification.text}}

MirGames

17.02.10 16:17
0
DRON
а как с такой картинки анимацию сделать?
в двиге это через матрицу делается или процедура какая есть7
Отредактировано: 17.02.10 16:33
#1
Программир Всия Руси!
17.02.10 16:33
0
DYUMON
Посмотри примеры где я анимирую девочку :)
1. Нужно задать размер одного кадра анимации pTex->SetFrameSize(width, height);
2. можно рендерить, достаточно просто указать кадр анимации uiFrameIndex от 0 до кол-во фреймов -1.
Отредактировано: 18.02.10 22:05
#2
17.02.10 17:20
0
а что значит в этом коде
Код
pRender2D->DrawSpriteA(pTexGirl,TPoint2(550.f,725.f),TPoint2(60.f,120.f),(counter/5)%16,0,EF_BLEND);

строчка
Код
(counter/5)%16

в delphi я сделал так
Код
counter div 5
и теперь огонь ползет :(
#3
18.02.10 00:16
0
DRON
оригинальная картинка 1024ч1024 из сталкера выдрана. попробую размер подогнать по чентность кадров. хоят раньше из контры картинки добывал и в фотошопе сводил в матрицу спрайтов.
да еще вопрос . под чем компилил библиотечку движка?
Отредактировано: 18.02.10 00:19
#4
18.02.10 02:23
0
DRON
Не скомпилился теперь ему какой то afxres.h подавай. ну это на потом. попробовал анимацию сделать . получается что картинки берутся только из верхнего ряда . это можно как то исправить ?
делал так
Код
pRender2d.DrawSpriteA(ptex,Point2(100,100), Point2(90,120),(counter div 2)mod 15,0,EF_BLEND);
#5
Программир Всия Руси!
18.02.10 02:36
0
DYUMON
Ну у меня же девочки спрайт в 2 ряда :) Посмотри например в примере BAtching там астероид крутится :) Ищи ошибки у себя.
#6
18.02.10 02:44
0
DRON
все манипуляции с переменной counter оказались лишними
#7
Steave
20.02.10 14:12
0
Прошу разъяснить как использовать эти функции:
1 GetKey (E_KEYBOARD_KEY_CODES eKeyCode, bool &bPressed)=0
2 GetKeyName (E_KEYBOARD_KEY_CODES eKeyCode, char &cASCIICode)=0
Отредактировано: 20.02.10 15:27
#8
Программир Всия Руси!
20.02.10 14:44
0
Steave
1.
bool pressed;
pInput->GetKey(KEY_ESCAPE, pressed);
if(ressed)
{
нажали ескэйп
}
2.
Получить символ клавитуры по коду клавиши.
#9
Steave
20.02.10 15:29
0
Вот по этому коду плиз)

procedure Process; stdcall;
var pressed:boolean;
d:char;
begin
//óïðàâëåíèå êàìåðîé
pInput.GetKey(Key_Up,pressed);
pInput.GetKeyName(Key_q,d);
Inc(counter);
end;

Ок все норм)
Про инициализацию забыл)
Отредактировано: 20.02.10 16:37
#10
Dever
20.02.10 15:51
0
Steave

движок ковырял мало, но по логике скорей всего так:

Код
procedure Process; stdcall;
var pressed:boolean;
d:char;
begin
pInput.GetKey(Key_Up,pressed);
If pressed then
Begin
/////
End;
pInput.GetKeyName(Key_q,d);
if D='Q' Then
Begin
/////
End;
Inc(counter);
end;


->Тогда ошибка такая:
хз :), надо самому попробывать :)
Отредактировано: 20.02.10 16:32
#11
Dever
20.02.10 16:17
0
А ты получил интерфейс IInput?
ЗЫ: если нет, то в твоём случае это так
В инит
Код
pEngineCore.GetSubsystem(ESS_INPUT,IEngineSubSystem(pInput));


И при выходе
Код
pInput:=nil

ЗЫ: Проверил, всё работает.
Отредактировано: 20.02.10 16:31
#12
Steave
20.02.10 23:11
0
В ДГЛЕ была функция GetScreen... дающая размеры экрана.
Здесь она где?
#13
Программир Всия Руси!
20.02.10 23:31
0
Steave
TEngWindow wnd;
_pEngineCore->GetCurrentWin(wnd);
#14
Dever
21.02.10 04:05
0
Вот пример Basic2D для дельфистов :), правда код немного не похож на Сишный(массивы не стал объявлять сразу с вписанными данными, ИМХО, так не удобно)...
Будет время(завтра наверно) перепишу ещё несколько демок с C++ на Delphi(как раз от своего проекта "отдохну")...
ЗЫ: кинуть в папку с движком, бинарник ,после компиляции, появится в папке с сорсами
ЗЫЗЫ: Бинарник кидать в папку - bin\samples\delphi\
ЗЫЗЫЗЫ:IDE:Delphi10 Lite, но я использовал PAnsiChar дабы не было проблем компиляции в 2009 и 2010
Source.7z


Забыл сказать
Код

  _points:array[0..5] of TPoint2;
  _colors:array[0..5] of TColor4;
...
  _colors[0]:=Color4($FF0000,255);
  _colors[1]:=Color4($AA1100,255);
  _colors[2]:=Color4($000022,255);
  _colors[3]:=Color4($FF4400,255);
  _colors[4]:=Color4($BB0055,255);
  _colors[5]:=Color4($FF6600,255);
  _points[0]:=Point2(289,320);
  _points[1]:=Point2(391,282);
  _points[2]:=Point2(490,298);
  _points[3]:=Point2(507,379);
  _points[4]:=Point2(393,399);
  _points[5]:=Point2(272,364);

Это лишнее и нигде не используется

-> Вот чего не хватало, чтобы лишних вопросов не было))) спс
Пожалуйста ^^
Отредактировано: 21.02.10 05:37
#15
Steave
21.02.10 05:13
0
Вот чего не хватало, чтобы лишних вопросов не было))) спс
#16
21.02.10 16:36
0
Цитата(Dever @ 21.02.2010 - 02:05) [snapback]102018[/snapback]
Delphi10 Lite, но я использовал PAnsiChar дабы не было проблем компиляции в 2009 и 2010
Многие мне известные прогеры ещё 7ую мучают :)
#17
21.02.10 16:48
0
Dy1
я на 6-й сижу частенько ))
#18
kyc0k
21.02.10 19:41
0
Начал разбирать пример с вертолетом(3Din2D), сделал чтоб им можно было управлять(вперед назад, покрутиться).
Вот тут вот pRender2D->SetCamera(
TPoint2(stCopterPos.x, stCopterPos.y),
Поставил чтобы камера центрировалась на вертолете, так когда начинаю им лететь вперед или назад камера начинает постепенно его обгонять.
Как я понял, что то где то я сделал не так, но вот где :blink: ?
#19
Dever
21.02.10 20:02
0
kyc0k
Дык,скорей всего, камере нужно указывать центр меши чтобы вертолёт был полностью в экране...
Ещё можно указывать угол камеры = угол меши
Отредактировано: 21.02.10 20:23
#20
Steave
21.02.10 20:52
0
Нужно нарисовать одну картинку над другой,что фон 1 был прозрачный, то есть не учитывался.
Как это сделать?

А здесь что надо сделать?
Отредактировано: 22.02.10 01:53
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}