PDA

Voir la version complète : Premier pas dans la programation Dark Basic !


3DGamer
01/09/2005, 20h49
Bonjour tout le monde.
Voila je suis tout nouveau sur ce forum et tout nouveau aussi dans le domaine de la programmation en Dark Basic. Mon cousin, qui porte le pseudonyme Majime, de qui j'ai recuperer le beau screenshot a la FARCRY a commencer a m'expliquer quelques truc en programmation mai rien de tel qu'un bon bouquin pour y aller a son rythme. J'aurais voullu savoir si l'un d'entre vous connaitrai des bons liens ou livres pour apprendre rapidemment a ce servir de ce puissant outil informatique. J'utilise actuellement Dark Basic PRO ainsi que 3Dsmax 3.
Si quelqu'un pourrai me venir en aide histoire d'evoluer un pe en programmation ce serai sympas
En vous remerciant d'avance !

FDC001
01/09/2005, 22h12
Viens sur mon site!

Le lien (http://fdc001.perso.cegetel.net/Developpement/Accueil.htm)

Pour l'instant y'a que les bases indispensable avant d'entamer un premier jeu mais je suis en train de faire une nouvelle section("premier jeu") expliquant comment faire pas à pas son..."premier jeu", hehe avec les problème les plus classique.(commence par l'autre partie("cours") si tu n'as jamais fait de programmation)

Bonne prog!

ps: chez certains potes, les images qui sont en fait le menu n'apparaissent pas, tiens moi au courant.

3DGamer
01/09/2005, 22h24
Je te remercie pour ton aide je vais essayer d'apprendre grace a ton site les bases de la programmation ces gentil de ta part je te ferai part de mon evolution et des possibles problemes devant lesquels je pourrai bloquer.
Merci
Amicalement.

FDC001
01/09/2005, 23h04
N'hésite pas à m'ajouter sur msn frereduchaos@hotmail.com , j'aide déjà pas mal de monde.(par contre je vais avoir pas mal de boulot scolaire cette année...)

tekalouest
02/09/2005, 02h28
Son site est très bien pour comprendre les principes de base de 3D Game Creator Pro.

J'ai rapidement adopté son site, il nous apprends le B.A.-BA d'une facon efficace et pédagogique ( cours + exercices + corrigé )

On attends la suite avec impatience.

Encore bravo pour une telle initiative Frere du Chaos

Regroupons nous aussi entre débutants ^^
Tekalouest@msn.com

3DGamer
02/09/2005, 12h23
Oui j'avou vraiment bravo pour ton site il est tré bien fai et ca donne vraiment envie d'apprendre!
Merci encore

3DGamer
02/09/2005, 16h10
Par contre il y a pas mal de cours je les ai fini avec les exos et ca va jme debrouille pas mal je pense mai je suis passer o projet sur les mini jeux et ces vrai qu'il manque pas mal de connaissance deja pour l'affichage des jeux en surbrillance notamment la fonction "gosub" qui a mon avis est trés utile mai que je n'ai pas bien compris quant a l'utilisation de celle ci etc...

Dommage que ta partie "premier jeux" ne soit pas terminée

Mais sinon cela reste tré interessant et passionnant !

FDC001
03/09/2005, 19h28
j'ai rajouter un schéma pour gosub, moi aussi j'avais eut l'impression d'être confu en l'expliquant : )

remram44
03/09/2005, 21h07
Sinon, en voyant écris :
ce puissant outil informatique
Je ne peux m'empêcher d'écrire le commentaire qui vient... Attention... Boum !

Tu dois savoir que tu risque d'être rapidement limité par le DarkBasic, car il ne permet pas la POO (Programmation Orienté Objet), ni de manipuler la mémoire (pointeurs, allocations, etc...), contrairement au C/C++.
DB est aussi plus lent que ces langages, et absolument pas portable (ni même émulable).

Je t'aurais prévenu !

Visiteur
07/09/2005, 17h55
Le darkbasic est bien pour commencer, une fois qu'il ira a ses limites, il pourra s'intérésser a autre chose...
Il peut essayer d'autes chose aussi genre le purebasic si il n'aime pas le Darkbasic

IronRaph
07/09/2005, 18h05
DarkBasic comme son nom l'indique c'est du basic donc un très bon moyen de débuter la prog mais en aucun cas une finalité.
C'est utile pour des micro projets mais pas plus.

Le soucis du C++ c'est qu'avant d'afficher un cube 3D il lui faudra plus de temps pour apprendre le langage.

L'avantage de langage comme DarkBasic sera de faire découvrir à un dev amateur les joies de la 3D pour qu'ensuite il puisse avoir la motivation pour s'attaquer à plus gros ...

En tout cas c'est un peu comme ça que je le vois ;)

3DGamer
07/09/2005, 20h13
Ouai ces net je suis dacor ac toi il y a un début a tout de toute facon ! l'apprentissage ne tombe pas ds le creu de la main et clakan des doigts.

chaos
08/09/2005, 16h17
dark basic et loin d'etre si limté que sa ,ce sont tes capacités de programmeur qui feront la difference il me suffit de pointer fredix du doigt pour confirmer ce que je dit :D

3DGamer
15/09/2005, 20h55
Bonsoir tout le monde ces t pour savoir comment on pe charger un fichier 3dsmax avec DBpro, est ce qu'il est necesaire de transformé le fichier .max et .x ??

Merci d'avance

Bonne continuation a tous !!

FDC001
15/09/2005, 20h58
3dgame creator ne supporte pas les .max. Par contre tu devrais pouvoir charger tes .x et .3ds.

Ouep ironraph, pourquoi tu trouves 3dgc pro limité? biensur y'a moins de liberté qu'avec du c++. Mais pour de l'amateur je pense que c'est un meilleur langage que le c++. Biensur après y'a des cas, mais je parle pour la majorité des projets amateurs : bien 3/4 d'entre eux auraient pu être fait en dark basic au lieu de se casser la tête en c++...

Après si le but c'est de s'améliorer en vue des études biensur faut pas trainer sur le dbpro et passer au c++

3DGamer
23/10/2005, 17h41
Bonjour a tous ! J'utilise DBpro pr la prog.
J'aurais voulut savoir si quelqu'un ne connaitrai un moyen simple de faire un ciel, matrice de jeux 3d étant dejà établie et texturée (en clair faire un ciel tout autour de cette matrice), et aussi pouvoir donner un effet a l'eau grace a la matrice. Merci de ne me donner que l'idée.
J'ai aussi des modèles 3d de batiments au format .3Dmf, comment les convertir en .X

Merci de votre aide.

Bonne prog...
C mieu ici?
en clr javé bsoin de conseil

FDC001
23/10/2005, 18h03
Pour faire le ciel, la technique de base est de créer une gigantesque boite, à laquelle tu appliques une texture de ciel. Pour l'eau en matrice...

Pour l'eau, c'est pas évident, je crois que tu ne peux pas utiliser la transparence d'une image lorsque tu l'appliques à une matrice. Donc faut utiliser ghost matrix pour lui donner un effet de transparence. Voilà ce que j'avais fait...ça rend pas très bien mais tu pourras trouver de meilleurs exemples sur le site TGC
(utilises les fleche pour augmenter le vent et les vagues)

Rem Project: Arbre
Rem Created: 23/08/2005 22:22:57

Rem ***** Main Source File *****

create bitmap 1,384,64

set current bitmap 1

image=0

for x=64*image to 63+(64*image)
if yorigine=1
yorigine=0
else
yorigine=1
endif
for y=yorigine to 30+yorigine step 2
variable=rnd(7)
ink rgb(10+(variable*21),25+(variable*12),1+int((variable/3))),0
dot x,y
next y
next x

yorigine=1

for x=64*image to 63+(64*image)
if yorigine=1
yorigine=0
else
yorigine=1
endif
for y=yorigine to 30+yorigine step 2
xg=x-1
yh=y-1
xd=x+1
yb=y+1
if xg<64*image then xg=63+(64*image)
if yh<0 then yh=31
if xd>63+64*image then xd=64*image
if yb>31 then yb=0
pixgr=rgbr(point(xg,y))
pixgg=rgbg(point(xg,y))
pixgb=rgbb(point(xg,y))
pixhr=rgbr(point(xg,y))
pixhg=rgbg(point(xg,y))
pixhb=rgbb(point(xg,y))
pixdr=rgbr(point(xd,y))
pixdg=rgbg(point(xd,y))
pixdb=rgbb(point(xd,y))
pixbr=rgbr(point(x,yb))
pixbg=rgbg(point(x,yb))
pixbb=rgbb(point(x,yb))
ink rgb((pixgr+pixhr+pixdr+pixbr)/4,(pixgg+pixhg+pixdg+pixbg)/4,(pixgb+pixhb+pixdb+pixbb)/4),0
dot x,y
next y
next x

yorigine=0

get image image+1,64*image,0,64+(64*image),32

image=1

for x=64*image to 63+(64*image)
if yorigine=1
yorigine=0
else
yorigine=1
endif
for y=yorigine to 62+yorigine step 2
variable=rnd(7)
ink rgb(230-(variable*15),230-(variable*15),15-variable),0
dot x,y
next y
next x

yorigine=1

for x=64*image to 63+(64*image)
if yorigine=1
yorigine=0
else
yorigine=1
endif
for y=yorigine to 62+yorigine step 2
xg=x-1
yh=y-1
xd=x+1
yb=y+1
if xg<64*image then xg=63+(64*image)
if yh<0 then yh=63
if xd>63+64*image then xd=64*image
if yb>63 then yb=0
pixgr=rgbr(point(xg,y))
pixgg=rgbg(point(xg,y))
pixgb=rgbb(point(xg,y))
pixhr=rgbr(point(xg,y))
pixhg=rgbg(point(xg,y))
pixhb=rgbb(point(xg,y))
pixdr=rgbr(point(xd,y))
pixdg=rgbg(point(xd,y))
pixdb=rgbb(point(xd,y))
pixbr=rgbr(point(x,yb))
pixbg=rgbg(point(x,yb))
pixbb=rgbb(point(x,yb))
ink rgb((pixgr+pixhr+pixdr+pixbr)/4,(pixgg+pixhg+pixdg+pixbg)/4,(pixgb+pixhb+pixdb+pixbb)/4),0
dot x,y
next y
next x

yorigine=0

get image image+1,64*image,0,64+(64*image),64

image=2

for x=64*image to 63+(64*image)
if yorigine=1
yorigine=0
else
yorigine=1
endif
for y=yorigine to 62+yorigine step 2
variable=rnd(7)
ink rgb(0,(variable*21),200-variable),0
dot x,y
next y
next x

yorigine=1

for x=64*image to 63+(64*image)
if yorigine=1
yorigine=0
else
yorigine=1
endif
for y=yorigine to 62+yorigine step 2
xg=x-1
yh=y-1
xd=x+1
yb=y+1
if xg<64*image then xg=63+(64*image)
if yh<0 then yh=63
if xd>63+64*image then xd=64*image
if yb>63 then yb=0
pixgr=rgbr(point(xg,y))
pixgg=rgbg(point(xg,y))
pixgb=rgbb(point(xg,y))
pixhr=rgbr(point(xg,y))
pixhg=rgbg(point(xg,y))
pixhb=rgbb(point(xg,y))
pixdr=rgbr(point(xd,y))
pixdg=rgbg(point(xd,y))
pixdb=rgbb(point(xd,y))
pixbr=rgbr(point(x,yb))
pixbg=rgbg(point(x,yb))
pixbb=rgbb(point(x,yb))
ink rgb((pixgr+pixhr+pixdr+pixbr)/4,(pixgg+pixhg+pixdg+pixbg)/4,(pixgb+pixhb+pixdb+pixbb)/4),0
dot x,y
next y
next x

yorigine=0

get image image+1,64*image,0,64+(64*image),64

set current bitmap 0

autocam off

sync on

hide mouse

angle#=0

make object cone 1,15
xrotate object 1,180-angle#/1
scale object 1,100,133.333,100
texture object 1,1
yrotate object 1,90
position object 1,5000-(tan(angle#)*7),0,5000

make object cone 2,14
xrotate object 2,object angle x(1)-angle#/2
scale object 2,100,142.857,100
texture object 2,1
yrotate object 2,90
position object 2,object position x(1)-(tan(angle#)*7),7,5000

make object cone 3,12.8
xrotate object 3,object angle x(2)-angle#/3
scale object 3,100,156.25,100
texture object 3,1
yrotate object 3,90
position object 3,object position x(2)-(tan(angle#)*7),14,5000

make object cone 4,11.2
xrotate object 4,object angle x(3)-angle#/4
scale object 4,100,178.571,100
texture object 4,1
yrotate object 4,90
position object 4,object position x(3)-(tan(angle#)*7),21,5000

make object cone 5,11.2
xrotate object 5,object angle x(4)-angle#/5
scale object 5,100,178.571,100
texture object 5,1
yrotate object 5,90
position object 5,object position x(4)-(tan(angle#)*7),27,5000

make matrix 1,2000,2000,100,100

make matrix 2,10000,10000,100,100

prepare matrix texture 1,2,1,1

prepare matrix texture 2,3,1,1

ghost matrix on 2

for x=0 to 100
for y=0 to 100
set matrix height 1,x,y,-(sqrt((x-50)^2+(y-50)^2)^2)*0.2-rnd(6)
next y
next x

sens=1

position matrix 1,4000,0,4000
position matrix 2,0,-15,0

dim membres(30)

dim vagues(10)
vagues(1)=0
vagues(2)=6
vagues(3)=13
vagues(4)=20
vagues(5)=4
vagues(6)=0
vagues(7)=6
vagues(8)=20
vagues(9)=4
vagues(10)=0
vaguedeplace=0

vent#=5

position camera 5000,30,3500

for z=3500 to 4850 step 5
position camera 5000,110-((z-4175)^2)*0.0002,z
gosub vague
gosub inclinaison
sourisx#=mousemovex()
sourisy#=mousemovey()
xrotate camera camera angle x()+0.2*sourisy#
yrotate camera camera angle y()+0.2*sourisx#
sync
next z

do

gosub vague
gosub inclinaison

sourisx#=mousemovex()
sourisy#=mousemovey()
xrotate camera camera angle x()+0.2*sourisy#
yrotate camera camera angle y()+0.2*sourisx#

if upkey()=1
move camera 0.5*upkey()
if sqrt(((camera position x()-5000)^2)+((camera position z()-5000)^2))>1000 then move camera -0.5*upkey()
endif

if downkey()=1
move camera -0.5*downkey()
if sqrt((camera position x()-5000)^2+(camera position z()-5000)^2)>1000 then move camera 0.5*downkey()
endif

if leftkey()=1 and timer()>tempsgauche+300 and vent#>0
vent#=vent#-1
tempsgauche=timer()
endif

if rightkey()=1 and timer()>tempsdroite+300 and vent#<11
vent#=vent#+1
tempsdroite=timer()
endif

if camera position y()<get ground height(1,camera position x()-4000,camera position z()-4000)+2 then position camera camera position x(),get ground height(1,camera position x()-4000,camera position z()-4000)+2,camera position z()
if camera position y()<get ground height(2,camera position x(),camera position z())-13 then position camera camera position x(),get ground height(2,camera position x(),camera position z())-13,camera position z()

sync

loop

vague:

if timer()>tempsvague+250-20*vent#
vaguedeplace=vaguedeplace+1
if vaguedeplace=6 then vaguedeplace=1
for range=1 to 96 step 5
for colonne=1 to 100
set matrix height 2,range,colonne,(vagues(vaguedeplace+1)*(vent#/4))-15
set matrix height 2,range+1,colonne,(vagues(vaguedeplace+2)*(vent#/4))-15
set matrix height 2,range+2,colonne,(vagues(vaguedeplace+3)*(vent#/4))-15
set matrix height 2,range+3,colonne,(vagues(vaguedeplace+4)*(vent#/4))-15
set matrix height 2,range+4,colonne,(vagues(vaguedeplace+5)*(vent#/4))-15
next colonne
next range
update matrix 2
tempsvague=timer()
endif

return

inclinaison:

if timer()>tempsinclinaison+250-(22*vent#)
inclinaison#=inclinaison#+sens
if inclinaison#>10
sens=-sens
inclinaison#=9
endif
if inclinaison#<1
sens=-sens
inclinaison#=2
endif
angle#=vent#*1.7
angleinstant#=(angle#/2)+((angle#/2)*(inclinaison#/10))
gosub rotation
tempsinclinaison=timer()
endif

return

rotation:

xrotate object 1,180-angleinstant#/1
position object 1,5000-(tan(angleinstant#)*7),0,5000

xrotate object 2,object angle x(1)-angleinstant#/2
position object 2,object position x(1)-(tan(angleinstant#)*7),7,5000

xrotate object 3,object angle x(2)-angleinstant#/3
position object 3,object position x(2)-(tan(angleinstant#)*7),14,5000

xrotate object 4,object angle x(3)-angleinstant#/4
position object 4,object position x(3)-(tan(angleinstant#)*7),21,5000

xrotate object 5,object angle x(4)-angleinstant#/5
position object 5,object position x(4)-(tan(angleinstant#)*7),27,5000

return



Pour le format j'ai regardé sur google apparment c'est un format pour macintosh et la convertion .x=>.3dmf à l'air répendu, mais j'ai pas trouvé pour le contraire...

++

3DGamer
24/10/2005, 11h39
Merci pour ton aide!
Mai a vré dir javai penser a fr une enorme shpere mai en la texturant ca ne texture que lexterieur de la sphere et non linterieur dc je pense de fr une enorme boite ca reviendra o meme, non ? Mon idée de sphere te parait elle correcte et si oui comment fr pour texturer l'interieur?

Par contre pour le systeme de vague chapo mé ta fé un truc super compliqué (yavé 2 ptites fotes ds ton prog mai pas mechantes), moi le principe que je voulé ces t mouvoir aleatoirement la matrice pour donner un effet de vague un truc simple. Enfin merci qd meme car ces super interessant!

Si tu peut me vnir encore en aide ce srai cool !!
Bonne prog...

FDC001
24/10/2005, 11h57
Pour la sphere avec il y a une commande qui parle de "cull" je crois que c'est "set object texture" mais j'en suis pas du tout sûr. Le probleme c'est que ça fait déssiner les deux coté de la sphere. Donc le coté exterieur sera du gaspillage=> je te conseille de créer ta sphere avec un logiciel de modélisation, comme ça tu changes les normales des faces pendant la modélisation.

++