Coup de main pour ce qui veulent débuter sur Blitz Basic 3D

Démarré par Spyz .200, 02 Juin 2013 à 20:10

0 Membres et 1 Invité sur ce sujet

02 Juin 2013 à 20:10 Dernière édition: 03 Juin 2013 à 15:08 par Spyz .200
Salut à tous

Un avant gout

[spoiler]pour commencer ! cela fait  déjà pas mal de temps que je travail sur d'autre compilateur  pour expérimenter  des conceptions de jeux 3d et je commence sérieusement à perdre mes connaissance concernant Blitz 3D , c'est pour cette raison que je souhaite partager mes connaissance pour éviter de les perdre d'avantage ... puis depuis un bout de temps je commence  à croiser des jeun créateur motiver qui veulent apprendre donc ...

je sais déjà qu'il existe beaucoup de tuto concernant Blitz 3D mais je pense que ce ne sera pas une perte de temps d'en ajouter, puis tous le monde à ça façon de voire les choses ...

1er étape , vous devriez visiter le site http://en.wikipedia.org/wiki/Blitz_BASIC pour plus d'info basique concernant le logiciel ...

2em étape tous d'abord voici quelque renseignement tiré de mes expériences qui indique la puissance et le faiblesse du moteur en question ...

   Primo : les avantages ... :
-globalement , Blitz utilise un langage basique donc accessibilité très facile pour ce qui veulent débuté avec la programmation ...
-gestion des collisions très précises
-Animation 3D avec des ponts très fluides : des ponts veut dire les animations non programmer qui intercale deux animations programmer
-compatible avec beaucoup de fichier médiatique

   Les faiblesses :
-programmation 2D plus difficile ...
-Pas de gestion de transparence suivant l'axe Z  
-gestion de lumière très basique ... ( c'est pour cette raison que j'utilise toujours le cell Shading )
-pas de gestion d'ombre projeté et auto-porteur


je ne sais pas si c'est complet ... mais je  mettrai à jours les renseignements ...


3éme étape Les programmations basique ...
il existe déjà un tutoriel intégré dans le kit .... si vous voulez apprendre le langage Basique et aussi le 2D
   mais ici je  vous expliquerai  uniquement les bases 3D du logiciel ...

pour commencer voici le squelette du programme

Apptitle "le titre de la  fenêtre  entre "" "

Global  (suivi des  variables Global intercalé par des virgules  : visible par tous  )
Const ( Suivi d'un constant comme le Pi par exemple )  
Type

NB : il vous est possible d'utiliser plusieurs Variable Global , Constante , et type

Graphique3D Longueur du fenêtre  , Largeur , Profondeur du couleur , Mode Fenêtre ou plein
Setbuffer Backbuffer () ; pour sélectionner l'espace pour travailler

;---Les initialisations : comme les valeur initial des variables , la position initial de chaque objet
;---Les chargement : pour charger les fichiers que vous allez utiliser dans "la chambre actuel" ou "carte actuel"  si   vous êtes habitué à  expression d ' RPG Maker


While not keyhit ( 1 )  ; pour débuter une boucle avec comme  condition d'arête  l'appui du touche Numéro 1

Les activations de chaque Objet : déplacement , Disparition , camouflage et collisions  ...
Les entrées sélectes : les touches qui contrôle chaque Objet
Les réaction : Réaction de chaque objet suivant chaque événement ...


Updateworld ; pour adapter et mettre à jours chaque changement ...
RenderWorld ; pour afficher chaque changement

Flip ; je ne comprend pas encore correctement le fonctionnement  de ce syntaxe mais s'il est absent vous ne verrez rien à l'écran ...
Wend ; pour terminer le boucle  "While" définie par dessus

end ; pour finir le programme  ...

Voici un simple exemple si vous voulez essayez Blitz 3D



AppTitle " Cube Tournant "

Global Cam , Objet , Lum

Graphics3D 640 , 480 , 32 , 2
setbuffer Backbuffer ()

Cam = createCamera ()
Objet = createcube ()
Positionentity  Objet , 0 , 0 , 0
Positionentity Cam , 0 , 0 , -5
Lum = createLight ()

While not keyhit (1)

Turnentity Objet ,  0 , 1 , 0

UpdateWorld : RenderWorld
Flip : Wend : End



Ce petit programme vous permettra  d'afficher un fond noire avec un Cube qui tourne suivant l'axe Y de l'espace afficher

Voilà ... par manque de temps , je doit m'arrêter  là mais je continuerai plus tard  :)  


[/spoiler]



Les détails basique  :

primo , un  Variable c'est quoi ? ( très bonne question )


exemple
     3x + 2 = 0
      dans cette équation , il existe un variable nommer x ...

mais dans un programme,  pour  utiliser un variable, il faut toujours les déclarer ... et déclarer un variable signifie réserver une case de mémoire pour y mettre quelque chose     

Exemple

Global X
signifie qu'on demande  au machine de réserver une case de mémoire avec comme adresse X
donc chaque fois qu'on veut utiliser son contenue il suffis juste d'appeler X     

--Et le global c'est quoi ?

pour commencer , un programme est constitué généralement par
Le programme principale et des sous programmes ... vous pouvez atteindre jusqu'à des nombres  illimités de sous programme ....

dans chaque sous programme il existe toujours des variables locaux c'est à dire visible uniquement par le sous programme actuel , donc ce n'est pas vraiment une excellente idée d'utiliser un variable local pour définir  un variable qu'on doit utilisé dans plusieurs Sous programme il nous faut un variable global c'est à dire visible par tous les sous programmes

---le type de variable accessible sous Blitz Basic 3D

généralement , il en existe trois plus utile et beaucoup d'autre  pas forcement utile ...

--> le type de variable qui peut contenir uniquement des entier c'est à dire pas de virgule ...
on les déclare ainsi 
Global X , y , Z ; ....

--> le type de variable qui peu contenir des valeur flottant  c'est à dire des valeur avec des  virgules
on les déclare de cette manière
Global X# , Y# , Z# ; ....

--> le type de variable pour contenir des chaines de caractère comme Les textes ...
On les déclare de cette manière
Global X$ , Y$ , Z$ ;...

remarque, ses symboles sont uniquement lisible par Blitz3D  donc il est fort possible que cela ne fonction pas sur d'autre compilateur Basic


Les Sous programmes !


vraiment très utile pour évité de retaper une chaine de code plusieurs fois ...
On les déclare sous blitz de cette manière ...


Function Nom_Du_Fonction ( Argument )

Contenue

End Function 


Vous n'êtes pas obliger d'utiliser  des argument dans une déclaration d'une fonction
cela dépende de la façon dans le sous programme déclaré fonctionne


Voici un autre exemple pour pratiquer les tuto présenté par dessus

Global Lum , Cam , Cube

Function Manipulation1 (Objet)
Moveentity Objet , 0 , 0 , .2
Turnentity Objet , 0 , .5 , 0
End Function

Graphics3D 640 , 480 , 32 , 2
setBuffer BackBuffer ()

Lum = createLight ()
Cam = createCamera ()
Cube = createCube ()

Positionentity Cam , 0 , 0 , -5
Positionentity Cube , 0 , 0 , 0

While not keyhit (1)

Manipulation1 ( Cube )

Updateworld : RenderWorld
Flip : Wend :End


Remarque :

Moveentity Id  , 0 , 0 , 0
signifie qu'on veut déplacer  l'objet d'identité Id de vitesse 0 suivant l'axe x , 0 suivant l'axe Y , et 0 suivant l'axe Z

Pareille pour le syntaxe

TurnEntity Id , 0 , 0 , 0
On veut faire tourner l'objet ID  de vitesse respectivement , 0 , 0 , 0 suivant l'axe X , Y , Z

PositionEntity ID , 0 , 0 , 0
signifie qu'on veut positionner l'objet ID dans la coordonné X=0 , y=0 , Z = 0


Des mise à jours serons disponible bientôt  :)

C'est cool d'avoir un tuto sur Blitz3D et son langage de programmation ; l'ayant découvert au fil de tes projets sur ZS, j'avoue très mal le connaître personnellement, et je trouve ça intéressant d'avoir une présentation double d'un tuto de la sorte :) !

La syntaxe ou le vocabulaire de certaines phrases étant parfois un peu imprécis, confus, je pense qu'il serait bon de préciser certains points si tu souhaites t'adresser un à un public débutant en programmation (déclaration de variable, intérêt de suivre un ordre particulier dans le programme, ce genre de choses par exemple). Maintenant, proposer d'aller se renseigner sur le langage ailleurs comme tu l'as fait n'est pas forcément au mauvaise idée si tu préfères te concentrer sur d'autres points !

Bref, merci pour ce partage ; j'attends la suite personnellement ^_^.

    







Bonjours !

juste pour vous informer la présence d'une  mise à jours du tutoriel   concernant certains détail du langage ... voire la présentation au dessus ....
et si vous avez des question , vous pouvez les poser ici

Merci  :)

Bonjour à vous

Ce logiciel est vraiment puissant, d'après les renseignements du site officiel
par contre, vos tutoriel manque de précision, je crois que cela n'intéresse personne vos truc, la preuve, voyez par vous même, personne n'a poster depuis asse longtemps !