CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Questions a ceux prog. sous Darkbasic

JeanYvesYves
JeanYvesYves
Niveau 10
14 décembre 2003 à 21:50:41

Salut ! !

Je suis programmeur C++. Mon but est de faire des classes ( des fonctions on va dire) pour manipuler aisément et en peu de lignes des sprites, ou des objets 3D pour programmer des petits jeux puissants en C++ avec peu de lignes. Pour cela, je m´appuie sur le puissant OpenGL.

Le truc commence a naitre. Je fais bouger en quelques lignes seulement de C++, des bonhommes que j´aurais préalablement dessiné sous un logiciel de dessin.

ça marche, C sympa.
Le style que j´ai défini pour le faire me plait, a moi. Mais est ce que ça plaira a tout le monde ? Est ce que ce que je choisis plaira ?

C´est pour cela que j´aimerais savoir, pour me donner des idées, comment il font en DarkBasic, pour m´en inspirer pour moi en C++.

Est ce que quelqu´un peut m´écrire, en quelques lignes rapidos, comment il charge une banque de sprites, comment il affiche un sprite, comment il le fait bouger et comment il l´anime ?

neg282
neg282
Niveau 7
14 décembre 2003 à 23:01:59

load image " image.bmp",1
x=0:y=0
do
if upkey()=1 then y=y-1
if downkey()=1 then y=y+1
if leftkey()=1 then x=x-1
if rightkey()=1 then x=x+1
sprite 1,x,y,1
loop

voila:
sprite a,x,y,b
a : numero du sprite
x,y : coordonnée du coin supérieur gauche
b : numero de l´image appliqué sur le sprite

neg282
neg282
Niveau 7
14 décembre 2003 à 23:14:12

ce serait un de mais reve :
une classe qui donnerait en c++ toutes les fonctions du dark basic.
La vitesse du c++ & la simplicité de dark basic.
ce serait genial

JeanYvesYves
JeanYvesYves
Niveau 10
15 décembre 2003 à 00:10:38

Je vois, c´est a peu pres comme ça que j´y gere :

regarde :

  1. include " fgl.h"

FGL* F;

void display(int b)
{
if ( F->Key(27))
F->Stop();
F->LookAt();
F->UpdateSprites();
F->ShowSprites();
}

int main(int argc, char **argv)
{
F=new FGL(display,640,480,32,0);
F->ImLoad("t.dat");
F->NewSprite(0,new
Sprite2D(F->SelectBank(0),Vector(100.0,100.0,0.0),
0));
F->SetEnreg(0,new ETrans(Vector(1.0,0.0,0.0),10));
F->Roule();
return 0;
}

Commentaires :

FGL est mon projet, ce programme marche déja : tu commences par lire le main :

1er ligne :
F=new FGL(display,640,480,32,0);
--> initialise a 640*480, 32 bits / couleur, on peut monter a 1600*1200 si on veut :) le 0 pour dire : pas en plein écran ( mais sinon, plein écran), dis en outre que la boucle principale est " display", voir apres.
F->ImLoad : charge les sprites
F->NewSprite : crée le sprite 1. Le sprite 1 sera un sprite 2D : tout est prévu pour gérer dans l´avenir des objets 3D en tant que sprite.
F->SetEnreg : défini au sprite 1 un mouvement :
ici ETrans = mouvement de translation, je lui dit de bouger de +1 pixel en x toute les 10/1000e de seconde : C donc calé sur le temps.
F->Roule : lance la boucle principale ( display ici)

dans cette boucle :
F->Key(27) --> si appuie sur ESC, alors stop
F->LookAt() --> met en place la vue
F->UpdateSprites() --> fait avancer les sprites en fonction de leurs mouvement préenregistrés.
F->ShowSprites(); --> Affiche les sprites.

Mon but est de faire un truc complexe, extensible, et surtout qui ne restreint pas le OpenGL qu´il y a derriere.
Mon but est d´utiliser le polymorphisme de fonctions pour ajouter des parametres aux fonctions existantes pour qu´elle se comportent différemment.
Autre but : le polymorphisme de classe implicite : quand tu crée un sprite, ça peut etre un sprite2D, mais plus tard ce sera d´autres types de sprites....

Le moteur n´en est qu´au début, mais les resultats sont la. J´ai déja implémenté le programme qui crée les fichiers comme " t.dat", c´est un programme qui scanne un BMP que tu as fait, et trouve les sprites dessus, avec gestion de points chauds et points d´action.

C´est pour cela que je cherche des idées supplémentaire pour que FGL aie une bonne ergonomie a la sortie.

JeanYvesYves
JeanYvesYves
Niveau 10
15 décembre 2003 à 00:19:31

Je prévois encore des macros préfaites dans FGL.H lui meme pour simplifier l´écriture. Et obtenir un truc encore + compact. Pour l´instant j´en suis la.

JeanYvesYves
JeanYvesYves
Niveau 10
15 décembre 2003 à 23:08:16

Voila a ce qu´on arrive a faire avec des macros, un langage encore plus compact ( toujours objet, mais + masqué)

  1. include " fgl.h"

void display(int b)
{
if ( key(27))
stop();
updatesprites();
showsprites();
}

int main(int argc, char **argv)
{
init(display,1280,1024,32);
imload("t.dat");
sprite2d(0,100,100,0,0);
trans(0,1,0,0,10);
anim(0,"(5,0)(5,1)L");
roule();
return 0;
}

Starburst-Power
Starburst-Power
Niveau 5
15 décembre 2003 à 23:16:43

Une petite question

" load image " image.bmp",1
x=0:y=0
do
if upkey()=1 then y=y-1
if downkey()=1 then y=y+1
if leftkey()=1 then x=x-1
if rightkey()=1 then x=x+1
sprite 1,x,y,1
loop "

Est-ce que c´est du c++ ?

JeanYvesYves
JeanYvesYves
Niveau 10
16 décembre 2003 à 00:10:08

Le code que tu as tapé est du BASIC, du Dark Basic visiblement.

Un code en C++ est celui que j´ai tapé, 2 lignes plus haut.

gollumkawder
gollumkawder
Niveau 10
16 décembre 2003 à 18:48:10

hep, est-ce que la directive #include est forcément liée au préprocesseur en C++ ? en C je sais que oui et en toute logique en C++ aussi mais je préferes etre sur :)

alors ?
mirçi d´avance ; )

Gollum A.K.A Neoprog

Makineros63
Makineros63
Niveau 7
16 décembre 2003 à 20:08:22

Je ne fais pas du C++ mais du C, et je pense que c´ est pareil qu´ en C. :ok:

JeanYvesYves
JeanYvesYves
Niveau 10
16 décembre 2003 à 20:23:07

Oui, le #include fonctionne de la meme façon en C et en C++, aucune différence ! ça marche comme en C :)

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment