SVM n°201 février 2002
SVM n°201 février 2002
  • Prix facial : 3,80 €

  • Parution : n°201 de février 2002

  • Périodicité : mensuel

  • Editeur : Excelsior Publications

  • Format : (204 x 280) mm

  • Nombre de pages : 184

  • Taille du fichier PDF : 167 Mo

  • Dans ce numéro : le nouveau coup d'Apple.

  • Prix de vente (PDF) : gratuit

Dans ce numéro...
< Pages précédentes
Pages : 170 - 171  |  Aller à la page   OK
Pages suivantes >
170 171
loisirs en étapes

Créez vous-même votre jeu en 3D
Pourquoi ne pas programmer votre propre jeu? Pour notre démonstration,
3D Games ip /1 HEURES Creator

nous nous appuierons sur le logiciel 3D Games Creator de Darkbasic (édité par Focus, 46 €/300 F). Votre ordinateur doit être équipé au minimum d'une carte accélératrice 3D gérant l'API Direct X, version 6 et plus. Le but : concevoir un

casse-briques 3D. Vous devrez être en possession du listing commenté (cassebriques 3D.DBA), à télécharger sur
http://pratiquesvm.vnunet.fr/svm201/ cassbrik.htm (6 Ko). Vous pouvez aussi

télécharger l'exécutable, qui ne nécessite pas 3D Games Creator pour être lancé, Jacques Harbonn mais qui pèse 3 Mo.

CLI

f

uniE

if scee.0 thon tenter test 320.200. •ESPLCE pour conaencee
if croynke, • if leitkevr , ..0$ • eX8eveldepe de, Ir r •I:t • It c,,arety() t en firrre

if (eV! > 95 0) then

it (aLt t 15.0) the» iat • 15.0 if (ai ' 15.0) tben itY8 i 15.0 if fiat > 95.0) tben elfe • 95.0 ey$ • 95 0 dep • 0 position camera axa

if dewl the,, position abject 999.a8,0t.150

en déplacement de 1e belle

if epacetay() the» nove • I
at kOVe obal1e0S • ballefft obeffelft • balleYt otelleZ8 • belleU

BQ WB •
•• coi I iearao

L'explorateur multimédia du programme permet la sélection des images, textures et sons, à piocher dans les banques fournies (voir capture). L'instruction Sync améliore notablement la fluidité de l'animation, la vitesse de celle-ci étant ici fixée à 30 images/s. La variable "nballe" représente le nombre de balles, et "valdep#", la vitesse initiale de déplacement de la balle. Viennent ensuite les créations successives de la lumière, de la balle, de la raquette, des briques et des parois. La lumière créée est assez diffuse (angle large) et positionnée derrière le joueur. La balle va être conçue en créant une sphère de petit diamètre. On lui attribue une détection de collision de type sphérique. Elle est ensuite positionnée. Tout objet ayant ici besoin d'un sens, vous devez donc l'orienter. C'est cette orientation qui détermine le sens de déplacement de la balle. La coordonnée Y représente en fait la profondeur et non la hauteur comme on aurait pu s'y attendre. La raquette est rendue semi-transparente par l'instruction ghost. Pour obtenir des briques en damier, nous utiliserons une double boucle imbriquée, qui teste l'état pair ou impair du compteur. Les parois sont d'abord créées, pivotées, placées, colorées puis texturées. La caméra est enfin positionnée derrière la raquette et orientée vers l'avant.

Nous allons incorporer, -f_It_crre dans une boucle sans fin Do Loop, toutes les instructions principales de gestion. La gestion du déplacement de , abeeTZeilj" ;inaoeljettevame , • Mlle. la raquette est dévolue aux 14e touches fléchées du clavier. Plutôt que de choisir un pas fixe, nous avons opté pour un incrément variable, valdep#, qui correspond aussi à celui de la balle. Ainsi, le joueur ne sera pas handicapé par l'accélération de la balle, la raquette se positionnant aussi plus vite. Les tests de contrôle des coordonnées de la raquette (aX# et aY#) permettent de limiter le déplacement de cette raquette au cadre voulu. Le déplacement de la balle est géré très simplement en incrémentant son déplacement de la valeur valdep#. Ce déplacement s'effectue dans le sens de l'orientation de l'objet. Le test de collision est assuré par l'instruction "object collision". En mettant à 0 le second paramètre, le programme teste toutes les collisions de la balle (objet 1000) et renvoie le numéro de l'objet concerné, chaque objet ayant un numéro (variable "objettouche"). On peut ainsi moduler la réaction de la balle en fonction de la surface touchée, quelques tests conditionnels permettant d'appeler la routine appropriée. La perte de la balle est testée en vérifiant si sa coordonnée Z est supérieure à celle de la raquette (avec une petite marge pour tenir compte de la taille de la balle). Un dernier test vérifie si la variable nballe est égale à 0, ce qui conduit à la fin du jeu.
'1 .‘ . C. IVIM.,enese

168

svni Février 2002

Dans le même esprit

Compliquer le jeu
Il est bien sûr possible d'améliorer ce programme. Vous pouvez ainsi profiter de la commande "mousemovex" et "mousemovey" pour contrôler la raquette à la souris. Pour un contrôle à la manette de jeu, il faudra user de "joystick

up/down/left/right". Les possesseurs d'un joystick à retour de force peuvent même faire ressentir l'impact de la balle sur la raquette avec la commande "force impact". Parmi les autres améliorations à envisager, on peut citer différentes couches successives de briques, des briques spéciales (bonus, briques résistantes, etc.), la possibilité de déplacer la raquette vers l'avant ou de recommencer le jeu sans le relancer.

Si vous vous sentez une âme de designer de jeu, mais que vous n'avez pas d'affinité pour la programmation en Basic, vous pouvez faire vos premières armes sur des outils préconçus. Dans ce domaine, Mugen, le moteur gratuit de jeux de combat (à télécharger sur www.elecbyte.com), offre un bon éventail de possibilités. Pour la 3D, on peut aussi recommander 3D Game Studio (de 43 €/ 280 F à 1100 €/ 7220F en version pro), très puissant mais destiné à des initiés (infos sur http://conitec.net). Sans oublier les différents éditeurs de mondes, scénarios, niveaux, civilisations et engins qui enrichissent souvent les jeux de stratégie et de simulation.

chiez Edition Vue. Aide Ex&cnrc,

bangeueut2 Play eound 1 anD • ob]tect
;,ay seund 1 eut/ • ob2ece angle IltIOP «Y* • objec,angle 0(1001! anZt • ob,eet angle 1(1007. ballet • oballeXt bellet • oba11e01 belieZt • ebelleZ$ pos/tIon ab,ect 1000.belleXt belleYt balle1t ealdept•valiebee 1

t• 1.1

_

sout0ne sertaos du terseln Vrle C 1,1M. - Se belleY* SS - 100

SS./YS•e•SerilitSSM '

setextIon abyme, 1000.1.11.0, bel/eVe belle21 ebee11e • ,,balle - 1 use ee te, setIttelee avec tee gue eb sbaugententl , te," eFteet ette«,,,he lues

Lorsque la balle est perdue, elle est recréée dans sa position initiale. La rotation Y (profondeur) est définie à 180, pour que la balle aille vers l'avant. Les rotations X et Z (largeur/hauteur) sont paramétrées pour faire varier aléatoirement de +/- 15° l'angle de départ à chaque nouvelle balle (en soustrayant 15 à un nombre de 0 à 30). L'instruction "wrapvalue", qui effectue un modulo 360, permet de rester dans le domaine de définition de cette fonction angle de rotation. La variable nballe est décrémentée de 1 pour traduire la perte de la balle. La collision avec une brique induit le rebond de la balle (y. plus loin) et la destruction de la brique. Pour cela, on fait disparaître l'objet (instruction "delete object") correspondant à la variable objettouche, ou on le cache (instruction "hide object") pour pouvoir le réutiliser. Un bruitage particulier est joué (son 2) et le score est incrémenté de 1; à 25 (nombre total de briques), la victoire est annoncée.

Le rebond sur les murs, plafond et plancher est géré par la routine "changement2". Après le petit bruitage de rebond, l'orientation au moment de l'impact est mémorisée et l'objet replacé dans sa position juste avant impact (en attribuant aux coordonnées de la balle les "anciennes" coordonnées stockées pendant la boucle principale), pour éviter que la balle ne disparaisse dans une paroi. La valeur valdep# est légèrement incrémentée, la balle s'accélérant ainsi progressivement au fil de ses rebonds successifs sur les parois (ainsi que sur les briques). Toutefois, cette vitesse est bridée à 5 pour des raisons de jouabilité. Tout comme l'angle de départ d'une nouvelle balle, l'angle de rebond varie aléatoirement dans des limites fixées (90° +/-150), pour parer à tout mouvement perpétuel. Le rebond sur la raquette (routine changement) réinitialise la vitesse de la balle à sa vitesse initiale. (valdep#=2). Là encore, le rebond varie aléatoirement dans des limites contrôlées (+/- 15° horizontalement et verticalement). Le rebond sur le fond et les briques (routine changement1) est réalisé plus simplement, la balle effectuant seulement un demi-tour (mais rien n'empêcherait d'y ajouter là aussi un rebond semi-aléatoire).

Février 2002

SVI11 169




Autres parutions de ce magazine  voir tous les numéros


Liens vers cette page
Couverture seule :


Couverture avec texte parution au-dessus :


Couverture avec texte parution en dessous :


SVM numéro 201 février 2002 Page 1SVM numéro 201 février 2002 Page 2-3SVM numéro 201 février 2002 Page 4-5SVM numéro 201 février 2002 Page 6-7SVM numéro 201 février 2002 Page 8-9SVM numéro 201 février 2002 Page 10-11SVM numéro 201 février 2002 Page 12-13SVM numéro 201 février 2002 Page 14-15SVM numéro 201 février 2002 Page 16-17SVM numéro 201 février 2002 Page 18-19SVM numéro 201 février 2002 Page 20-21SVM numéro 201 février 2002 Page 22-23SVM numéro 201 février 2002 Page 24-25SVM numéro 201 février 2002 Page 26-27SVM numéro 201 février 2002 Page 28-29SVM numéro 201 février 2002 Page 30-31SVM numéro 201 février 2002 Page 32-33SVM numéro 201 février 2002 Page 34-35SVM numéro 201 février 2002 Page 36-37SVM numéro 201 février 2002 Page 38-39SVM numéro 201 février 2002 Page 40-41SVM numéro 201 février 2002 Page 42-43SVM numéro 201 février 2002 Page 44-45SVM numéro 201 février 2002 Page 46-47SVM numéro 201 février 2002 Page 48-49SVM numéro 201 février 2002 Page 50-51SVM numéro 201 février 2002 Page 52-53SVM numéro 201 février 2002 Page 54-55SVM numéro 201 février 2002 Page 56-57SVM numéro 201 février 2002 Page 58-59SVM numéro 201 février 2002 Page 60-61SVM numéro 201 février 2002 Page 62-63SVM numéro 201 février 2002 Page 64-65SVM numéro 201 février 2002 Page 66-67SVM numéro 201 février 2002 Page 68-69SVM numéro 201 février 2002 Page 70-71SVM numéro 201 février 2002 Page 72-73SVM numéro 201 février 2002 Page 74-75SVM numéro 201 février 2002 Page 76-77SVM numéro 201 février 2002 Page 78-79SVM numéro 201 février 2002 Page 80-81SVM numéro 201 février 2002 Page 82-83SVM numéro 201 février 2002 Page 84-85SVM numéro 201 février 2002 Page 86-87SVM numéro 201 février 2002 Page 88-89SVM numéro 201 février 2002 Page 90-91SVM numéro 201 février 2002 Page 92-93SVM numéro 201 février 2002 Page 94-95SVM numéro 201 février 2002 Page 96-97SVM numéro 201 février 2002 Page 98-99SVM numéro 201 février 2002 Page 100-101SVM numéro 201 février 2002 Page 102-103SVM numéro 201 février 2002 Page 104-105SVM numéro 201 février 2002 Page 106-107SVM numéro 201 février 2002 Page 108-109SVM numéro 201 février 2002 Page 110-111SVM numéro 201 février 2002 Page 112-113SVM numéro 201 février 2002 Page 114-115SVM numéro 201 février 2002 Page 116-117SVM numéro 201 février 2002 Page 118-119SVM numéro 201 février 2002 Page 120-121SVM numéro 201 février 2002 Page 122-123SVM numéro 201 février 2002 Page 124-125SVM numéro 201 février 2002 Page 126-127SVM numéro 201 février 2002 Page 128-129SVM numéro 201 février 2002 Page 130-131SVM numéro 201 février 2002 Page 132-133SVM numéro 201 février 2002 Page 134-135SVM numéro 201 février 2002 Page 136-137SVM numéro 201 février 2002 Page 138-139SVM numéro 201 février 2002 Page 140-141SVM numéro 201 février 2002 Page 142-143SVM numéro 201 février 2002 Page 144-145SVM numéro 201 février 2002 Page 146-147SVM numéro 201 février 2002 Page 148-149SVM numéro 201 février 2002 Page 150-151SVM numéro 201 février 2002 Page 152-153SVM numéro 201 février 2002 Page 154-155SVM numéro 201 février 2002 Page 156-157SVM numéro 201 février 2002 Page 158-159SVM numéro 201 février 2002 Page 160-161SVM numéro 201 février 2002 Page 162-163SVM numéro 201 février 2002 Page 164-165SVM numéro 201 février 2002 Page 166-167SVM numéro 201 février 2002 Page 168-169SVM numéro 201 février 2002 Page 170-171SVM numéro 201 février 2002 Page 172-173SVM numéro 201 février 2002 Page 174-175SVM numéro 201 février 2002 Page 176-177SVM numéro 201 février 2002 Page 178-179SVM numéro 201 février 2002 Page 180-181SVM numéro 201 février 2002 Page 182-183SVM numéro 201 février 2002 Page 184