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
» Projet de planétarium virtuel.
par Pedro Alvarez Hier à 17:29

» Quantité de mémoire utilisée par un exe
par Navigateur Hier à 14:52

» Problème avec 'file_load'.
par Pedro Alvarez Hier à 8:12

» Version instantanée V 0.9.28i20 du 13/06/2018
par jjn4 Sam 16 Juin 2018 - 14:25

» string$(0,chr$(32)) sans erreur
par silverman Ven 15 Juin 2018 - 19:56

» Version instantanée V 0.9.28i19 du 13/06/2018
par Minibug Ven 15 Juin 2018 - 19:14

» PanExpress : l'éditeur Panoramic avec création d'objet
par Jean Claude Ven 15 Juin 2018 - 7:52

» Mes souhaits d'amélioration de Panoramic.
par Pedro Alvarez Jeu 14 Juin 2018 - 20:17

» [RÉSOLU] Message d'erreur impossible à indentifier
par Minibug Mer 13 Juin 2018 - 20:52

» Cadre pour image
par Jean Claude Mar 12 Juin 2018 - 16:31

» Créateur d'objets Panoramic
par Minibug Mar 12 Juin 2018 - 14:02

» Planétarium gratuit.
par Jean Claude Sam 9 Juin 2018 - 18:50

» Comment afficher une image sans fond.
par JL35 Sam 9 Juin 2018 - 14:16

» image_width(n) et image_height(n)
par silverman Sam 9 Juin 2018 - 11:22

» Site sur la programmation sympa
par Jean Claude Jeu 7 Juin 2018 - 11:20

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juin 2018
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier

Partagez | 
 

 Feux d'artifice

Aller en bas 
AuteurMessage
jean_debord

avatar

Nombre de messages : 799
Age : 63
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 : 5951
Age : 67
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 : 5472
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 : 5951
Age : 67
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 : 5472
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 : 5472
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 : 234
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 : 234
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 : 799
Age : 63
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 : 799
Age : 63
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: