PureBasic

Forums PureBasic
Nous sommes le Dim 19/Mai/2019 21:39

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 11 messages ] 
Auteur Message
 Sujet du message: Plot tunnel
MessagePosté: Jeu 09/Mai/2019 23:16 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3939
Salut, 8)

voici un tunnel en points qui ne me satisfait qu'a moitié :

Code:
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
  MessageRequester("Erreur", "Impossible d'initialiser l'écran.")
  End
EndIf


ExamineDesktops()
ddw=DesktopWidth(0)
ddh=DesktopHeight(0)

ddw2=1024
ddh2=768

ddh3.f=(ddh/ddh2)

If OpenScreen(ddw,ddh,32,"SPH Demo")=0
  MessageRequester("Erreur", "Impossible d'ouvrir l'écran.")
  End
EndIf



ClearScreen(0)
StartDrawing(ScreenOutput())

For i=0 To ddw-2 Step 5
  For u=0 To ddh-2 Step 5
    Plot(i,u,RGB(Random(40),0,Random(40)))
  Next
Next

For i=1 To 30000
  Plot(Random(ddw-1),Random(ddh-1),0)
  Plot(Random(ddw-1),Random(ddh-1),RGB(Random(Random(99)),0,Random(Random(99))))
Next


For i=1 To 700
  rgb=Random(110)
  Plot(Random(ddw-1),Random(ddh-1),RGB(rgb,rgb,rgb))
Next
For i=1 To 20
  rgb=Random(255)
  xsph=Random(ddw-5)
  ysph=Random(ddh-5)
  Plot(1+xsph,1+ysph,RGB(rgb,rgb,rgb))
  Plot(xsph,1+ysph,RGB(rgb/2,rgb/2,rgb/2))
  Plot(2+xsph,1+ysph,RGB(rgb/2,rgb/2,rgb/2))
  Plot(1+xsph,ysph,RGB(rgb/2,rgb/2,rgb/2))
  Plot(1+xsph,2+ysph,RGB(rgb/2,rgb/2,rgb/2))
Next

StopDrawing()

GrabSprite(1,0,0,ddw,ddh)





Structure pixel
  posx.f
  posy.f
  xx.f
  yy.f
  centrex.l
  centrey.l
  rayon.f
  couleur.l
EndStructure

NewList pixel.pixel() ; pour pas s'y perdre, vaux mieux donner le meme nom a la structure qu'a la liste

time=0
centrex=ddw2/2
centrey=ddh2/2
centrex=ddw/2
centrey=ddh/2
angle.f=0
rnd_angle.f=20
rnd_randon=200
vitessex.f=0.02
vitessey.f=0.02
nbb=0

;############
;############
;############
;############
;############
;############
xxx.f=1
yyy.f=3

oldxxx.f=xxx
oldyyy.f=yyy

xxx2.f=2.2
yyy2.f=1.4

oldxxx2.f=xxx2
oldyyy2.f=yyy2

rota.f=0
oldrota.f=rota

Repeat
 
  ExamineKeyboard()
 
  DisplaySprite(1,0,0)
 
  ;********************************************
 
  For i=1 To 10
    AddElement(pixel())
    pixel()\centrex=centrex
    pixel()\centrey=centrey
    rayon.f=5+Random(500)
    angle=Random(6559)
    x = Cos(angle)*rayon
    y = Sin(angle)*rayon
    pixel()\posx = x
    pixel()\posy = y
    z=Random(100)+20
    pixel()\xx = x/z
    pixel()\yy = y/z
    pixel()\couleur = 130+Random(Random(10000))
  Next
 
  ;********************************************
 
 
  nbb+1
 
  hdc=StartDrawing(ScreenOutput()) ;*********************** S T A R T
                                   ;LineXY(30,0,100,100,RGB(255,255,0))
 
  ;********** A partir d'ici, tout est "LinkedList"
 
  ForEach pixel.pixel() ; tant qu'il y a des etoiles on les affiches
   
    With pixel()
     
     
      x=\centrex+\posx+\xx+Cos(nbb/380)*Cos(nbb/200)*200
      y=\centrey+\posy+\yy+Sin(nbb/240)*Cos(nbb/200)*150
      \xx*(1+vitessex*2)
      \yy*(1+vitessey*2)
     
      If x>ddw-2 Or x<1 Or y>ddh-2 Or y<1
        DeleteElement(pixel()) ; on la tue
       
      Else ; sinon
       
        \couleur*(1+vitessex)
        If \couleur>65535
          \couleur=65535
        EndIf
       
        If \couleur<32768
          rvb=\couleur/129
          Plot(x,y,RGB(rvb,rvb,rvb)) ; on l'affiche
        Else
          Plot(x,y,RGB(255,255,255)) ; on l'affiche
          rvb=(\couleur-32768)/130
          Plot(x+1,y,RGB(rvb,rvb,rvb)) ; on l'affiche
          Plot(x-1,y,RGB(rvb,rvb,rvb)) ; on l'affiche
          Plot(x,y+1,RGB(rvb,rvb,rvb)) ; on l'affiche
          Plot(x,y-1,RGB(rvb,rvb,rvb)) ; on l'affiche
          rvb/2
          Plot(x+1,y+1,RGB(rvb,rvb,rvb)) ; on l'affiche
          Plot(x-1,y-1,RGB(rvb,rvb,rvb)) ; on l'affiche
          Plot(x-1,y+1,RGB(rvb,rvb,rvb)) ; on l'affiche
          Plot(x+1,y-1,RGB(rvb,rvb,rvb)) ; on l'affiche
        EndIf
      EndIf
    EndWith
  Next ; ce "foreach:next" s'addapte donc toujours au vrai nombre d'etoiles
 
  r=30
  rgb=5
  rgb2=0
  rr.f=1.005
 
  Repeat
    cmb=0
   
    xxx+1.05
    yyy+2.3
    xxx2+1.5
    yyy2+2.1
   
    xxxx=Cos(Radian(xxx))*(ddw/5)+Cos(Radian(xxx2))*(ddw/5)
    yyyy=Sin(Radian(yyy))*(ddh/5)+Cos(Radian(yyy2))*(ddh/5)
   
    For u=0 To 355 Step 10
     
      x=Cos(Radian(u)+rota)*r
      y=Sin(Radian(u)+rota)*r
     
      ddw4=ddw/2+x+xxxx
      ddh4=ddh/2+y+yyyy
      xxx+0.1
      yyy+0.05
     
      If ddw4>0 And ddw4<ddw-2 And ddh4>0 And ddh4<ddh-2
        Plot(ddw4,ddh4,RGB(rgb,rgb,rgb))
        If rgb2>0
          Plot(ddw4+1,ddh4+1,RGB(rgb2,rgb2,rgb2))
          Plot(ddw4,ddh4+1,RGB(rgb2,rgb2,rgb2))
          Plot(ddw4+1,ddh4,RGB(rgb2,rgb2,rgb2))
        EndIf 
      Else
        cmb+1   
      EndIf
     
    Next
    rgb+24
    If rgb>=255
      rgb=255
      rgb2+20
      If rgb2>=255
        rgb2=255
      EndIf
     
    EndIf
   
    rr*1.005
    r*rr
    r*1.1
    rota+2
  Until cmb>=36
 
  rota=oldrota+0.2
  oldrota=rota
 
  xxx=oldxxx+0.5
  yyy=oldyyy+0.44
  oldxxx=xxx
  oldyyy=yyy
 
  xxx2=oldxxx2+0.31
  yyy2=oldyyy2+0.41
  oldxxx2=xxx2
  oldyyy2=yyy2
 
 
 
  StopDrawing()
 
 
  FlipBuffers()
 
Until KeyboardPushed(#PB_Key_Escape)
End

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Plot tunnel
MessagePosté: Ven 10/Mai/2019 12:05 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 25/Juin/2015 16:18
Messages: 253
pas dégeux

tu lui reproche qui ?


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Plot tunnel
MessagePosté: Ven 10/Mai/2019 12:15 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3939
Guillot a écrit:
pas dégeux

tu lui reproche qui ?

On n'avance pas

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Plot tunnel
MessagePosté: Ven 10/Mai/2019 12:21 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6790
Localisation: IDF (Yvelines)
On peut lui reprocher sa façon personnel de coder ^^ (je n'en dirais pas plus car il le sait et il ne changera pas)

Pour le reste une fois l'exécutable crée sans debug, c'est plutôt fluide et agréable à voir.

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat & http://purebasic.chat/forum

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Plot tunnel
MessagePosté: Ven 10/Mai/2019 15:11 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 29/Juil/2004 16:33
Messages: 2731
Localisation: Klyntar
Avec ou sans debug c'est fluide. Le souci je pense (après ça n’est peut être pas l'effet rechercher). C'est que les étoiles ne suivent pas bien le changement de direction du tunnel.
Je pense que sph souhaite qu'on a l'impression d'avancer dans ce dernier.

HS: par contre oui coder avec des xxx yyy oldxxx xsph. franchement sa pique les yeux :lol: :wink:

Si non joli rendu.






@++

_________________
Windows 10 x64, PureBasic 5.61 Beta 1 x86 & x64


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Plot tunnel
MessagePosté: Ven 10/Mai/2019 15:54 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3939
:P

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Plot tunnel
MessagePosté: Ven 10/Mai/2019 16:15 
Hors ligne

Inscription: Sam 08/Fév/2014 15:19
Messages: 1538
C'est du SPH' Basic :D
Ni POO ni même procédure :!:
Si le compilateur l'autorisait, je pense qu'il y aurait des numéros de lignes et des LET A=1 :P
Du vrai Basic old school :) (c'est à dire des trucs fiables)
GWBASIC++ :mrgreen:
Mais ça marche vite et bien :!: Chapeau 8)

:wink:


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Plot tunnel
MessagePosté: Ven 10/Mai/2019 16:24 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 22/Aoû/2010 15:24
Messages: 6790
Localisation: IDF (Yvelines)
Je suis étonné : Même pas un Gosub dans son code ! Comme quoi il peut s'en passer :mrgreen:

_________________

➽ Config PureBasic : i3, RAM 4Go, NVidia (1024 Mo), Windows 10 - PB 5.70 LTS
➽ Je papote aussi sur http://purebasic.chat & http://purebasic.chat/forum

➽ Sites personnels http://falsam.com & EasySprite.js

➽ Je ne réponds pas aux MP techniques


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Plot tunnel
MessagePosté: Ven 10/Mai/2019 16:50 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 27/Oct/2006 12:19
Messages: 1218
Localisation: Calvados (14)
Salut @Tou(te)s,

@SPH : si tu veux un effet "d'avancement", m'est avis que ton "canon" à étoile devrait "suivre" le centre de ton tunnel, à l'endroit le plus éloigné de celui-ci.
ça veut dire plutôt utiliser des sprites que des "plot" pour afficher les étoiles.

_________________
Image

Image


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Plot tunnel
MessagePosté: Mer 15/Mai/2019 23:23 
Hors ligne

Inscription: Lun 30/Aoû/2004 21:03
Messages: 80
Un jour faudra quand même que tu te mette à la 3D... :)

_________________
http://crisot.com/odyssey
http://crisot.com/dev


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: Plot tunnel
MessagePosté: Mer 15/Mai/2019 23:36 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 09/Nov/2005 9:53
Messages: 3939
crisot a écrit:
Un jour faudra quand même que tu te mette à la 3D... :)

Je suis justement en pleine conversion 8)

_________________
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Portable LENOVO ideapad 110-17ACL 64 bits
Version de PB : 5.70LTS - 32 bits


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 11 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  
cron

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye