Plot hors de la zone de dessin

Archive.
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Plot hors de la zone de dessin

Message par Heis Spiter »

Dans le code ci-dessous, j'ai toujours un problème avec les Plot() qui sont hors de la zone de dessin, ce qui devrais en théorie ne pas être le cas... Bug ou faute de programmation ?
PS : Soyez indulgent, moi et les applis pleine écran, ça fait 36000 :? :lol:

Code : Tout sélectionner

Structure Stars
  X.b
  Y.b
  ;Color.l
EndStructure
NewList Stars.Stars()
InitSprite()
For k = 0 To 200
  X = Random(400)
  Y = Random(400)
  AddElement(Stars())
  Stars()\X = X
  Stars()\Y = Y
Next k
If OpenWindow(1, 0, 0, 400, 400, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "X-Wing")
  If OpenWindowedScreen(WindowID(1), 0, 0, 400, 400, 1, 0, 0)
    Repeat
      ClearScreen(0, 0, 0)
      CreateSprite(2, 400, 400)
      If StartDrawing(SpriteOutput(2))
        ResetList(Stars())
        For k = 0 To 200
          NextElement(Stars())
          Plot(Stars()\X, Stars()\Y, RGB(255, 255, 255))
        Next k
        StopDrawing()
      EndIf
      DisplaySprite(2, 0, 0)
      FlipBuffers()
      FreeSprite(2)
    ForEver
  EndIf
EndIf
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Fred en a déjà parlé, c'est à toi de vérifier que tu dessines pas n'importe où :wink:

http://purebasic.hmt-forum.com/viewtopic.php?t=1875
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Mais je vérifie bien (si tu lisais le code... :?)
De plus, j'ai essayé en dessinant des lignes (j'ai revu un peu le code) et ça marche, même si les lignes sont aglutinées dans un coin (aurais-je encore raté qqchose ?)

Code : Tout sélectionner

Structure Stars
  X.b
  Y.b
  ;Color.l
EndStructure
NewList Stars.Stars()
InitSprite()
For k = 0 To 200
  X = Random(400)
  Y = Random(400)
  AddElement(Stars())
  Stars()\X = X
  Stars()\Y = Y
Next k
If OpenWindow(1, 0, 0, 400, 400, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "X-Wing")
  If OpenWindowedScreen(WindowID(1), 0, 0, 400, 400, 1, 0, 0)
    Repeat
      ClearScreen(0, 0, 0)
      If IsSprite(2)
        FreeSprite(2)
      EndIf
      CreateSprite(2, 400, 400)
      If StartDrawing(SpriteOutput(2))
        ResetList(Stars())
        For k = 0 To 200
          NextElement(Stars())
          Line(Stars()\X, Stars()\Y, 1, 1, RGB(255, 255, 255))
          ;Plot(Stars()\X, Stars()\Y, RGB(255, 255, 255))
        Next k
        StopDrawing()
      EndIf
      DisplaySprite(2, 0, 0)
      FlipBuffers(1)
    ForEver
  EndIf
EndIf
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message par djes »

regarde ta structure, tu as mis des .b, c'est à dire des valeurs sur un octet ; or, un octet ne peut contenir une valeur que de 0 à 255, ou de -127 à +128.
Remplace les .b par .l et ça ira mieux!

En outre, le random(400) (je sais, c'est illogique), inclut le 0 et le 400. Or, l'écran n'accepte que des valeurs de 0 à 399 (400 valeurs); si tu as 400 ça plante! Tu aurais pû t'en rendre compte en faisant un debug approprié.
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Message par Heis Spiter »

Oula ! vous cherchiez le roi des fautes cons ? Vous l'avez trouvé :lol:.
Merci en tout cas ;)
PS : Quelqueque chose me fait dire que je vais rester sur Bird Chat :lol:, au moins, ya pas d'écran ! :D
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D
Répondre