IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Pascal Discussion :

Sapin de Noël


Sujet :

Flash Pascal

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 166
    Billets dans le blog
    9
    Par défaut Sapin de Noël
    Bonsoir !

    Voici un modeste essai de sapin de Noël.

    Pour faire les boules, j'ai copié le code des bombes du Démineur de Paul Toth.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    {$FRAME_WIDTH 210}
    {$FRAME_HEIGHT 400}
    {$BACKGROUND $303030}
     
    program Sapin;
     
    uses
      Flash8, Couleurs, Etoile;
     
    { --- Extrait modifié de FlashMine.fpr --------------------------------------- }
     
    type
      TBoule = class(MovieClip)
        constructor Create(Name: string; x, y, c, d: Integer);
        procedure Circle(radius: Integer);
        procedure IsBomb(color: Integer);
      end;
     
      TMatrix = class
        matrixType: string;
        x,y,w,h   : Double;
        r         : Double;
        constructor Create;
      end;
     
    var
      Boules  : array[0..9] of TBoule;
      Matrix : TMatrix;
     
    constructor TBoule.Create(Name: string; x, y, c, d: Integer);
    begin
      inherited Create(nil, Name, d);
      _x := x;
      _y := y;
      IsBomb(c);
    end;
     
    procedure TBoule.Circle(Radius: Integer);
    var
      a    : Double;
      c1,s1: Double;
      c2,s2: Double;
      r2   : Double;
    begin
      a := 3.14/4;
      c1 := cos(a);
      s1 := sin(a);
      a := 3.14/8;
      c2 := cos(a);
      s2 := sin(a);
      r2 := 11 * Radius/10;
      moveTo(0,Radius);
      curveTo( r2*s2, r2*c2, Radius*s1, Radius*c1);
      curveTo( r2*c2, r2*s2, Radius,0);
      curveTo( r2*c2,-r2*s2, Radius*s1,-Radius*c1);
      curveTo( r2*s2,-r2*c2, 0,-Radius);
      curveTo(-r2*s2,-r2*c2,-Radius*c1,-Radius*s1);
      curveTo(-r2*c2,-r2*s2, -Radius,0);
      curveTo(-r2*c2, r2*s2,-Radius*c1, Radius*s1);
      curveTo(-r2*s2, r2*c2, 0,Radius);
    end;
     
    procedure TBoule.IsBomb(color: Integer);
    begin
      lineStyle(0, color);
      beginGradientFill('radial', [$ffffff, color], [100,100], [0,255], Matrix);
      circle(8);
      endFill;
    end;
     
    constructor TMatrix.Create;
    begin
      matrixType := 'box';
      x := -4.5;
      y := -4.5;
      w := 6;
      h := 6;
      r := 0;
    end;
     
    { --- Fin de l'extrait ------------------------------------------------------- }
     
    var
      Etoile: TEtoile;
      i: Integer;
     
    begin
      with _root do
      begin
        lineStyle(0, Bistre);
        moveTo(100-10, 355);
        beginFill(DarkBrown);
        lineTo(100+10, 355);
        lineTo(100+10, 395);
        lineTo(100-10, 395);
        lineTo(100-10, 355);
        endFill();
        lineStyle(0, DarkGreen);
    	for i := 0 to 4 do
    	begin
          moveTo(100, 275-60*i);
          beginFill(Green);
          lineTo(100+80, 355-60*i);
          lineTo(100-80, 355-60*i);
          lineTo(100, 275-60*i);
          endFill();
        end;
      end;
     
      Matrix := TMatrix.Create;
     
      Boules[0] := TBoule.Create('cell_0', 020+10, 355+10, DarkRed, 0);
      Boules[1] := TBoule.Create('cell_0', 180-10, 355+10, DarkRed, 1);
      Boules[2] := TBoule.Create('cell_0', 020+10, 295+10, DarkRed, 2);
      Boules[3] := TBoule.Create('cell_0', 180-10, 295+10, DarkRed, 3);
      Boules[4] := TBoule.Create('cell_0', 020+10, 235+10, DarkRed, 4);
      Boules[5] := TBoule.Create('cell_0', 180-10, 235+10, DarkRed, 5);
      Boules[6] := TBoule.Create('cell_0', 020+10, 175+10, DarkRed, 6);
      Boules[7] := TBoule.Create('cell_0', 180-10, 175+10, DarkRed, 7);
      Boules[8] := TBoule.Create('cell_0', 020+10, 115+10, DarkRed, 8);
      Boules[9] := TBoule.Create('cell_0', 180-10, 115+10, DarkRed, 9);
     
      Etoile := TEtoile.Create(nil, '', 10);
      Etoile._x := 100;
      Etoile._y := 20;
      Etoile.tracerUneEtoile(4, 14, 8, Tangerine, Yellow);
    end.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    unit Etoile;
     
    interface
     
    uses
      Flash8;
     
    { --- Extrait d'Etoile.fpr --------------------------------------------------- }
     
    type
      TEtoile = class(MovieClip)
        procedure tracerUneEtoile(r1, r2, n, c1, c2: Integer);
      end;
     
    implementation
     
    procedure TEtoile.tracerUneEtoile(r1, r2, n, c1, c2: Integer);
    var
      da : Double;
       i : Integer;
       a : Double;
       r : Integer;
     x,y : Double;
    begin
      da := Math.PI / n;
      lineStyle(0, c1);
      moveTo(r2, 0);
      beginFill(c2);
      for i := 1 to 2 * n do
      begin
        a := da * i;
        if (i mod 2) = 0 then
          r := r2
        else
          r := r1;
        x := r * cos(a);
        y := r * sin(a);
        lineTo(x, y);
      end;
      endFill();
    end;
     
    { --- Fin de l'extrait ------------------------------------------------------- }
     
    end.
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 25
    Dernier message: 30/12/2009, 14h51
  2. JFrame : Effet "sapin de noël"
    Par JohnNC dans le forum Agents de placement/Fenêtres
    Réponses: 9
    Dernier message: 15/04/2009, 17h24
  3. [Noël] Mon Beau Sapin
    Par Maxoo dans le forum La taverne du Club : Humour et divers
    Réponses: 64
    Dernier message: 22/12/2008, 12h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo