Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uses Resources; // Resources.pas генерится автоматически по содержимому каталога ресурсов и содержит объявления енумов TRawResource, TSprite, TSound, TButton, TTileMap, TFont
- const
- BLACK = $000000FF;
- MAROON = $800000FF;
- GREEN = $008000FF;
- OLIVE = $808000FF;
- NAVY = $000080FF;
- PURPLE = $800080FF;
- TEAL = $008080FF;
- GRAY = $808080FF;
- SILVER = $C0C0C0FF;
- RED = $FF0000FF;
- LIME = $00FF00FF;
- YELLOW = $FFFF00FF;
- BLUE = $0000FFFF;
- FUCHSIA = $FF00FFFF;
- AQUA = $00FFFFFF;
- WHITE = $FFFFFFFF;
- MONEYGREEN = $C0DCC0FF;
- SKYBLUE = $A6CAF0FF;
- CREAM = $FFFBF0FF;
- MEDGRAY = $A0A0A4FF;
- type
- TKey = (
- KeyA, KeyB, KeyC, KeyD, KeyE, KeyF, KeyG, KeyH,
- KeyI, KeyJ, KeyK, KeyL, KeyM, KeyN, KeyO, KeyP,
- KeyQ, KeyR, KeyS, KeyT, KeyU, KeyV, KeyW, KeyX,
- KeyY, KeyZ,
- KeyNum0, KeyNum1, KeyNum2, KeyNum3,
- KeyNum4, KeyNum5, KeyNum6, KeyNum7,
- KeyNum8, KeyNum9,
- KeyEscape,
- KeyLControl, KeyLShift, KeyLAlt, KeyLSystem,
- KeyRControl, KeyRShift, KeyRAlt, KeyRSystem,
- KeyMenu, ///< The Menu key
- KeyLBracket, ///< The [ key
- KeyRBracket, ///< The ] key
- KeySemiColon, ///< The ; key
- KeyComma, ///< The , key
- KeyPeriod, ///< The . key
- KeyQuote, ///< The ' key
- KeySlash, ///< The / key
- KeyBackSlash, ///< The \ key
- KeyTilde, ///< The ~ key
- KeyEqual, ///< The = key
- KeyDash, ///< The - key
- KeySpace, ///< The Space key
- KeyReturn, ///< The Return key
- KeyBack, ///< The Backspace key
- KeyTab, ///< The Tabulation key
- KeyPageUp, ///< The Page up key
- KeyPageDown, ///< The Page down key
- KeyEnd, ///< The End key
- KeyHome, ///< The Home key
- KeyInsert, ///< The Insert key
- KeyDelete, ///< The Delete key
- KeyAdd, ///< +
- KeySubtract, ///< -
- KeyMultiply, ///< *
- KeyDivide, ///< /
- KeyLeft, ///< Left arrow
- KeyRight, ///< Right arrow
- KeyUp, ///< Up arrow
- KeyDown, ///< Down arrow
- KeyNumpad0, KeyNumpad1, KeyNumpad2, KeyNumpad3,
- KeyNumpad4, KeyNumpad5, KeyNumpad6, KeyNumpad7,
- KeyNumpad8, KeyNumpad9,
- KeyF1, KeyF2, KeyF3, KeyF4, KeyF5, KeyF6, KeyF7, KeyF8,
- KeyF9, KeyF10, KeyF11, KeyF12, KeyF13, KeyF14, KeyF15,
- KeyPause, ///< The Pause key
- Quit
- );
- TPanel = integer;
- TCoord = single;
- TColor = cardinal;
- TMouseButton = (LeftButton, RightButton, MiddleButton);
- TMouseAxis = (CursorX, CursorY, ScrollPos);
- TKeyState = (ksUp, ksDown, ksPressed);
- TMouseButtonState = (mbsUp, mbsDown, mbsClicked);
- TVAlign = (vaNone, vaTop, vaCenter, vaBottom, vaFlow);
- THAlign = (haNone, haLeft, haCenter, haRight, haFlow);
- TEngineValue = (
- Fullscreen, Width, Height, VSync, Antialias, Log, Autoscale, Volume,
- RealWidth, RealHeight, FPS, DeltaTime);
- TEngineConfig = Fullscreen..Volume;
- TFontStyle = (Bold, Italic, Underlined);
- TFontStyles = set of TFontStyle;
- TButtonState = (bsNormal, bsHover, bsPressed, bsClicked);
- TGUICoord = (gcX, gcY, gcWidth, gcHeight, gcMouseX, gcMouseY);
- TPathfindCallback = function(fromx, fromy, tox, toy: integer; opaque: pointer): single;
- TPathfindAlgorithm = (AStarNew, AStarReuse, DijkstraNew, DijkstraReuse);
- const
- nonoengine = 'nonoengine.dll';
- //Общие функции движка
- procedure EngineInit(ResDir: string); external nonoengine;
- procedure EngineSet(param: TEngineConfig; Value: integer); external nonoengine;
- function EngineGet(param: TEngineValue): integer; external nonoengine;
- procedure EngineProcess; external nonoengine;
- function RawResource(res: TRawResource; out size: Integer): pointer;
- //Обработка ввода
- function KeyState(key: TKey): TKeyState; external nonoengine;
- function MouseGet(axis: TMouseAxis): TCoord; external nonoengine;
- function MouseState(btn: TMouseButton): TMouseButtonState; external nonoengine;
- //2д-рендер - спрайты
- procedure Draw(sprite: TSprite; x, y: TCoord; kx: single = 1; ky: single = 1; angle: single = 0;
- Color: TColor = WHITE); external nonoengine;
- procedure DrawTiled(tiled: TTileMap; frame: integer; x, y: TCoord; kx: single = 1; ky: single = 1;
- angle: single = 0; Color: TColor = WHITE);
- external nonoengine;
- procedure Background(sprite: TSprite; kx: single = 1; ky: single = 1; dx: single = 0;
- dy: single = 0; Color: TColor = WHITE);
- external nonoengine;
- //2д-рендер - примитивы
- procedure Line(x1, y1, x2, y2: TCoord; color1, color2: TColor); overload; external nonoengine;
- procedure Line(x1, y1, x2, y2: TCoord; color: TColor); overload;
- procedure LineSettings(Width: single; Stipple: cardinal = $FFFFFFFF; StippleScale: single = 1); external nonoengine;
- procedure Ellipse(x, y, rx, ry: TCoord; filled: boolean; color1, color2: TColor; angle: single = 0);
- external nonoengine; overload;
- procedure Ellipse(x, y, rx, ry: TCoord; filled: boolean; color: TColor); overload;
- procedure Rect(x0, y0, w, h: TCoord; filled: boolean; Color1, Color2, Color3, Color4: TColor; Angle: single = 0);
- external nonoengine; overload;
- procedure Rect(x0, y0, w, h: TCoord; filled: boolean; Color: TColor); overload;
- procedure Point(x, y: TCoord; color: TColor); external nonoengine;
- procedure Triangle(x1, y1: TCoord; color1: TColor; x2, y2: TCoord; color2: TColor; x3, y3: TCoord; color3: TColor);
- external nonoengine; overload;
- procedure Triangle(x1, y1: TCoord; x2, y2: TCoord; x3, y3: TCoord; color: TColor); overload;
- procedure TexturedTriangle(sprite: TSprite; x1, y1, tx1, ty1, x2, y2, tx2, ty2, x3, y3, tx3, ty3: TCoord);
- external nonoengine; overload;
- procedure TexturedTriangle(sprite: TSprite; x1, y1, x2, y2, x3, y3: TCoord; dx: TCoord = 0; dy: TCoord = 0;
- kx: TCoord = 1; ky: TCoord = 1); overload;
- //2д-рендер - дополнительные функции
- function GetPixel(x, y: TCoord; sprite: TSprite = THE_SCREEN): TColor; external nonoengine;
- procedure SetLayer(z: integer); external nonoengine;
- procedure Camera(dx, dy: TCoord; kx: single = 1; ky: single = 1; angle: single = 0); external nonoengine;
- procedure RenderTo(sprite: TSprite); external nonoengine;
- //2д-рендер - вывод текста
- procedure FontConfig(font: TFont; CharSize: integer = 24; color: TColor = WHITE; Styles: TFontStyles = [];
- kx: single = 1; ky: single = 1); external nonoengine;
- procedure DrawText(font: TFont; Text: PChar; x, y: TCoord); external nonoengine;
- procedure DrawTextBoxed(font: TFont; Text: PChar; x, y, w, h: TCoord; HAlign: THAlign = haLeft;
- VAlign: TVAlign = vaCenter);
- external nonoengine;
- //ГУИ
- procedure Panel(id: TPanel; Parent: TPanel; x, y, w, h: TCoord; HAlign: THAlign = haNone; VAlign: TVAlign = vaNone);
- external nonoengine;
- function Button(btn: TButton; Parent: TPanel; x, y, w, h: TCoord; HAlign: THAlign = haNone;
- VAlign: TVAlign = vaNone; Text: PChar = nil; Font: TFont = TFont(0); Data: pointer = nil): TButtonState;
- external nonoengine;
- function GetGUICoord(Coord: TGUICoord): TCoord; external nonoengine;
- //Звук
- procedure Play(sound: TSound; volume: single = 100; Data: Pointer = nil); external nonoengine;
- procedure Music(music: TSound; volume: single = 100); external nonoengine;
- function SoundPlaying(sound: TSound; Data: Pointer = nil): boolean; external nonoengine;
- //Поиск пути
- function Pathfind(SizeX, SizeY: integer; algorithm: TPathfindAlgorithm; diagonal_cost: single;
- fromx, fromy, tox, toy: integer; out x: integer; out y: integer; callback: TPathfindCallback;
- opaque: pointer = nil): boolean; external nonoengine;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement