Creation de jeux en flash :: tutoriel 01 - jeux de circuit à la wipeout (version flash mx)

Soyez le premier à donner votre avis sur cette source.

Vue 56 131 fois - Téléchargée 10 384 fois

Description

Pour ce premier tutorial, je V expliquera l'aide d'un fichier simple
commet creer son propre jeux.
On va commencer par un jeux de circuit, genre jeux de voiture.
ici, il sagit d'un vaisseau futuriste anti gravité (genre wipeout)

le fichier fla contient le vaisseau (avec ombre en fausse 3D) et un circuit.

le vaiseau tourne mais ne se deplace pas.
C le circuit qui se deplace, ça donne un effet plus realiste et ça permet
de jouer sur les cartes plus grandes.

l'ombre et le vaisseau sont dans un group, pas dans un clip.

Tous le code de l'anim se situe dans le clip "pod".
pour y acceder, rentrez dans le groupe et cliquez sur le clip "pod".

Le jeux à été developpé sous flash MX.
si vous n'avez pas flash MX, telechargez la version flash 5 du tutoriel.

Conclusion :


les autres tutor porterons sur l'integration d'autres éléments comme les arbres, l'eau, les limites de terrains, les adversaires, l'inscription des meilleurs score dans une base de données, l'integration de sheatcodes, etc...
@++ et travaillez bien!

Pour comprendre les prochain tutor, vous devrez maitriser au moins ce qui se trouve dans cet anim (sauf les maths bien sur! :)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

BlackWizzard
Messages postés
1277
Date d'inscription
mercredi 21 mars 2001
Statut
Modérateur
Dernière intervention
21 juin 2009
2 -
personne ne commente?
je vois partout dans le forum "comment on crée un jeux", alors je fait un tutoriel et
personne ne le commente...
je sais pas si je V sortir les suivants! :(
AlchemyProg
Messages postés
5
Date d'inscription
samedi 11 mai 2002
Statut
Membre
Dernière intervention
20 mai 2002
-
Bon non moi je vais te noter mec car tu fais du trop bon bouleau tu est un pro pour moi alors stp continue tes tuto comme ca je les places sur mon site avec ton pseudo et si tu veu on pourrait communiquer plus emplement. mon maiest alchemy123007@hotmail.com. cimer mais je trouve pas le code qu'il ya sur le jeu !!! il est ou stp ??????????
bassman64
Messages postés
100
Date d'inscription
samedi 27 octobre 2001
Statut
Membre
Dernière intervention
24 janvier 2003
-
AlchemyProg, Le code est la : :) faut cliquer deux foix sur le vaisseau puis ouvrir la fenêtre des scripts.

onClipEvent (load) {
// declaration des variables
thrust = 1;
// step
decay = .8;
// vitesse de ralentissement
maxSpeed = 15;
// vitesse maximal
}
onClipEvent (enterFrame) {
// en gros, ce truc ça veut dire que tout ce code
// va etre executé en continue...
// on recupere la touche préssé et on oriente en fonction ::
if (Key.isDown(Key.RIGHT)) {
// touche directionnel droite
_rotation += 10;
// "_rotation" equivaut à "this._rotation"
// "_rotation +10;" equivaut à "_rotation _rotation + 10;"
// on a juste mis le "+" avant le "=".
// ça fonctionne aussi pour les autres operateurs :: + - * /
_root.podshadow._rotation += 10;
// on oriente l'ombre aussi!
}
if (Key.isDown(Key.LEFT)) {
// touche directionnel gauche
_rotation -= 10;
_root.podshadow._rotation -= 10;
}
//
//
if (Key.isDown(Key.UP)) {
// touche directionnel avant
// on calcul la vitesse et la direction en fonction de la rotation...
// je ne V pas expliquer le calcul, il est pas de moi et de toute facon, je ne vois pas l'interret! :)
xSpeed += thrust*Math.sin(_rotation*(Math.PI/180));
ySpeed += thrust*Math.cos(_rotation*(Math.PI/180));
flames._visible = 1;
// comme on avance, on rend la flamme arriere visible
// flame est le nom du clip qui est lui meme dans le clip "pod" ou "this"
// C pour ça qu'on precise pas ou se trouve le clip "flame".
uflame._visible = 0;
// comme on avance on rend les flammes avant invisible.
} else if (Key.isDown(Key.DOWN)) {
// touche directionnel arriere
// ici, C le meme code que pour la touche avant mais en inverse...
xSpeed -= thrust*Math.sin(_rotation*(Math.PI/180));
ySpeed -= thrust*Math.cos(_rotation*(Math.PI/180));
uflame._visible = 1;
flames._visible = 0;
} else if (Key.isDown(Key.SPACE)) {
// touche "espace", sert a freiner...
xSpeed *= 0.7;
// on multiplie la vitesse par 0.7, ce qui a pour effet
// de la diminuer progressivement mais rapidement
ySpeed *= 0.7;
// idem...
uflame._visible = 0;
// on freine, alors on vire toutes les flames...
flames._visible = 0;
} else {
// si une autre touche est pressé ou si rien n'est pressé,
// alors on ralenti la vitesse tres legerement (voir la valeur de la variable decay en haut)
xSpeed *= decay;
ySpeed *= decay;
flames._visible = 0;
// et on vire les flames...
uflame._visible = 0;
}
//
// Pour eviter de depasser la vitesse limite (variable maxspeed en haut)
speed = Math.sqrt((xSpeed*xSpeed)+(ySpeed*ySpeed));
if (speed>maxSpeed) {
xSpeed *= maxSpeed/speed;
ySpeed *= maxSpeed/speed;
}
//
// bouger la carte et non pas le pop
_root.map._y += ySpeed;
_root.map._x -= xSpeed;
}
//
// Voila!
// vous avez créé votre premier jeux!
// vous pouvez ameliorer tres facilement,
// mettre des obstacle, baisser la viteese quand on sort
// de la piste, eviter de sortir du terrain, etc...
// C le but de la prochainne lecon !
// comming soon! :p
//
bassman64
Messages postés
100
Date d'inscription
samedi 27 octobre 2001
Statut
Membre
Dernière intervention
24 janvier 2003
-
En passant ! BlackWizzard il est super ton tuto ! faudrais que t'en fasse plein ;))
cs_shilo
Messages postés
4
Date d'inscription
dimanche 19 mai 2002
Statut
Membre
Dernière intervention
22 mai 2002
-
une idée black wizzard, pkoi ne pas utiliser de fonctions dans ton code:

------------
...
onClipEvent (load) {
// declaration des variables
COEF = Math.PI / 180;
thrust = 1;
// step
decay = .8;
// vitesse de ralentissement
maxSpeed = 15;
// vitesse maximal
function rot(dir)
{
_rotation += dir;
_root.podshadow._rotation = _rotation;
r = _rotation * COEF;
}
function go(dir)
{
xSpeed += dir * Math.sin(r);
ySpeed += dir * Math.cos(r);
}
function fl (a,b) {
uflame._visible = a;
flames._visible = b;
}

}
onClipEvent (enterFrame) {
if (Key.isDown(Key.RIGHT))
{
rot(10);
}
if (Key.isDown(Key.LEFT))
{
rot(-10);
}
if (Key.isDown(Key.UP))
{
go(thrust);
fl(0,1);
}

...
------------

@+

shilo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.