FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» 2D_fill_color
Feux d'artifice Emptypar Marc Hier à 14:25

» Consommation gaz électricité
Feux d'artifice Emptypar leclode Mer 17 Avr 2024 - 11:07

» trop de fichiers en cours
Feux d'artifice Emptypar lepetitmarocain Mer 17 Avr 2024 - 10:19

» on_key_down (résolu)
Feux d'artifice Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Feux d'artifice Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

» Bataille-navale
Feux d'artifice Emptypar jjn4 Mer 3 Avr 2024 - 14:08

» Minimiser une fenêtre Panoramic.
Feux d'artifice Emptypar Pedro Mar 2 Avr 2024 - 13:50

» Récapitulatif ludothèque panoramic jjn4
Feux d'artifice Emptypar jjn4 Lun 1 Avr 2024 - 18:04

» demande explication KGF pour imprimer en mm
Feux d'artifice Emptypar JL35 Jeu 28 Mar 2024 - 17:28

» Petit passage furtif
Feux d'artifice Emptypar Froggy One Mer 27 Mar 2024 - 14:26

» SPIN et aide langage (résolu)
Feux d'artifice Emptypar leclode Sam 23 Mar 2024 - 15:20

» Aide-mémoire des mots-clés Panoramic
Feux d'artifice Emptypar papydall Mer 20 Mar 2024 - 21:23

» Je ne comprend pas pourquoi la largeur de la scene 3d change
Feux d'artifice Emptypar Marc Mar 12 Mar 2024 - 20:06

» Comment télécharger panoramic?
Feux d'artifice Emptypar lepetitmarocain Sam 9 Mar 2024 - 13:31

» @lepetitmarocain <==> KGFGrid
Feux d'artifice Emptypar Klaus Dim 3 Mar 2024 - 9:59

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
-29%
Le deal à ne pas rater :
PC portable – MEDION 15,6″ FHD Intel i7 – 16 Go / 512Go (CDAV : ...
499.99 € 699.99 €
Voir le deal

 

 Feux d'artifice

Aller en bas 
4 participants
AuteurMessage
jean_debord

jean_debord


Nombre de messages : 1246
Age : 69
Localisation : Limoges
Date d'inscription : 21/09/2008

Feux d'artifice Empty
MessageSujet: Feux d'artifice   Feux d'artifice EmptyMar 29 Mai 2018 - 9:15

Le 14 juillet est encore loin mais on peut déjà s'y préparer avec ce petit programme pour FBPano Smile

Code:

' Feu d'artifice - D'apres le forum FreeBASIC
' ----------------------------------------------------------------------

' written by BasicCoder with improvements by counting_pine 28th May 2018

const Pi = 4 * atn(1)
const DtoR = Pi / 180   ' degrees * DtoR = radians
const N = 100
const FPS = 30

type SPARK = (px, py, vx, vy, c%, a%, exploding%)

dim sparks<SPARK>(N)
dim total%

fb_form 640, 480, "Feu d'artifice... Pressez ESC pour arreter"

randomize timer

fb_animate adr(draw_frame), adr(event_keyboard), , FPS


sub drawSparks()

  if total = 0 then exit_sub

  dim i%, j%, dx, dy, angle, rr

  fb_cls

  for i = 0 to total - 1
    if i < total - N then i = total - N
    with sparks(i mod N)
      if .py < 240 then .exploding = TRUE
      ' random sparks within circle radius rr
      fb_pen_color .c
      for j = 0 to 29
        rr = int(rnd * .a)                  ' gets wider each time
        angle = int(Rnd * 360) * DtoR
        dx = cos(angle) * rr
        dy = sin(angle) * rr
        fb_pie .px + dx, .py + dy, int(rnd * 2) + 1
      next j
      .px = .px + .vx
      .py = .py + .vy
      .vy = .vy + 0.1                   ' gravity
      if .exploding then .a  = .a + 1   ' increase width
    end_with
  next i
end_sub

sub draw_frame(done%)

  dim r%, g%, b%

  if int(rnd * 50) = 0 then
    with sparks(total mod N)
      .a = 2
      .px = 320                            ' position (px, py)
      .py = 430
      .vx = int(rnd * 5) - 2               ' speed (vx, vy)
      .vy = -8
      .exploding = FALSE
      hsvtorgb (rnd * 360), 1, 1, r, g, b
      .c = rgb(r,g,b)                      ' color
    end_with
    total = total + 1
  end if

  drawSparks()
end_sub

sub event_keyboard(event_type%, keycode%, done%)
  done = (keycode = 27)
end sub
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

papydall


Nombre de messages : 6989
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMar 29 Mai 2018 - 16:32

Ce feu d’artifice est beaucoup mieux que le mien. Crying or Very sad
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMar 29 Mai 2018 - 17:51

Oui c'est un vrai feu d'artifice et très joli.
Le tien, Papydall n'était pas si mal !

J'ai passé au moins 2 heures à bidouiller le code pour obtenir un feu d'artifice en plein écran.
Cela n'a pas été de la tarte, mais je suis parvenu à un résultat satisfaisant.  pirat   Very Happy

Voici le code modifié (Pour l'éditeur FB_Pano)

Code:
' Feu d'artifice - D'apres le forum FreeBASIC
' ----------------------------------------------------------------------

' written by BasicCoder with improvements by counting_pine 28th May 2018

const Pi = 4 * atn(1)
const DtoR = Pi / 180   ' degrees * DtoR = radians
const N = 250
' FPS=30
const FPS = 50

type SPARK = (px, py, vx, vy, c%, a%, exploding%)

dim sparks<SPARK>(N)
dim total%

fb_form 1460, 960, "Feu d'artifice... Pressez ESC pour arreter"

randomize timer

fb_animate adr(draw_frame), adr(event_keyboard), , FPS


sub drawSparks()

  if total = 0 then exit_sub

  dim i%, j%, dx, dy, angle, rr

  fb_cls

  for i = 0 to total - 1
    if i < total - N then i = total - N
    with sparks(i mod N)
      if .py < 240 then .exploding = TRUE
      ' random sparks within circle radius rr
      fb_pen_color .c
      for j = 0 to 50
        rr = int(rnd * .a)               ' gets wider each time
        angle = int(Rnd * 360) * DtoR
        dx = cos(angle) * rr
        dy = sin(angle) * rr
        fb_pie .px + dx, .py + dy, int(rnd * 1) + 1.3
      next j
      .px = .px + .vx
      .py = .py + .vy
' .vy = .vy + 0.1
      .vy = .vy + 0.08                   ' gravity
'       if .exploding then .a  = .a + 1   ' increase width
      if .exploding then .a  = .a + 1.2   ' increase width
    end_with
  next i
end_sub

sub draw_frame(done%)

  dim r%, g%, b%

  if int(rnd * 30) = 0 then
    with sparks(total mod N)
      .a = 4

'      .px = 320                            ' position (px, py)
'      .py = 430

      .px = 720                            ' position (px, py)
      .py = 800

'      .vx = int(rnd * 5) - 2               ' speed (vx, vy)
'      .vy = -8

      .vx = int(rnd * 10) - 4               ' speed (vx, vy)
      .vy = -10
 
     .exploding = FALSE
      hsvtorgb (rnd * 360), 1, 1, r, g, b
      .c = rgb(r,g,b)                      ' color
    end_with
    total = total + 12
  end if

  drawSparks()
end_sub

sub event_keyboard(event_type%, keycode%, done%)
  done = (keycode = 27)
end sub

A+
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 6989
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMar 29 Mai 2018 - 17:56

Il ne reste plus qu'à y mettre du Boum Boum !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMar 29 Mai 2018 - 18:01

Oui ce serait sympa !

J'ai conservé le code, un jour il faudra que j'essai de sonoriser la chose.
Mais je n'est pas encore tenté de coder avec FB_Pano. En ce moment je n'ai de temps que pour tester et m'amuser à bidouiller. Razz

A+
Revenir en haut Aller en bas
Jean Claude

Jean Claude


Nombre de messages : 5948
Age : 69
Localisation : 83 Var
Date d'inscription : 07/05/2009

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMar 29 Mai 2018 - 18:41

Encore un peu de bidouillage.
Je me suis arrangé pour que les explosions ne soit pas toujours à la même hauteur.
C'est plus réaliste !

Voici le code modifié (Pour l'éditeur FB_Pano)
Code:
' Feu d'artifice - D'apres le forum FreeBASIC
' ----------------------------------------------------------------------

' written by BasicCoder with improvements by counting_pine 28th May 2018

const Pi = 4 * atn(1)
const DtoR = Pi / 180  ' degrees * DtoR = radians
const N = 250
' FPS=30
const FPS = 50

type SPARK = (px, py, vx, vy, c%, a%, exploding%)

dim sparks<SPARK>(N)
dim total%

fb_form 1460, 960, "Feu d'artifice... Pressez ESC pour arreter"

randomize timer

fb_animate adr(draw_frame), adr(event_keyboard), , FPS


sub drawSparks()

  if total = 0 then exit_sub

  dim i%, j%, dx, dy, angle, rr, expl%

  fb_cls

  expl%=800

  for i = 0 to total - 1
    if i < total - N then i = total - N
    with sparks(i mod N)
    expl%=expl% - 50
    if expl%<200 then expl%=800
    if .py < expl% then .exploding = TRUE
      ' random sparks within circle radius rr
      fb_pen_color .c
      for j = 0 to 50
        rr = int(rnd * .a)              ' gets wider each time
        angle = int(Rnd * 360) * DtoR
        dx = cos(angle) * rr
        dy = sin(angle) * rr
        fb_pie .px + dx, .py + dy, int(rnd * 1) + 1.3
      next j
      .px = .px + .vx
      .py = .py + .vy
' .vy = .vy + 0.1
      .vy = .vy + 0.08                  ' gravity
'      if .exploding then .a  = .a + 1  ' increase width
      if .exploding then .a  = .a + 1.2  ' increase width
    end_with
  next i
end_sub

sub draw_frame(done%)

  dim r%, g%, b%

  if int(rnd * 30) = 0 then
    with sparks(total mod N)
      .a = 4

'      .px = 320                            ' position (px, py)
'      .py = 430

      .px = 720                            ' position (px, py)
      .py = 800

'      .vx = int(rnd * 5) - 2              ' speed (vx, vy)
'      .vy = -8

      .vx = int(rnd * 10) - 4              ' speed (vx, vy)
      .vy = -10
 
    .exploding = FALSE
      hsvtorgb (rnd * 360), 1, 1, r, g, b
      .c = rgb(r,g,b)                      ' color
    end_with
    total = total + 12
  end if

  drawSparks()
end_sub

sub event_keyboard(event_type%, keycode%, done%)
  done = (keycode = 27)
end sub
Revenir en haut Aller en bas
Ouf_ca_passe




Nombre de messages : 285
Age : 75
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

Feux d'artifice Empty
MessageSujet: BOUM !   Feux d'artifice EmptyMer 30 Mai 2018 - 8:24

J'ai changé la résolution pour l'adapter à mon écran (1920 x 1080)

And you know what ?

Ca a marché.

Sauf que ce programme prend la main sur ma personnalisation de luminosité d'écran. Mais bon ...

Grand merci aux divers contributeurs et bonne journée.
Revenir en haut Aller en bas
Ouf_ca_passe




Nombre de messages : 285
Age : 75
Localisation : Villeneuve d'Ascq (59-Dpt du NORD) France
Date d'inscription : 21/12/2015

Feux d'artifice Empty
MessageSujet: Pyramide renversée pour 3d holographique   Feux d'artifice EmptyMer 30 Mai 2018 - 9:06

Dis monsieur

Pouvez-vous adapter le programme pour mon écran (posé à l'horizontale) pour que je puisse m'émerveiller de l'animation en 3D holographique ?

oui, je sais, j'en demande beaucoup.
Revenir en haut Aller en bas
jean_debord

jean_debord


Nombre de messages : 1246
Age : 69
Localisation : Limoges
Date d'inscription : 21/09/2008

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMer 30 Mai 2018 - 9:16

Merci pour vos tests et vos améliorations !

L'avantage de ce type de programme, c'est qu'ils sont très simples tout en permettant beaucoup d'expérimentations.

Pour la sonorisation, D. J. Peters a fait une très belle bibliothèque pour FreeBASIC :

https://freebasic.net/forum/viewtopic.php?f=14&t=17740

On peut jouer des musiques en fond sonore pendant une animation. ça marche très bien Smile

Reste à l'adapter à FBPano...
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

jean_debord


Nombre de messages : 1246
Age : 69
Localisation : Limoges
Date d'inscription : 21/09/2008

Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice EmptyMer 30 Mai 2018 - 9:20

Ouf_ca_passe a écrit:

Pouvez-vous adapter le programme pour mon écran (posé à l'horizontale) pour que je puisse m'émerveiller de l'animation en 3D holographique ?

Très simple : mettez des pétards dans l'ordinateur et allumez la mèche.

Rien ne vaut l'ordinateur analogique !
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Contenu sponsorisé





Feux d'artifice Empty
MessageSujet: Re: Feux d'artifice   Feux d'artifice Empty

Revenir en haut Aller en bas
 
Feux d'artifice
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Feux de signalisation
» Animation: Feux de signalisation

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Grands projets réalisés avec Panoramic :: Compilateur FBPANO-
Sauter vers: