(28.04.2012 16:17)Sav Wrote: [ -> ]>> - это поразрядный двоичный сдвиг вправо.
Вот видишь, такая фигня - а какой эффект.
Так что упростить как раз и надо.
Так ить если бы я разбирался, конечно я бы сделал уже давно, потому и прошу помочь. Радует что даже сейчас уже можно использовать плавный скролинг без значительных тормозов.
Может еще какие нибудь идеи есть на счет кода? Просто для меня написать самому функцию работы с цветом на низком уровне - это что то не реальное.
(28.04.2012 16:21)Efrit Wrote: [ -> ]totkotoriy, ещё и в строчках типа *pOld = MakeColor16( GetRed (*pOld) + GetAlpha(*pNew)*(GetRed (New) - GetRed (*pOld))/256, тоже не помешало бы произвести замену на ro1, rn1 и иже с ними.
Я уже заменил, но это какая то видать не слишком нужная ветка... наверное если попадется пнг без альфа канала или что-то такое
totkotoriy, попробую оптимизировать. Только у меня проект на MSVC, а не для GCC. Там ещё можно на MMX или SSE перевести, чтобы умножать сразу по два или четыре числа за раз.
(28.04.2012 16:32)etoprostoya Wrote: [ -> ]totkotoriy, попробую оптимизировать. Только у меня проект на MSVC, а не для GCC. Там ещё можно на MMX или SSE перевести, чтобы умножать сразу по два или четыре числа за раз.
Спасибо, буду ждать.
И ещё есть одна идейка насчет того глюка с не прорисовкой альфа канала на поле боя. Попробую в альфа плагин к хуку на прорисовку дефов существ вставить какое нибудь обновление экрана - может поможет.
(28.04.2012 13:46)Efrit Wrote: [ -> ]etoprostoya Wrote:Я хочу сравнить производительность разных алгоритмов вычисления числа Пи.
Само число Пи я не собираюсь вычислять, если вы это имеете в виду.
Так нету этих "алгоритмов", насколько я понимаю. Это число по готовым формулам и вычисляют...
Формулы просто так не напишешь в код, для этого используют разные алгоритмы. К тому же большие числа или числа с высокой точностью не поддерживаются в C\C++, для работы с ними нужен дополнительный код - сторонние библиотеки или свой собственный. Очень много нюансов.
Блин, мне тестить не на чем - все старые пнгешки куда подевал, а куда не помню. totkotoriy, можешь скинуть карту для теста и пнгешки для неё?
(28.04.2012 15:06)packa Wrote: [ -> ]void __fastcall TForm1::Timer1Timer(TObject *Sender)
и этим все сказано. рисовать надо в процедуре отрисовки же!! а где угодно вызывать invalidate
(28.04.2012 16:50)etoprostoya Wrote: [ -> ]Блин, мне тестить не на чем - все старые пнгешки куда подевал, а куда не помню. totkotoriy, можешь скинуть карту для теста и пнгешки для неё?
Вот анимированные некоторые магические земли, просто можно накидать соответствующие объекты на карту.
Извини, я не совсем понял.
1) В таймере пишем FormPaint(Sender); И все из таймера перемещаем в OnPaint?
2) invalidate(); (так ей пользоваться? Насколько нагуглил, так.) В конце таймера и пропишу.
(28.04.2012 17:27)packa Wrote: [ -> ]1) В таймере пишем FormPaint(Sender); И все из таймера перемещаем в OnPaint?
и рисуем по прежнему в таймере.
не рисуй ничего в таймере, забудь что ты вообще такое можешь. вот правильно сделали в windows forms в c#, что скрыли возможность рисования где попало.
Тогда я точно не знаю что делать
Ну не через цикл же рисовать, это было бы глупо...
Ифрит Wrote:packa, ну это же жуть! Unsure Плз, переформатируй свой код - читать же абсолютно невозможно.
Да, я знаю) Именно поэтому я вынес нужные куски на форум, а сорс дал только для того чтобы вы поэкспериментировали с ними (если так не получается) Такой код ни в коем случае не нужно читать) Это было бы даже невежественно с моей стороны.
Quote:Да и зачем нам весь проект? Нужен лишь исходник, а ещё лучше - его фрагмент...
Ну так чтобы запустить... Скомпилить...
packa, ты можешь назначит обработчик события отрисовки и рисовать там?
Могу, но только 1 раз.
Как это сделать каждые 10мс, не знаю.
Ну простите уж

Игроед, ты чего? Да назначил он его уже давно, ниже в его коде глянь. Там же он свой "чёрный прямоугольник" и рисует. Другое дело, что лишь его...
Кстати, Пакка, зачем тебе он вообще нужен? Ну если так хочется, чтобы цвет формы был чёрный - что мешает поставить в её свойство Color значение clBlack?
Quote:Там же он свой "чёрный прямоугольник" и рисует. Другое дело, что лишь его...
Я там отрисовываю стартовые позиции.
Когда жму старт, в ход идет таймер, со своей многократной перерисовкой.
Ифрит, не подскажешь как в onpaint рисовать несколько раз? Я не понимаю что мне игродел говорит )
Quote:Кстати, Пакка, зачем тебе он вообще нужен? Ну если так хочется, чтобы цвет формы был чёрный - что мешает поставить в её свойство Color значение clBlack?
А если ты про тот одиночный - то когда в проге, как то проще контролировать, чем "где-то там в свойствах"
packa Wrote:Ифрит, не подскажешь как в onpaint рисовать несколько раз? Я не понимаю что мне игродел говорит )
Эфрит

Ну так и вызывай ручками
OnPaint столько раз, сколько тебе и нужно
packa Wrote:Следы же
Мда. А работать с прозрачными спрайтами не судьба? Поставил
transparent у
TImage в
true и радуйся жизни...
packa Wrote:А если ты про тот одиночный - то когда в проге, как то проще контролировать, чем "где-то там в свойствах"
Угу, а потом же сам жалуешься, что "что-то там мерцает". Потому как в моём случае - вбил один раз, и больше не паришь себе голову. А если так уж не нравится прописывать свойства в инспекторе объектов - что мешает прописать это в коде, внутри конструктора формы?