FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Planétarium virtuel.
par Oscaribout Aujourd'hui à 19:45

» 11 (en analyse): commandes sur TAB et SUB_MENU.
par Jack Aujourd'hui à 14:10

» 10 (en analyse): Erreur sur variable locale.
par Jack Aujourd'hui à 14:05

» Métamatière, éternité et renouvellement
par Oscaribout Aujourd'hui à 12:40

» De retour...
par Yannick Hier à 15:11

» bug SEVERE fnc+sub : (35)name already defined
par Oscaribout Dim 12 Aoû 2018 - 23:55

» ajouter des blancs dans un TXT
par silverman Dim 12 Aoû 2018 - 15:38

» Encadrement
par Jean Claude Dim 12 Aoû 2018 - 11:53

» Des rectangles...
par JL35 Dim 12 Aoû 2018 - 10:53

» TRIGGER_KEY_COMBINED_TOUCH
par Jean Claude Mar 7 Aoû 2018 - 20:58

» ITEM_SELECT N,L pour synedit
par Jean Claude Mar 7 Aoû 2018 - 19:11

» amélioration panoramic
par silverman Dim 5 Aoû 2018 - 18:34

» Commande file_readln.
par Pedro Alvarez Dim 5 Aoû 2018 - 17:08

» Klaus ?
par Jack Sam 4 Aoû 2018 - 22:48

» Défragmentation du disque dur
par JL35 Sam 4 Aoû 2018 - 21:06

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2018
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier

Partagez | 
 

 Feux d'artifice

Aller en bas 
AuteurMessage
jean_debord

avatar

Nombre de messages : 818
Age : 64
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Feux d'artifice   Mar 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
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
papydall

avatar

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

MessageSujet: Re: Feux d'artifice   Mar 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
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

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

MessageSujet: Re: Feux d'artifice   Mar 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
Voir le profil de l'utilisateur
papydall

avatar

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

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

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

avatar

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

MessageSujet: Re: Feux d'artifice   Mar 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
Voir le profil de l'utilisateur
Jean Claude

avatar

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

MessageSujet: Re: Feux d'artifice   Mar 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
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

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

MessageSujet: BOUM !   Mer 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
Voir le profil de l'utilisateur
Ouf_ca_passe

avatar

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

MessageSujet: Pyramide renversée pour 3d holographique   Mer 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
Voir le profil de l'utilisateur
jean_debord

avatar

Nombre de messages : 818
Age : 64
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Feux d'artifice   Mer 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
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
jean_debord

avatar

Nombre de messages : 818
Age : 64
Localisation : Limoges
Date d'inscription : 21/09/2008

MessageSujet: Re: Feux d'artifice   Mer 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
Voir le profil de l'utilisateur http://www.unilim.fr/pages_perso/jean.debord/index.htm
Contenu sponsorisé




MessageSujet: Re: Feux d'artifice   

Revenir en haut Aller en bas
 
Feux d'artifice
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» J'vais tester. [4/4] A noter!
» Feu d'artifice
» signal sortie 2 feux
» feux de la voiture pilote Ram Tee Roco
» positionnement des feux?

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: