"Wrapper" : fonctions sprite et jeu 2D
Publié : mar. 31/août/2021 9:13
salut
en 2015, j'ai commencé à créer des fonctions pour les jeux ou des applications graphiques utilisant les sprites avec purebasic (comme un éditeur de niveau, éditeur de particules).
Pour ça, je me suis inspirer d'un autre outil que j'utilisais (et utilise encore parfois) : agk.
J'ai donc créer tout un tas de fonctions super pratiques et fonctionnelles.
Voici la liste des fonctions que j'avais déjà codé. certaines fonctions sont un peu des doublons car on peut les faire en purebasic facilement, mais d'autres ne sont pas disponible.
Les fonctions intéressantes, ce sont surtout les fonctions liées aux sprites.
L'autre énorme avantage c'est de pouvoir directement utiliser des codes agk dans purebasic. Ce n'est pas vraiment un "wrapper", dans le sens où ça ne fait pas appel à des fonctions, mais ça recrée en purebasic les fonctions avec les mêmes noms et mêmes arguments que celles de agk, ce qui permet donc de créer et exécuter du code agk avec purebasic, et surtout de faciliter la création de jeu ou applications graphiques.
Voici la liste des fonctions que j'avais codées :
Core (window, render...)
- Message(Title$,text$)
- Sync()
- Render()
- Update()
- Swap_PGL()
- ScreenFps()
- Ceil()
- GetDeviceBaseName()
- Print_PGL()
- SetPrintSize()
- SetPrintColor()
- Random_PGL(min, max)
- SetClearColor(r,g,b)
- ValFloat(txt$)
- Sleep(milliseconds)
- GetDeviceHeight
- GetDeviceWidth
- GetMaxDeviceWidth()
- GetMaxDeviceHeight()
- SetScreenResolution(width,height)
- SetVSync(mode)
- SetSyncRate(fps,mode)
- GetColorBlue
- GetColorGreen
- GetColorRed
- DrawLine
- DrawBox(x, y, x2, y2, color1, color2, color3, color4, filled)
- GetCurrentDate()
- GetCurrentTime()
- GetUnixFromDate( year, month, days, hours, minutes, seconds )
- ResetTimer()
- Timer()
- floor(a.f)
Files
- OpenToRead()
- WriteLine()
- ReadLine()
- OpenToWrite()
- GetStringToken(string$,separator$,index)
- GetFileExists(file$)
Images :
- LoadImage_PGL()
- DeleteImage(image)
- GetImageWidth()
- GetImageHeight()
- GetImageExists()
Keyboard
- GetRawKeyPressed()
- GetRawKeyReleased(key)
- GetRawKeyState(key)
- GetRawLastKey()
Mouse
- GetPointerPressed() (only For windows, For the moment)
- GetPointerState() (only For windows, For the moment)
- GetPointerReleased() (only For windows, For the moment)
- GetPointerX()
- GetPointerY()
- ScreenToWorldX(x.f)
- ScreenToWorldY(y.f)
- WorldToScreenX()
- WorldToScreenY()
Sprite
- CreateSprite_PGL()
- DeleteSprite(sprite)
- GetSpriteX(Sprite)
- GetSpriteY(sprite)
- SetSpriteSize(sprite,w,h)
- GetSpriteWidth(Sprite)
- GetSpriteHeight(Sprite)
- GetSpriteHit(x,y)
- GetSpriteXByOffset(sprite)
- GetSpriteYByOffset(sprite)
- SetSpriteImage(sprite, image, updateshape=0)
- SetSpritePosition(Sprite,x,y)
- SetSpritePositionByOffset(Sprite,x,y)
- SetSpriteX(sprite)
- SetSpriteY(sprite)
- SetSpriteDepth(sprite,depth)
- SetSpriteOffset(sprite,offsetx,offsety)
- SetSpriteAngle(sprite,angle)
- FixSpriteToScreen(sprite, fix)
- SetSpriteTransparency(sprite, transparency)
- SetSpriteColor(sprite,r,g,b,a)
- SetSpriteAnimation(sprite,FrameWidth,FrameHeight,FrameCount)
- PlaySprite(sprite[,fps,iloop, from,To])
- StopSprite(sprite)
- ResumeSprite(sprite)
- GetSpriteScissor(sprite,x1,y1,x2,y2)
- GetSpriteCurrentFrame(sprite)
- GetSpriteImage()
- SetSpriteFlip()
- GetSpriteDepth(sprite)
- GetSpriteVisible(sprite)
- Not AGK internal : SetSpriteRepeated(sprite,w,h)
Sound
- LoadSound()
- PlaySound_PGL()
- StopSound_PGL()
- DeleteSound()
- GetSoundExists(iID)
Text
- CreateText(textid,text$)
- DeleteText(textid)
- SetTextPosition(textid,x,y)
- SetTextDepth(textid,depth)
- SetTextAngle(textid,angle)
- SetTextSize(textid, size)
- SetTextString(textid, txt$)
- SetTextColor(textid, r,g,b,a)
- FixTextToscreen(textid,depth)
- SetTextAlignement(textid, alignement)
- SetTextMaxWidth(text, width)
View
- SetViewOffset(x,y)
- GetViewOffsetX()
- GetViewOffsetY()
- SetViewZoom(zoom)
- GetViewZoom()
window
- Setwindowtitle_PGL()
- SetWindowSize()
- SetVirtualResolution()
- SetOrientationAllowed()
- GetVirtualHeight()
- GetVirtualWidth()
La question que je me pose est la suivante : est-ce que c'est autorisé ?
Autrement dit, est-ce que j'ai le droit le poster ce code (un fichier .pbi de 7900 lignes environ) ?
Je pense que oui, mais je voulais avoir votre avis.
merci.
A+
ps : je n'avais pas créer les fonctions 3D, car ça ne me semblait pas possible. Et il manque certaines fonctions, mais l'ensemble est là, et on peut déjà faire des petits jeux sympas avec ça ou encore des logiciels utilisant les sprites (éditeur de niveau, tile editor, éditeur de particules, etc).
en 2015, j'ai commencé à créer des fonctions pour les jeux ou des applications graphiques utilisant les sprites avec purebasic (comme un éditeur de niveau, éditeur de particules).
Pour ça, je me suis inspirer d'un autre outil que j'utilisais (et utilise encore parfois) : agk.
J'ai donc créer tout un tas de fonctions super pratiques et fonctionnelles.
Voici la liste des fonctions que j'avais déjà codé. certaines fonctions sont un peu des doublons car on peut les faire en purebasic facilement, mais d'autres ne sont pas disponible.
Les fonctions intéressantes, ce sont surtout les fonctions liées aux sprites.
L'autre énorme avantage c'est de pouvoir directement utiliser des codes agk dans purebasic. Ce n'est pas vraiment un "wrapper", dans le sens où ça ne fait pas appel à des fonctions, mais ça recrée en purebasic les fonctions avec les mêmes noms et mêmes arguments que celles de agk, ce qui permet donc de créer et exécuter du code agk avec purebasic, et surtout de faciliter la création de jeu ou applications graphiques.
Voici la liste des fonctions que j'avais codées :
Core (window, render...)
- Message(Title$,text$)
- Sync()
- Render()
- Update()
- Swap_PGL()
- ScreenFps()
- Ceil()
- GetDeviceBaseName()
- Print_PGL()
- SetPrintSize()
- SetPrintColor()
- Random_PGL(min, max)
- SetClearColor(r,g,b)
- ValFloat(txt$)
- Sleep(milliseconds)
- GetDeviceHeight
- GetDeviceWidth
- GetMaxDeviceWidth()
- GetMaxDeviceHeight()
- SetScreenResolution(width,height)
- SetVSync(mode)
- SetSyncRate(fps,mode)
- GetColorBlue
- GetColorGreen
- GetColorRed
- DrawLine
- DrawBox(x, y, x2, y2, color1, color2, color3, color4, filled)
- GetCurrentDate()
- GetCurrentTime()
- GetUnixFromDate( year, month, days, hours, minutes, seconds )
- ResetTimer()
- Timer()
- floor(a.f)
Files
- OpenToRead()
- WriteLine()
- ReadLine()
- OpenToWrite()
- GetStringToken(string$,separator$,index)
- GetFileExists(file$)
Images :
- LoadImage_PGL()
- DeleteImage(image)
- GetImageWidth()
- GetImageHeight()
- GetImageExists()
Keyboard
- GetRawKeyPressed()
- GetRawKeyReleased(key)
- GetRawKeyState(key)
- GetRawLastKey()
Mouse
- GetPointerPressed() (only For windows, For the moment)
- GetPointerState() (only For windows, For the moment)
- GetPointerReleased() (only For windows, For the moment)
- GetPointerX()
- GetPointerY()
- ScreenToWorldX(x.f)
- ScreenToWorldY(y.f)
- WorldToScreenX()
- WorldToScreenY()
Sprite
- CreateSprite_PGL()
- DeleteSprite(sprite)
- GetSpriteX(Sprite)
- GetSpriteY(sprite)
- SetSpriteSize(sprite,w,h)
- GetSpriteWidth(Sprite)
- GetSpriteHeight(Sprite)
- GetSpriteHit(x,y)
- GetSpriteXByOffset(sprite)
- GetSpriteYByOffset(sprite)
- SetSpriteImage(sprite, image, updateshape=0)
- SetSpritePosition(Sprite,x,y)
- SetSpritePositionByOffset(Sprite,x,y)
- SetSpriteX(sprite)
- SetSpriteY(sprite)
- SetSpriteDepth(sprite,depth)
- SetSpriteOffset(sprite,offsetx,offsety)
- SetSpriteAngle(sprite,angle)
- FixSpriteToScreen(sprite, fix)
- SetSpriteTransparency(sprite, transparency)
- SetSpriteColor(sprite,r,g,b,a)
- SetSpriteAnimation(sprite,FrameWidth,FrameHeight,FrameCount)
- PlaySprite(sprite[,fps,iloop, from,To])
- StopSprite(sprite)
- ResumeSprite(sprite)
- GetSpriteScissor(sprite,x1,y1,x2,y2)
- GetSpriteCurrentFrame(sprite)
- GetSpriteImage()
- SetSpriteFlip()
- GetSpriteDepth(sprite)
- GetSpriteVisible(sprite)
- Not AGK internal : SetSpriteRepeated(sprite,w,h)
Sound
- LoadSound()
- PlaySound_PGL()
- StopSound_PGL()
- DeleteSound()
- GetSoundExists(iID)
Text
- CreateText(textid,text$)
- DeleteText(textid)
- SetTextPosition(textid,x,y)
- SetTextDepth(textid,depth)
- SetTextAngle(textid,angle)
- SetTextSize(textid, size)
- SetTextString(textid, txt$)
- SetTextColor(textid, r,g,b,a)
- FixTextToscreen(textid,depth)
- SetTextAlignement(textid, alignement)
- SetTextMaxWidth(text, width)
View
- SetViewOffset(x,y)
- GetViewOffsetX()
- GetViewOffsetY()
- SetViewZoom(zoom)
- GetViewZoom()
window
- Setwindowtitle_PGL()
- SetWindowSize()
- SetVirtualResolution()
- SetOrientationAllowed()
- GetVirtualHeight()
- GetVirtualWidth()
La question que je me pose est la suivante : est-ce que c'est autorisé ?
Autrement dit, est-ce que j'ai le droit le poster ce code (un fichier .pbi de 7900 lignes environ) ?
Je pense que oui, mais je voulais avoir votre avis.
merci.
A+
ps : je n'avais pas créer les fonctions 3D, car ça ne me semblait pas possible. Et il manque certaines fonctions, mais l'ensemble est là, et on peut déjà faire des petits jeux sympas avec ça ou encore des logiciels utilisant les sprites (éditeur de niveau, tile editor, éditeur de particules, etc).