-39%
Le deal à ne pas rater :
Huawei P30 Smartphone
395 € 649 €
Voir le deal

PUREBASIC PUREDEBUTANT

Aller en bas

PUREBASIC PUREDEBUTANT Empty PUREBASIC PUREDEBUTANT

Message par drfloyd le Sam 11 Jan 2020 - 11:18

Ci joint quelques notion de code en pure basic

Le programme ci dessous ne fonctionne pas, c'est juste des copier coller de code divers pour montrer la logique de base de pure basic, afin de comprendre la syntaxe.



Code:
; ********************* INITIALISATION *****************************


; pas besoin d'initialiser ce dont vous n'avez pas besoin, ca reduira la taille de l'EXE
InitSprite():InitKeyboard():UsePNGImageDecoder():InitSound()

; Creation ecran en mode windows zoomé plein ecran
OpenWindow(0, 0, 0, DesktopWidth(0), DesktopHeight(0), "JEU",#PB_Window_BorderLess|#PB_Window_ScreenCentered)  
OpenWindowedScreen(WindowID(0), 0, 0, 320, 200, 1, 0, 0) ; ici en 320 x 200

; ou alors en mode Direct X plein ecran (mais pas les 2 en meme temps !)
;OpenScreen(320,200,32,"JEU",#PB_Screen_SmartSynchronization)

; 2 lignes je crois indispensable en mode windows pour ne pas planter
ExamineDesktops() ; gerer le bureau
ShowCursor_(0) ; ne pas montrer la souris





; ****************************************** SPRITES **************************************
; je ne vais utiliser que de sprites numérités, c'est plus pratique
; (mais on peut charger des images)
; les sprites peuvent zoomer, tourner, avoir une transparence.....


; chargement d'un décor
ii=0
ii=+1:LoadSprite(ii,"DATA/fond.png"):dessinfond=ii ; le fond d'ecran est stocké dans dessinfond

; chargement d'un sprite
Dim dessinheros(2,4) ; sens du perso, frame
For i=1 To 2:For j=1 To 4:ii+1:LoadSprite(ii,"DATA/heros"+i+"_"+j+".png",#PB_Sprite_PixelCollision):dessinheros(i,j)=ii:Next:Next

; chargement de tiles
Dim dessintile(5)
For i=1 To 5:ii+1:LoadSprite(ii,"DATA/tile"+i+".png",#PB_Sprite_PixelCollision):dessintile(i)=ii:Next

; en mode image c'est plus simple :
dessingalaxie=LoadImage(#PB_Any,"DATA/galaxie.png") ; PBAny sert à numéroter automatiquement les images



; *********************** UNE FONTE *****************
LoadFont(10,"DATA/fonte_8bit.otf",10)



; ************* UNE MUSIQUE (les MOD passent tres bien) ***************
LoadMusic(1,"Data/music.xm")



; ************** TU PEUX CREER DES RACCOURCIS POUR LES COULEURS DE BASE ******
couleurverte=RGB(34,227,76)
couleurblanc=RGB(255,255,255)



; *************** EXEMPLE DE CREATION DE DATA DE MAP *****************
Dim decor(200,120)
For i=1 To 200:For j=1 To 120:decor(i,j)=random(5,1):Next:Next
; random(5,1)= hasard entre 1 et 5


;***************** EXEMPLE INIT DATA *******************
anim=1
sens=1
saut=0

sante.f=12.459   ; chiffre à virgules :)

Dim entype(10):Dim enx(10):Dim eny(10):Dim ensens(10):Dim enxx(10):Dim enyy(10)



; *** DEMARRAGE MUSIQUE ***
PlayMusic(1) ; il y a aussi playsound





; ******************************* BOUCLE DE JEU ****************************
Repeat
  
  ; ///////////////////////////////// GESTION CLAVIER
  ExamineKeyboard() ; indispensable !
  If KeyboardPushed(#PB_Key_Right):docxx=1:EndIf
  If KeyboardPushed(#PB_Key_Left):docxx=-1:endIf
  If KeyboardPushed(#PB_Key_Up):docyy=-1:endIf
  If KeyboardPushed(#PB_Key_Down):docyy=1:EndIf
  If KeyboardPushed(#PB_Key_Space):saut=1:EndIf
  
;a la manette ca donnerait ca par exemple:
; ExamineJoystick(0)
; If JoystickButton(0,1)<>0:appuye=1:EndIf
; docx+JoystickAxisX(0)*2
; docy+JoystickAxisY(0)*2


 ; //////////////////////////// AFFICHAGE

  ClearScreen(RGB(0,0,0)) ; efface l'ecran
  
  ; exemple affichage decor de fond
  DisplaySprite(dessinfond,-Int(docx/8),0-(docy/10))
  
  ; exemple affichage tiles du jeu en fonction de la position du perso
  jj=-45+(casey*16)-docy
  ii=-40+(casex*16)-docx
  For j=casey-8 To casey+8
  For i=casex-10 To casex+11
    ii+16
    If decor(i,j)>0:DisplaySprite(dessintile(decor(i,j)),ii,jj):EndIf
  Next
  ii=-40+(casex*16)-docx
  jj+16
  Next
  
  ; exemple affichage de sprites de jeu
  ; on peut rajouter zoomsprite ou zoomrotate avant la commande d'affichage pour les déformations
  ; on peut aussi gérer la collision au pixel près

  ; 5 monstres :
  For i=1 To 5
    DisplayTransparentSprite (dessinennemi(entype(i),ensens(i),Int(anim2/21)+1),152+enx(i)-docx,100+eny(i)-docy,255)
  Next
  ; le heros :
  DisplayTransparentSprite (dessinheros(sens,Int(anim/10)+1),152,100,255)



  ; l'affichage de texte ou de circle, traits, points se fait dans une boucle dédiée
  StartDrawing(ScreenOutput())
 
    DrawingFont (FontID(10))
    DrawText (5,5,Str(docx)+" "+Str(docy),couleurbleu)
    DrawText (250,5,Str(casex)+" "+Str(casey),couleurbleu)
    DrawText (70,5,"DOC FLOYDER'S DRACULA")
 
    circle (100,100,50,couleurrouge)
    plot (40,40,couleurnoire)
    box (50,50,100,100,rgb(140,50,56))
  StopDrawing()
  
  
  FlipBuffers() ; rafraichissement ecran, 60FPS par defaut

Until KeyboardPushed(#PB_Key_Escape) ; fin boucle : quitte si ESC
End




; GOTO et GOSUB FONCTIONNENENT TRES BIEN
GOTO TOTO
TOTO:

GOSUB BIBI
BIBI:
RETURN

i=i+1 peut s'ecrire i+1 tout simplement




Voilà, ca donne une idée de la syntaxe pour un programme simple non structuré

Niveau rapidité c'est totalement impressionnant

Il y a 1600 commandes !!! Mais on peut faire un jeu avec 50 commandes Wink 

On peut bien sur séparer son code en plusieurs fichiers (tuto possible à la demande)

Les experts qui veulent sortir du "pur basic" pourront utiliser les structures, pointeurs....

le code est compatible PC, Windows, Mac

à savoir que la version démo de PUREBASIC est gratuite (800 lignes de code)

Les EXE sont hyper compact (impressionnant). il est possible d'integrer les images, les sons, les musique dans l'EXE sans fichier additionnel (tuto possible à la demande). Ainsi votre jeu n'est composé que d'un seul fichier.


Dernière édition par drfloyd le Lun 13 Jan 2020 - 8:12, édité 3 fois

_______________________________________________________
PUREBASIC PUREDEBUTANT Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 154207
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par tetsuro le Sam 11 Jan 2020 - 15:39

Merci pour ce mini tuto c'est intéressant; je code parfois encore en locomotive Basic sur mon CPC lol, et ça fait du bien :)
tetsuro
tetsuro
Patient contaminé

Masculin Nombre de messages : 585
Age : 42
Localisation : Carcassonne
Date d'inscription : 27/12/2015

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par MonsieurBouboule le Mar 18 Fév 2020 - 13:27

Quand tu dis que c’est puissant et rapide, à quel point ? Concrètement mettons que je veuille apprendre un langage basic un de ces quatre tu conseilles Pure Basic en priorité ?
MonsieurBouboule
MonsieurBouboule
Patient en incubation

Masculin Nombre de messages : 89
Age : 25
Localisation : Montpellier
Date d'inscription : 18/02/2020

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par drfloyd le Mer 19 Fév 2020 - 9:20

Hello
Je suis un peu débordé cette semaine je te ferai une réponse claire ce WE

_______________________________________________________
PUREBASIC PUREDEBUTANT Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 154207
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par MonsieurBouboule le Mer 19 Fév 2020 - 12:04

Ok doc 👌
MonsieurBouboule
MonsieurBouboule
Patient en incubation

Masculin Nombre de messages : 89
Age : 25
Localisation : Montpellier
Date d'inscription : 18/02/2020

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par drfloyd le Mer 19 Fév 2020 - 12:14

Déjà : Quel est ton niveau en programmation ? Tu as déjà touché à quoi ?

_______________________________________________________
PUREBASIC PUREDEBUTANT Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 154207
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par MonsieurBouboule le Mer 19 Fév 2020 - 12:21

J’ai un niveau moyen, je code depuis un an (encore débutant donc). J’ai fait du Lua/Love2D/pico8/tic80, un peu de C# avec Monogame, un peu de Javascript avec React (pour faire un site de création de scénario de JdR mais ça m’a soûlé), un peu de C très basique (arduino) et je crois que c’est tout. Actuellement le langage sur lequel j’ai passé et je passe encore le plus de temps c’est Lua car je code mon jeu dessus.

J’ai dans l’idée de découvrir le basic un de ces quatre, c’est pour ça que je me permet de demander quel langage vous le conseillerez. J’avais entendu beaucoup de bien de Blitzmax par exemple mais c’est mort maintenant, entre temps le créateur du langage a fait 10 nouveaux trucs haha
MonsieurBouboule
MonsieurBouboule
Patient en incubation

Masculin Nombre de messages : 89
Age : 25
Localisation : Montpellier
Date d'inscription : 18/02/2020

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par drfloyd le Mer 19 Fév 2020 - 12:26

Oui Blitmax est fabuleux mais abandonné depuis des lustres hélas.... 

C'est quoi ton jeu?????

_______________________________________________________
PUREBASIC PUREDEBUTANT Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 154207
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par MonsieurBouboule le Mer 19 Fév 2020 - 12:44

Un jeu en grande partie textuel, d’enquête, avec une esthétique ASCII (mais c’est pas du vrai ASCII) et un gameplay très expérimental. En gros dans le futur une technologie permet de recréer des simulations de la réalité à partir de donnés, y compris des simulations de trucs ayant eu lieu dans le passé. C’est utilisé par des entreprises, des chercheurs, des historiens etc, mais aussi par une nouvelle branche d’enquêteurs qui se servent de cette technologie pour résoudre des affaires jamais élucidées ayant eu lieu dans le passé. Ça c’est le pitch de départ et ça sert surtout à justifier le gameplay, qui est un peu bizarre mais que je trouve cool (pas fait pour tout le monde cela dit).
Le jeu plonge le joueur dans une affaire qui a eu lieu dans les années 70 dans une ville fictive des États-unis.
Dit comme ça c’est pas vendeur mais en gros tout ce qui est présent habituellement dans un jeu d’aventure textuelle est absent : ce qui s’est passé a déjà eu lieu donc impossible de modifier les événements, ou d’interagir avec les personnages directement, pas de notions de « choix » : en tant que joueur tu ne peux qu’assister à des scenes ayant eu lieu (un peu comme si tu regardais des enregistrements sur une caméra de surveillance sauf que c’est du texte comme les vieux jeux d’aventure textuels). En revanche le jeu est une sorte d’open world textuel, open world à la fois spatial mais aussi temporel dans le sens où tu peux te rendre dans n’importe quel lieu de la ville à n’importe quel moment (tu choisis l’heure précise et le jour sachant qu’il y a une semaine de dispo, c’est le temps qu’ont duré les événements étranges en ville sur l’affaire sur laquelle tu enquêtes) pour voir (enfin lire du coup) ce qui s’est passé. Y’a aussi un système d’interrogatoire assez cool. Bref c’est chaud à expliquer mais c’est très simple en vérité comme concept, mais à la connaissance y’a pas d’autres jeux avec ce système.
Je présenterai le jeu ici un de ces quatre je pense, si ça intéresse des gens...
MonsieurBouboule
MonsieurBouboule
Patient en incubation

Masculin Nombre de messages : 89
Age : 25
Localisation : Montpellier
Date d'inscription : 18/02/2020

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par drfloyd le Mer 19 Fév 2020 - 13:04

Whaouuu

Donc en haut tu as une représentation semi ASCII de la scène et en bas une fenêtre texte ?

Pourquoi cette esthétique ? Choix purement artistique ?

_______________________________________________________
PUREBASIC PUREDEBUTANT Giphy10
Mes objets en vente :
https://www.gamopat-forum.com/t105296-la-nouvelle-brocante-du-doc#3072649
Mon profil Gamopat Advisor :
https://www.gamopat-forum.com/t94659-dr-floyd-advisor





drfloyd
drfloyd
DOYEN ET PROFESSEUR FOU DE L'HOPITAL

Masculin Nombre de messages : 154207
Age : 50
Localisation : Dpt 62
Date d'inscription : 05/12/2004

http://www.gamopat.com

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par MonsieurBouboule le Mer 19 Fév 2020 - 13:14

Non c’est malheureusement moins développé que ça. Au début je voulais qu’on puisse « voir » les scènes se dérouler (genre avec des tiles pour la map et des sprites etc) mais c’est vraiment trop compliqué car ça demande de créer beaucoup de ressources graphiques et aussi c’est très limitant au fond. Le texte, on a beau dire, c’est une ressource simple à produire et les possibilités sont infinies. De plus ça stimule l’imagination au lieu d’imposer une seule vision au joueur et j’adore ça perso (après ça réduit considérablement le nombre de joueurs potentiellement intéressés car beaucoup n’aiment pas lire mais tant pis).
Quand je dis que c’est beaucoup plus simple, c’est que la partie avec l’esthétique ASCII (c’est pas de l’ASCII à l’ancienne c’est des photos transformées en ASCII) n’est là que pour donner une image aux personnages (en gros quand un personnage parle il a un avatar en ASCII qui apparaît). Encore une fois c’est vraiment un truc simple, c’est un premier jeu et je voudrais si possible le finir un jour donc j’ai essayé de rester réaliste et ne pas m’imposer des trucs trop compliqués ou chronophages.

L’esthétique ASCII c’est un délire visuel mais c’est aussi parce que dans l’histoire du jeu, vu que les scènes auxquelles tu assistes sont des simulations crées à partir de données, je trouve que ça allait bien avec l’esthétique ASCII.

Sinon doc je t’envoie un lien en MP vu que ça t’intéresse, tu pourras plus facilement te faire une idée du truc, je ferai une présentation digne de ce nom quand j’aurai un peu de temps.
MonsieurBouboule
MonsieurBouboule
Patient en incubation

Masculin Nombre de messages : 89
Age : 25
Localisation : Montpellier
Date d'inscription : 18/02/2020

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par Urbinou le Mer 19 Fév 2020 - 15:57

J'attends la prés' avec intérêt : )
Urbinou
Urbinou
Docteur *
Docteur *

Masculin Nombre de messages : 11723
Age : 51
Localisation : Liège, Belgique
Date d'inscription : 12/02/2013

http://cambouisdelatari.wordpress.com

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par MonsieurBouboule le Mer 19 Fév 2020 - 16:08

Haha j’essayerai de faire ça dans pas trop longtemps. J’arrête le HS mais ça fait plaisir si y’a des intéressés :)
MonsieurBouboule
MonsieurBouboule
Patient en incubation

Masculin Nombre de messages : 89
Age : 25
Localisation : Montpellier
Date d'inscription : 18/02/2020

Revenir en haut Aller en bas

PUREBASIC PUREDEBUTANT Empty Re: PUREBASIC PUREDEBUTANT

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum