[left]PureBasic это современная, кроссплатформенная среда разработки программ и игр, на языке бейсик, позволяющая создавать native-приложения для различных платформ.[/left]
Для Платформы: Windоws x86 Windоws x64 Linuх x86 Linuх x64 MaсОS X x86 MaсОS X x64 MаcОS Х PоwеrPС.
Для работы созданных программ не требуется устанавливать дополнительные пакеты, подобные .NET Framework или runtime библиотеки, что облегчает перенос программ на другие компьютеры. Нужно отметить что размер создаваемых программ сравнительно небольшой (от 2 КБ) и напрямую зависит от кода программы, благодаря оптимизирующему компилятору, добавляющему в исполняемый файл (в Windows это EXE или DLL) только код функций реально используемых в программе. В зависимости от опций компиляции, можно создавать как ASCII, так и Unicode приложения. Поскольку в процессе компиляции программ задействован ассемблер FASM, то это позволяет добавлять в код ассемблерные инструкции, макросы и директивы FASMа.
Читать дальше В среде присутствует мощный отладчик, (как встроенный, так и автономный) позволяющий не только выполнять программы пошагово, но и просматривать в процессе выполнения программы содержимое переменных, массивов (динамических и ассоциативных), структур, связанных списков, памяти и т. д. Предусмотрена так же возможность отладки по сети. С помощью профилера можно определить какая часть программы требует больше всего ресурсов, что позволит оптимизировать код на максимальное быстродействие. Так же отладчик позволяет в процессе выполнения программы, наблюдать за содержимым регистров процессора и стеком и при необходимости, изменить их содержимое. Purifier позволит выявить такую ошибку, как чтение/запись за пределами переменных и памяти. Благодаря функции OnError, есть возможность связать откомпилированный исполняемый файл с номерами строк программы что позволит точно узнать в какой строке программы произошла ошибка, в случае ее возникновения.
В состав среды входит кроссплатформенная библиотека функций, содержащая более 1500 функций. Их описание можно найти в справке (нажать F1 при запущенной среде PureBasic) или в онлайн справке (она полностью на русском). Среди этих функций, имеются функции для работы с консолью, окнами и 2D, 3D графикой (движок OGRE). Поддерживается 32 битные изображения с альфа каналом. Функции библиотеки "Thread" позволяют легко создавать параллельные потоки из обычных процедур и функций, что особенно актуально для много процессорных систем. При использовании потоков в программе нужно в настройках компилятора, включить опцию "Создать приложение с безопасным потоком" Так же присутствуют функции для работы с базами данных, типа: Oracle, MySQL, Access, SQLite, PostgreSQL и другими. Имеется полный доступ к API функциям операционной системы.
Все это позволяет создавать программы и игры практически любой сложности, как если бы писали на языках C++, C#, Delphi или Visual Basic, но с гораздо меньшими усилиями. Да и к тому же, при необходимости, программу легко портировать на другую платформу, скажем, чтобы перенести программу с Windows на Linux, достаточно перекомпилировать исходный текст в соответствующем компиляторе.
Новые возможности - Added: Cocoa support on OS X (now the default toolkit) - Added: 64-bit version of PureBasic for OS X - Added: Brand new Form Designer, for Windows, Linux and OS X - Added: Carbon subsystem for PowerPC and x86 version of PureBasic - Added: Multi-dimensional arrays in structure support - Added: InitScintilla() on Linux and OS X avoid compilation issues - Added: #PB_Window_NoActivate flag to OpenWindow() and HideWindow() - Added: #PB_EventType_RightClick support ScintillaGadget() - Added: Favorites section to the explorer tool (IDE) - Added: Trigger for custom tools when a new source file is created (IDE) - Added: SetWindowCallback() support to OS X to have callback events - Added: partial thread-safety to GTK (Linux) - Added: SpritePixelCollision() support for OS X and Linux
- Updated: Scintilla updated to 3.2.2 - Updated: Expat updated to 2.1.0 - Updated: libjpeg updated to 8.0d - Updated: libpng updated to 1.5.12 - Updated: Ogre to 1.8.0, bullet to 2.80, hydrax to 0.5.4, CEGUI to 0.7.7 - Updated: ModPlug lib update to 0.8.8.4 - Updated: Use of VC++ 2010 to compile Windows libraries (32-bit and 64-bit), resulting of better optimized code - Updated: French documentation has been greatly updated/enhanced, thanks to Jean R. VIALE.
- Changed: SetModulePosition() is now in milliseconds, no more in pattern
- Fixed: Many bugs
3D Engine: - Added: EntityAnimation library - Added: NodeAnimation library - Added: VertexAnimation library - Added: Spline library - Added: CG Tookit support for the 3D engine (both DirectX and OpenGL), trough InitEngine3D() - Added: optional 'Mode' parameter to InitEngine3D() - Added: 'PickMask' parameter to MousePick() and CreateEntity() - Added: RenderWorld() now returns 'TimeSinceLastFrame', in milliseconds - Added: SkyBox() and SkyDome() now supports Fog() - Added: 'Color' and 'TextureSize' parameters to WorldShadows() - Added: #PB_World_UnderWater and #PB_World_WaterGodRays flags to CreateWater() - Added: RayPick(), CameraViewWidth(), CameraViewHeight(), CameraViewX(), CameraViewY(), CameraDirection() - Added: CameraDirectionX/Y/Z(), SetCameraFixedYawAxis()
- Added: optional 'IsActive' parameter to render to texture for CreateCamera() - Added: ScaleMaterial(), MaterialFog(), ReloadMaterial(), ResetMaterial(), NodeFixedYawAxis() - Added: optional 'TextureCoordinateIndex' parameter to AddMaterialLayer() - Added: #PB_Material_Anisotropic support to MaterialFilteringMode() - Added: #PB_Default support as #Material to set the default settings for materials. - Added: #PB_Material_Wireframe, #PB_Material_Point and #PB_Material_Solid to MaterialShadingMode() - Added: SoundListenerLocate() - Added: Optional DirectionX/Y/Z parameter to NodeLookAt() - Added: optional 'Mode' parameter to MoveLight(), MoveEntity() and MoveNode() - Added: CreateTexture() now handle alpha textures as well - Added: #PB_Entity_Wireframe, #PB_Entity_Solid, #PB_Entity_Point, #PB_Entity_DisplaySkeleton to EntityRenderMode() - Added: FreeEntityJoints(), AttachEntityObject(), DetachEntityObject(), EntityBoneX/Y/Z() - Added: EntityBonePitch(), EntityBoneRoll(), EntityBoneYaw(), EntityFixedYawAxis() - Added: DirectionX/Y/Z optional parameters to EntityLookAt() - Added: EntityVelocity(), EntityAngularFactor(), EntityLinearFactor(), EntityCustomParameter(), EntityParentNode() - Added: EntityBoundingBoxX/Y/Z(), DisableEntityBody() - Added: #PB_Entity_VelocityX/Y/Z, #PB_Entity_MassCenterX/Y/Z, #PB_Entity_MaxVelocity to Get/SetEntityAttribute() - Added: LightAttenuation(), LightX/Y/Z(), LightDirection(), LightDirectionX/Y/Z() - Added: RotateLight(), LightPitch(), LightYaw(), LightRoll() - Added: GetScriptParticle(), CreateRenderTexture(), UpdateRenderTexture(), SaveRenderTexture() - Added: CreateCubeMapTexture(), EntityCubeMapTexture() - Added: HideEffect() now handle ribbon as well - Added: EffectID(), RibbonEffectWidth(), AttachRibbonEffect(), DetachRibbonEffect(), CreateLensFlareEffect() - Added: LensFlareEffectColor(), EnableHingeJointAngularMotor() - Added: Joint parameter for ConeTwistJoint(), HingeJoint(), PointJoint(), SliderJoint() - Added: #PB_HingeJoint_LowerLimit and #PB_HingeJoint_UpperLimit to Get/SetJointAttribute() - Added: Optional 'Pitch', 'Yaw', 'Roll' parameters to AddStaticGeometryEntity() - Added: FreeTerrain(), SetupTerrains(), CreateTerrain(), TerrainPhysicBody(), DefineTerrainTile() - Added: AddTerrainTexture(), BuildTerrain(), TerrainLocate(), TerrainHeight(), TerrainTileHeightAtPosition() - Added: TerrainTilePointX/Y(), TerrainTileSize(), GetTerrainTileHeightAtPoint(), SetTerrainTileHeightAtPoint() - Added: UpdateTerrain(), TerrainTileLayerMapSize(), GetTerrainTileLayerBlend(), SetTerrainTileLayerBlend() - Added: UpdateTerrainTileLayerBlend(), TerrainMousePick(), SaveTerrain(), TerrainRenderMode() - Added: special key handling to InputEvent3D()
- Changed: CameraLookAt() doesn't change the direction anymore - Changed: Attach/DetachNodeObject() removed the 'type' object - Changed: 'InitialWidth' parameter has been removed for CreateRibbonEffect()
- Removed: AnimateEntity() (replaced with Start/StopEntityAnimation()) - Removed: #PB_Entity_Wireframe, #PB_Entity_Point and #PB_Entity_Solid to EntityRenderMode() - Removed: CheckEntityCollision(), NextWorldCollision(), FirstWorldCollisionEntity(), SecondWorldCollisionEntity()