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

piqure de rappel aux NewB's

luxregina
luxregina
Niveau 10
09 juin 2004 à 17:16:25

Juste un petit mot pour rappeller ( puisque je me dois d´être le monsieur Flash du forum :)) que Flash reste une alternative assez simple à apprendre, et puissante pour faire des jeux vidéos et commencer à aligner ses productions sur la scène amateur...

Hormis la 3D, Flash peut permettre de produire pas mal de styles de jeux différents.

La partie programmation néssecaire à la création d´un jeu Flash, si elle n´est pas aussi simple que RPGMachinTruc, est tout de même plus facile que de developper en C++ ou n´importe quel autre langage bas niveau.

Et cela aura au moins de poser des bases, et de vous permettre de voir si vous souhaitez vous investir dans un langage plus complexe.

fil_razorback
fil_razorback
Niveau 10
09 juin 2004 à 18:29:23

et tu pourrais en profiter pour indioquer un bon cours.livre? mmmh?

hs_dino
hs_dino
Niveau 9
09 juin 2004 à 20:59:29

et tu pourrais en profiter pour indioquer un bon cours.livre? mmmh?

Mais il va meme mettre en ligne des exemples de sources codes :)

luxregina
luxregina
Niveau 10
09 juin 2004 à 23:14:27

Remarque, je pourrais presque :)

Perso, et pour les anglophones, je recommanderais Flash MX game design demystified, de Jobe Makar ( qui est un gars incroyablement gentil, que vous pouvez contacter sur FlashKit ) ainsi que toute la serie de Friends of Ed, qui je crois, a été traduit en français . ..

luxregina
luxregina
Niveau 10
09 juin 2004 à 23:15:46

pis pour le code source, et pour montrer au progeux que l´on ne vit pas dans un monde si différent, voici :

( o = this.createEmptyMovieClip( " point" , 0 ) ).lineStyle(7,0xffcc00)
o.moveTo(4,4)
o.lineTo(4.5,4);
map= new String("
%C2%80%C2%80%C2%80%C2%80A%02A%02%5F%7E%60%3ESFR%26
%5F%7E%60%3EA%01%01%02%5Fp%7C%3E%5Fp%7C%3EAbD%02%7
F%7E%60%40%03%7E%60%21%03a%04%21%03o%3C%21%7Fo%3C%
40%01%0D%19%01%7Fp%7C%40%03p%7C%21%03a%04%21%03p%7
C%21%7Fp%7C%40A%02A%02%5F%7E%60%3E%5F%7E%60%3EG%01
%012wp%7C8wp%7C8AbD%02%60%7E%60%7E%60%7E%60%7EA%01
%01%02%C2%80%C2%80%C2%80%C2%80,%01%01%01%01%40%7F%
40%7F%22%03%21C%22%03%21C%22%03%21C%40%C2%80%C2%80
%7F%22%11%05C%22%11%05C%40%1F%3D%7F%02%01%01A%02%0
1%01A%02%01%01A%02%01%01A%02%01%01A%02%01%01A%02%0
1%01A%02%01%01A%02%01%01A%02%01%01A%02%01%01A%40%7
F%40%7F%22%03%21C%22%03%21C%3A%7F%40O%0A%11%05I%0A
%11%05I%40%1F%3D%7F%21%03%21%03%21%03%21%03%40%C2%
80%C2%80%7F%01%01%01%01").split(",");
for ( var i = 0, eats = 0 ; i < 28 * 31 ; i++ ) {
occ = ( (dec=new
String("0000000").substr(0,7-(dec=(unescape(map[0]
).charAt(int(i/7)).charCodeAt(0)-1).toString(2)).l
ength)+dec).charAt(i%7)==1);
eat = ( (dec=new
String("0000000").substr(0,7-(dec=(unescape(map[1]
).charAt(int(i/7)).charCodeAt(0)-1).toString(2)).l
ength)+dec).charAt(i%7)==1);
new
Color(o.duplicateMovieClip("t_"+i,++d,{_x:(i%28)*8
,_y:int(i/28)*8,occ:occ})).setRGB(occ?0xee9933:0x0
);
if(eat)new
Color(o.duplicateMovieClip("e_"+i,++d,{_x:(i%28)*8
+2,_y:int(i/
28)*8+2,_xscale:50,_yscale:50,onUnload:function(){

if(!(--eats)){trace( " CONGRATULATIONS! LEVEL
COMPLETE!");_root.gameover=true;}}},eats++)).setRG
B(0x00ff00);
}
o.duplicateMovieClip("player",++d,{ _x: 13 * 8, _y: 23 * 8 } ) .onEnterFrame = function ( ) {
if ( (this._x+=vx)%8==0&&(this._y+=vy)%8==0){

vx=((usercode=(Key.isDown(Key.RIGHT))?1:(Key.isDow
n(Key.LEFT))?2:(Key.isDown(Key.DOWN))?3:(Key.isDow
n(Key.UP))?4:0)==1&&!_root["t_"+((this._x>>3)+1+((
this._y>>3)*28))].occ)*2+(usercode==2&&!_root["t_"
+((this._x>>3)-1+((this._y>>3)*28))].occ)*-2;

vy=(usercode==3&&!_root["t_"+((this._x>>3)+(((this
._y>>3)+1)*28))].occ)*2+(usercode==4&&!_root["t_"+
((this._x>>3)+(((this._y>>3)-1)*28))].occ)*-2;

_root["e_"+((this._x>>3)+(((this._y>>3))*28))].rem
oveMovieClip();
}
this._x= ( this._x == 216 && usercode == 1 ) ? 0 : ( this._x == 0 && usercode == 2 ) ? 216 : this._x;
}
for ( e=0;e<5;e++,new Color(enemy).setRGB(0xff0000)){
( enemy = o.duplicateMovieClip("enemy_"+e,++d,{ _x: 13 * 8, _y: 13 * 8 } ) ).onEnterFrame = function ( ) {
if ( ( this._x += this.dir.x ) % 8 == 0 && ( this._y += this.dir.y) % 8 == 0 ) {
this._x = ( this._x == 216 && this.dir.x == 2 ) ? 0 : ( this._x == 0 && this.dir.x == -2 ) ? 216 : this._x;
possible = [];
if (
!_root["t_"+(((this._x>>3)+1)+((this._y>>3)*28))].
occ && this.dir.x ! =-2 ) possible.push ( { x: 2, y: 0 } ) ;
if (
!_root["t_"+(((this._x>>3)-1)+((this._y>>3)*28))].
occ && this.dir.x ! = 2 ) possible.push ( { x:-2, y: 0 } ) ;
if (
!_root["t_"+((this._x>>3)+(((this._y>>3)+1)*28))].
occ && this.dir.y ! =-2 ) possible.push ( { x: 0, y: 2 } ) ;
if (
!_root["t_"+((this._x>>3)+(((this._y>>3)-1)*28))].
occ && this.dir.y ! = 2 ) possible.push ( { x: 0, y:-2 } ) ;
this.dir = possible[ random( possible.length ) ];
}
if ( _root.gameover || ( _root.gameover = ( (this._x-(p =
_root.player)._x)*(this._x-p._x)+(this._y-p._y)*(t
his._y-p._y)<64))) {
trace( " GAME OVER." ) ;
delete this.onEnterFrame;
delete p.onEnterFrame;
}
}
}

Copier ceci dans la premiere frame, compiler, et vla un pacman ( heu . .. dois-je préciser que ce n´est pas de moi ? ; ) )

luxregina
luxregina
Niveau 10
09 juin 2004 à 23:17:17

je sais, ca a l´air compliqué : mais c´est uniquement parceque le challenge était de faire le pacman avec le code le plus court possible : un vrai pac-man, sans se soucier de la longueur du code, peut être beaucoup plus simple et moins confus :)

LGV
LGV
Niveau 28
09 juin 2004 à 23:38:12

c´est une participation au topic " obfuscated code" qu´on a lancé avec kUfa ? . . ah non, pardon..

eh eh ; ))

luxregina
luxregina
Niveau 10
09 juin 2004 à 23:55:59

lol - nan, même pas !

Mais l´obsfucated code en Flash est particulierment pertinent car il est très facile de décompiler un . swf

En ce qui me concerne, j´ai toujours décidé de ne pas verser dans ces pratiques, partant du principe que si quelqu´un sait interpreter mon code, cela veut dire qu´il serait de toute façon à même d´arriver aux mêmes résultats avec un peu de travail . .. surtout sachant que dans Flash, le code peut être rattaché à n´importe quel objet présent dans l´animation, decrypter peut devenir labyrinthique :)

JeanYvesYves
JeanYvesYves
Niveau 10
10 juin 2004 à 00:45:29

impressionnant ce code ! !
on voit les données directement dans le code !

luxregina
luxregina
Niveau 10
10 juin 2004 à 00:49:53

oui : touffu mais assez simple, sauf que sans l´indentation, on s´y perd facilement :)

En fait, c´est tout l´opposé de " l´obsfucated" : chaque fonction est ecrite pour être le plus efficace possible, selon la syntaxe de Flash, bien entendu :)

luxregina
luxregina
Niveau 10
10 juin 2004 à 00:53:19

Dois je preciser que seules ces quelques ligne font un pacman ?

Elles font la carte, les sprites ( simples ) , le gameplay et l´IA ( simple aussi) . .. rien à rajouter : tout est là ! :)

in_the_club
in_the_club
Niveau 4
10 juin 2004 à 01:18:17

moi jai just rien compris...

( o = this.createEmptyMovieClip( " point" , 0 ) ) .lineStyle(7,0xffcc00)
o.moveTo(4,4)
o.lineTo(4.5,4);
map= new String("

%C2%80%C2%80%C2%80%C2%80A%02A%02%5F%7E%60%3ESFR%26

%5F%7E%60%3EA%01%01%02%5Fp%7C%3E%5Fp%7C%3EAbD%02%7

F%7E%60%40%03%7E%60%21%03a%04%21%03o%3C%21%7Fo%3C%

40%01%0D%19%01%7Fp%7C%40%03p%7C%21%03a%04%21%03p%7

C%21%7Fp%7C%40A%02A%02%5F%7E%60%3E%5F%7E%60%3EG%01

%012wp%7C8wp%7C8AbD%02%60%7E%60%7E%60%7E%60%7EA%01

%01%02%C2%80%C2%80%C2%80%C2%80,%01%01%01%01%40%7F%

40%7F%22%03%21C%22%03%21C%22%03%21C%40%C2%80%C2%80

%7F%22%11%05C%22%11%05C%40%1F%3D%7F%02%01%01A%02%0

1%01A%02%01%01A%02%01%01A%02%01%01A%02%01%01A%02%0

1%01A%02%01%01A%02%01%01A%02%01%01A%02%01%01A%40%7

F%40%7F%22%03%21C%22%03%21C%3A%7F%40O%0A%11%05I%0A

%11%05I%40%1F%3D%7F%21%03%21%03%21%03%21%03%40%C2%

80%C2%80%7F%01%01%01%01").split(",");
for ( var i = 0, eats = 0 ; i < 28 * 31 ; i++ ) {
occ = ( ( dec=new

String("0000000").substr(0,7-(dec=(unescape(map[0]

).charAt(int(i/7)).charCodeAt(0)-1).toString(2)).l

ength)+dec).charAt(i%7)==1);
eat = ( ( dec=new

String("0000000").substr(0,7-(dec=(unescape(map[1]

).charAt(int(i/7)).charCodeAt(0)-1).toString(2)).l

ength)+dec).charAt(i%7)==1);
new

Color(o.duplicateMovieClip("t_"+i,++d,{_x:(i%28)*8

,_y:int(i/28)*8,occ:occ})).setRGB(occ?0xee9933:0x0

) ;
if(eat)new

Color(o.duplicateMovieClip("e_"+i,++d,{_x:(i%28)*8

+2,_y:int(i/

28)*8+2,_xscale:50,_yscale:50,onUnload:function(){

if(!(--eats)){trace( " CONGRATULATIONS! LEVEL

COMPLETE!");_root.gameover=true;}}},eats++)).setRG

B(0x00ff00);
}
o.duplicateMovieClip("player",++d,{ _x: 13 * 8, _y: 23 * 8 } ) . onEnterFrame = function ( ) {
if ( ( this._x+=vx)%8==0&&(this._y+=vy)%8==0){

vx=((usercode=(Key.isDown(Key.RIGHT))?1:(Key.isDow

n(Key.LEFT))?2:(Key.isDown(Key.DOWN))?3:(Key.isDow

n(Key.UP))?4:0)==1&&!_root["t_"+((this._x>>3)+1+((

this._y>>3)*28))].occ)*2+(usercode==2&&!_root["t_"

+((this._x>>3)-1+((this._y>>3)*28))].occ)*-2;

vy=(usercode==3&&!_root["t_"+((this._x>>3)+(((this

._y>>3)+1)*28))].occ)*2+(usercode==4&&!_root["t_"+

( (this._x>>3)+(((this._y>>3)-1)*28))].occ)*-2;

_root["e_"+((this._x>>3)+(((this._y>>3))*28))].rem

oveMovieClip();
}
this._x= ( this._x == 216 && usercode == 1 ) ? 0 : ( this._x == 0 && usercode == 2 ) ? 216 : this._x;
}
for ( e=0;e<5;e++,new Color(enemy).setRGB(0xff0000)){
( enemy = o.duplicateMovieClip("enemy_"+e,++d,{ _x: 13 * 8, _y: 13 * 8 } ) ) .onEnterFrame = function ( ) {
if ( ( this._x += this.dir.x ) % 8 == 0 && ( this._y += this.dir.y) % 8 == 0 ) {
this._x = ( this._x == 216 && this.dir.x == 2 ) ? 0 : ( this._x == 0 && this.dir.x == -2 ) ? 216 : this._x;
possible = [];
if (

!_root["t_"+(((this._x>>3)+1)+((this._y>>3)*28))].

occ && this.dir.x ! =-2 ) possible.push ( { x: 2, y: 0 } ) ;
if (

!_root["t_"+(((this._x>>3)-1)+((this._y>>3)*28))].

occ && this.dir.x ! = 2 ) possible.push ( { x:-2, y: 0 } ) ;
if (

!_root["t_"+((this._x>>3)+(((this._y>>3)+1)*28))].

occ && this.dir.y ! =-2 ) possible.push ( { x: 0, y: 2 } ) ;
if (

!_root["t_"+((this._x>>3)+(((this._y>>3)-1)*28))].

occ && this.dir.y ! = 2 ) possible.push ( { x: 0, y:-2 } ) ;
this.dir = possible[ random( possible.length ) ];
}
if ( _root.gameover || ( _root.gameover = ( ( this._x-(p =

_root.player)._x)*(this._x-p._x)+(this._y-p._y)*(t

his._y-p._y)<64))) {
trace( " GAME OVER." ) ;
delete this.onEnterFrame;
delete p.onEnterFrame;
}
}
}

luxregina
luxregina
Niveau 10
10 juin 2004 à 07:38:34

t´avais vraiment besoin de copier coller le code une deuxième fois ?

NaN
NaN
Niveau 5
10 juin 2004 à 19:15:15

Les retours à la lignes ne correspondent pas au code ASP, et c´est la merde pour debugger.

J´ai cette erreur :

Séquence = Séquence 1, Calque = Calque 1, Image = 1 : Ligne 27 : ´)´ attendu
if (
!_root["t_"+(((this._x>>3)+1)+((this._y>>3)*28))].
occ && this.dir.x ! =-2 ) possible.push ( { x: 2, y: 0 } ) ;

A propos cette ligne semble proposer la structure :
if ( condition) effets;

La forme :
if ( condition){effets;}

n´est-elle pas nécessaire ?

luxregina
luxregina
Niveau 10
10 juin 2004 à 19:27:41

Nan nan ! la ligne est bonne, mais les retours chariots sont importants : pas moyen d´indenter le code sur ce forum :(

Je t´ai mis en ligne le fla incluant le bon code.

Le codage a été fait par André-Michelle :)

http://grafikdezign.free.fr/flashkit/pacman.fla

NaN
NaN
Niveau 5
10 juin 2004 à 20:39:39

Merci je vais le télécharger.

Donc on peut se passer des accolades après un if() ?

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