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).
"Wrapper" : fonctions sprite et jeu 2D
"Wrapper" : fonctions sprite et jeu 2D
http://blendman.blogspot.com/
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Forum PB fr : http://www.purebasic.fr/french - Forum PB Eng : http://www.purebasic.fr/english
Re: "Wrapper" : fonctions sprite et jeu 2D
ça c'est beau.
Je ne vois pas pourquoi tu n'aurais pas le droit de poster ce code. C'est pas un émulateur AGK, et les gens qui l'utilisent l'achètent aussi.
Je peux me faire une macro echo, c'est pas pour ça que php va gueuler.

Je ne vois pas pourquoi tu n'aurais pas le droit de poster ce code. C'est pas un émulateur AGK, et les gens qui l'utilisent l'achètent aussi.
Je peux me faire une macro echo, c'est pas pour ça que php va gueuler.
Code : Tout sélectionner
Macro echo (t)
Print(t)
EndMacro
If OpenConsole()
echo ("Bonjour")
Input()
EndIf

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Re: "Wrapper" : fonctions sprite et jeu 2D

Quel liste. Je t'avoue que quelques exemples serait sympa

Bravo en tout cas. C'est vai que des fonctions toutes faîtes comme les particules etc... Ça peut être cool pour pb
@++
Dernière modification par venom le jeu. 02/sept./2021 20:11, modifié 1 fois.
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
- threedslider
- Messages : 455
- Inscription : dim. 01/juil./2018 22:38
Re: "Wrapper" : fonctions sprite et jeu 2D
Très cool ! Je suis curieux de voir comment cela marche pour les jeux en 2D donc je suis intéressé
Si tu mets en codes sources ce serait super ! ^^
Du très bon travail, Blendman.

Si tu mets en codes sources ce serait super ! ^^
Du très bon travail, Blendman.