Mars M

Пользователи
  • Публикации

    28
  • Зарегистрирован

  • Посещение

1 подписчик

О Mars M

  • Звание
    Пользователь
  1. Кинул на ScrollBox несколько TExpander, если у всех свойство isExpanded := True то все нормально. Если у какого выставить в false то с ним во время выполнения программы начинаются проблемы, может не раскрыться или исчезнуть заголовок. IDE Delphi Tokyo 10.2, в предыдущих версиях не проверял. Отрыл проект из папки samples, там у всех TExpander установлено true, если устанавливаю в false то тоже такая же проблема. Проблема только в Токио или во всех версиях так? PS: пока вышел из положения вот так. Выставил у всех isExpanded := True и в onCreate формы добавил for i := 0 to ComponentCount - 1 do if Components[i] is TExpander then TExpander(Components[i]).IsExpanded := False; Работает конечно, но в дальнейшем могут быть неудобства, нужно будет проверять какие нужны раскрыты а какие нет.
  2. denprox, твое желание сделать по проще понятно. Но нужно понимать что если ты делаешь проще для себя, то усложняешь все для пользователя Имхо, сделать свой редактор карт будет лучшей идеей, во первых ты будешь точно знать что потом будет загружаться в игру, во вторых упростишь все для пользователя, а это главное Редактор можно сделать примерно по такому принципу. Далее в игре На самом деле все проще чем кажется, к тому же убиваем еще одного зайца, код получается кроссплатформенным. Хотя тут утверждать не буду, на Токио у меня проекты под андроид не собираются а других девайсов нету
  3. Сделать так что бы были известны Создай что то типа редактора карт, где пользователь сможет выбрать текстуру, задать размеры и положение, потом сохранить все это в файл. А потом в игре отрывать его и будет известно все что нужно. Для примера, создать запись(record) type TMap = record Texture: string[255]; wallRect: TRectF; targetRect: TRectF; winRect: TRectF; RadArr: array[0..3] of Single; ClrArr: array[0..3] of TAlphaColor; end; Пользователь во время создания/редактирования карты заполняет его. ............... var Map: TMap; ............... Texture := 'wall.bmp'; wallRect := TRectF.Create(0, 0, 20, 50); ............... ............... Сохраняем в файл var mStream: TMemoryStream; begin mStream := TMemoryStream.Create; mStream.Write(Map, SizeOf(TMap)); mStream.SaveToFile('maps\tire.dat'); mStream.Free; end; В игре создаем точно такую же запись(record) как и в редакторе, загружаем сохраненный файл с параметрами и заполняем из него запись var mStream: TMemoryStream; Map: TMap; begin mStream := TMemoryStream.Create; mStream.LoadFromFile('maps\tire.dat'); mStream.Read(Map, SizeOf(TMap)); mStream.Free; end; В таком случае будут все нужные параметры известны, и примерно так же в играх и делают.
  4. Описание того что нужно как то расплывчато, но вот примерно так можно сделать. Всего один TImage который используется для отрисовки битмапов. Видео и проект Tire.rar
  5. Возможно эта ссылка тоже будет полезной http://www.partow.net/projects/fastgeo/
  6. Вот тут скорее всего как раз про это
  7. В общем свой вопрос решил. Вышеописанные функции удобны для работы с координатами. И подошли бы мне если бы нужно было перемещать саму модель, но в моем случае нужно работать только с камерой, а это значит что нужно постоянно учитывать ее положение. Короче слишком много математики для фичи которая будет только для того что бы была Но к счастью есть свойство ScreenBounds, которое все сделает за меня. Вот обновленный пример, по правой кнопке куб вписывается в окно, что мне и нужно. https://yadi.sk/d/KVJFHajd3J9ALD Projects.rar
  8. Есть такие функции LocalToAbsolute3D и AbsoluteToLocal3D С первой разобрался(пример), со второй тоже в принципе ясно. Осталось только разобраться как это применить PS: пример честно скопипастил отсюда у него там есть и другие интересные проекты. https://github.com/LUXOPHIA/Sketch3D Projects.rar
  9. Спасибо, гляну, может что и найду там Вот тут тогда тоже может быть то чего нету в примерах https://sourceforge.net/p/radstudiodemos/code/HEAD/tree/trunk/Object Pascal/
  10. Возможно название темы не правильно задал, но просто не понимаю сути вопроса Есть ViewPort3D, на нем TDummy, на котором рисую модель. Вопрос вот в чем, модель может быть как большая, так и маленькая, как мне вписать ее в размеры ViewPort3D? Разумеется все максимальные и минимальные координаты модели мне известны, но вот как их использовать не могу сообразить.
  11. Подниму тему. CUDA конечно хорош(а?), но только для nvidia. Наткнулся тут на работу с OpenCL в делфи http://www.delphisources.ru/forum/showthread.php?t=28188 Там по ссылке в первом сообщение в принципе все есть что нужно. Кому оттуда не удобно перезалил все файлы https://yadi.sk/d/t3mPqlJT3HnfiX Вот пример использования https://yadi.sk/d/bmDKXZ0k3Hnfny Проверял на картах nvidia и ati, конечно же карты должны поддерживать OpenCL. Если в MyOpenCL.pas чего то не хватает, можно взять это в CL.pas из GLScene https://sourceforge.net/p/glscene/code/HEAD/tree/trunk/Source/ParallelAPIs/ Я например добавил константу CL_DEVICE_LOCAL_MEM_SIZEэ А можно использовать родные CL.pas и CL_Platform.pas, в первом архиве есть пример использования. В архиве как раз есть рабочий пример вычислений
  12. Вот так вот вроде работает: Только нужно будет закомментировать строчку assert(sizeof(TCudaDeviceProp) = 540, 'sizeof(TCudaDeviceProp) <> 540');
  13. Проще таскать с собой наверное. Иначе придется отслеживать какая версия у пользователя, ну и разницу в версиях учитывать в коде.
  14. Скачал с инета cudart32_41_28.dll, с ней все нормально. Мне кажется что запись TCudaDeviceProp в разных версиях пишется по разному.
  15. Спасибо, ссылки в любом случае полезные. Но, если я правильно понял, там придется SDK устанавливать на клиентском компе.