"Wrapper" : fonctions sprite et jeu 2D

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

"Wrapper" : fonctions sprite et jeu 2D

Message par blendman »

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).
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: "Wrapper" : fonctions sprite et jeu 2D

Message par Ar-S »

ç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.

Code : Tout sélectionner

Macro echo (t)
Print(t)    
EndMacro
 If OpenConsole()
	echo ("Bonjour")
Input()
EndIf
:mrgreen:
~~~~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
Avatar de l’utilisateur
venom
Messages : 3136
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: "Wrapper" : fonctions sprite et jeu 2D

Message par venom »

8O Wouah !!!

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

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
Avatar de l’utilisateur
threedslider
Messages : 455
Inscription : dim. 01/juil./2018 22:38

Re: "Wrapper" : fonctions sprite et jeu 2D

Message par threedslider »

Très cool ! Je suis curieux de voir comment cela marche pour les jeux en 2D donc je suis intéressé :mrgreen:

Si tu mets en codes sources ce serait super ! ^^

Du très bon travail, Blendman.
Répondre