Code Map2D Isométrique

Programmation avancée de jeux en PureBasic
Anonyme

Message par Anonyme »

Voici un autre exemple montrant l'utilisation d'une image en niveau de gris.
dans cette exemple la taille de l'image doit être de 128x128

en voilà une pour le test :
http://www.penguinbyte.com/apps/pbwebst ... ghtmap.bmp

le scrolling s'effectue à l'aide du clavier (fleches).


Code : Tout sélectionner

;Deformation HeightMap File To Isometric
;Par Cpl.Bator 

#TailleMapX=64
#TailleMapY=64

#TailleTileX = 40
#TailleTileY = 20

Structure World 
 X.f 
 Y.f 
 Z.f 
 WaveHeight_A.f
 WaveHeight_B.f
 EndStructure 

Global WaveSpeed.f : WaveSpeed = 1
Dim Map.World(#TailleMapX,#TailleMapY) 

Global ScrollX.l,ScrollY.l
ScrollX = 400
ScrollY = 200


MessageRequester("ATTENTION","Choissisez un bitmap de 128x128")
File$ = OpenFileRequester("Ouvrir un *.bmp","\","Fichiers bitmap|*.bmp",0)
If File$ = "" : End : EndIf

LoadImage(0,File$)


UseImage(0)
StartDrawing(ImageOutput())

For y = 0 To 127
For x = 0 To 127

Color.l = Point(x,y)
R.l = Red(Color)
G.l = Green(Color)
B.l = Blue(Color)
Grey.l = (R+G+B)/3
Map(Int(X/2),Int(Y/2))\Z = (Grey)

Next x
Next y
StopDrawing()




;-Initialisation des composants DirectX 
If InitSprite()=0 Or InitMouse()=0 Or InitKeyboard()=0 
 MessageRequester("Erreur","Impossible d'initialiser DirectX") 
  End 
   EndIf 
    
OpenScreen(800 , 600,32,"") 


Declare UpdateMap() 
Declare Initialisation_MapIso() 
Declare ControlInput()



   



Initialisation_MapIso() 

Repeat 
 ExamineKeyboard() : ExamineMouse() : ClearScreen(0,0,0) 
  UpdateMap() 
   ControlInput()
    FlipBuffers() 
     Until KeyboardPushed(#PB_Key_Escape) 



Procedure UpdateMap() 
StartDrawing(ScreenOutput()) 
DrawingMode(4|1) 
FrontColor(255,255,255) 


For Y = 1 To #TailleMapY 
For X = 1 To #TailleMapX 



If Map(X,Y)\X+ScrollX > 0 And Map(X,Y)\X+ScrollX < 800 And Map(X,Y)\Y+ScrollY-Map(X,Y)\Z > 0 And Map(X,Y)\Y+ScrollY-Map(X,Y)\Z < 600
;Affichage des segments 
If x=>1 And x<#TailleMapX And y=>1 And y<#TailleMapY 
LineXY(ScrollX + Map(X,Y)\X ,ScrollY + Map(X,Y)\Y - Map(X,Y)\Z ,ScrollX + Map(X+1,Y)\X ,ScrollY + Map(X+1,Y)\Y - Map(X+1,Y)\Z) 
LineXY(ScrollX + Map(X,Y)\X ,ScrollY + Map(X,Y)\Y - Map(X,Y)\Z ,ScrollX + Map(X,Y+1)\X ,ScrollY + Map(X,Y+1)\Y - Map(X,Y+1)\Z) 
EndIf 

EndIf


Next : Next 


StopDrawing() 



EndProcedure 

Procedure ControlInput()
; Gestion Basique du scrolling.


If KeyboardPushed(#PB_Key_Left)
ScrollX+20
EndIf

If KeyboardPushed(#PB_Key_Right)
ScrollX-20
EndIf

If KeyboardPushed(#PB_Key_Down)
ScrollY-10
EndIf

If KeyboardPushed(#PB_Key_Up)
ScrollY+10
EndIf

EndProcedure

Procedure Initialisation_MapIso() 
Shared DecalageX.l,DecalageY.l,Offset.l 


 For Y = 1 To #TailleMapY 
 For X = 1 To #TailleMapX 

 DecalageX = DecalageX + (#TailleTileX/2) 
 DecalageY = DecalageY + (#TailleTileY/2) 
  
 Map(X,Y)\X    = DecalageX 
 Map(X,Y)\Y    = DecalageY 


Next X 
   Offset+1 
   DecalageX = -(Offset*(#TailleTileX/2))    
   DecalageY = (#TailleTileY/2)*Offset 
Next Y 

EndProcedure 
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Super :D
Toutes les démos sont super balaizes :D

Le Heightmap est pas mal non plus ^^
Avec des Sprite3D ca pourrait le faire :D

Dri :10:
Anonyme

Message par Anonyme »

merci ^^

Pour ceux qui est des sprites3D, je me retrouve avec un décalage anormal par rapport aux points de la grille :cry:
je dois faire une bourde quelque part :D , je m'occuperais de cela plus tard.

@+
Anonyme

Message par Anonyme »

Màj du code pour la V4

Toujours de l'isometrique + quelques "bonus"

File:1->MyWork.rar
Image


@++
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

Super travail Cpl.Bator
bravo
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Cpl.Bator a écrit :Màj du code pour la V4

Toujours de l'isometrique + quelques "bonus"

File:1->MyWork.rar
Image


@++
grrr j'avais pas vu alors que je venais juste de mettre ton listing en V4
:lol:
Anonyme

Message par Anonyme »

@B13 Merci

@Dobro, tu avais tout fait ? :D
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Message par Fig »

Code : Tout sélectionner

for x=1 to #taillex
for y=1 to #tailley
si tile visble dans l'ecran, l'afficher
...
Y a t'il un moyen d'afficher que ce qui est necessaire dans la boucle ?
cad definir un rectangle passant par les angle de l'ecran d'affichage.


Pour virer le test d'affichage de tile si il est dans l'ecran visible et ainsi réduire considerablement les deux boucles et donc le temps d'affichage pour une map importante (genre 400x400) etc

Code : Tout sélectionner

for x=debutX to finX
for y=debutY to finY
affiche tile
merci Cpl.Bator en tout cas pour ce code.
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Anonyme

Message par Anonyme »

je pense que c'est faisable, mais je ne pense pas que tu gagnes enormement en vitesse d'execution. de toute facons, sur un tableau a 2 dimensions
tu est obliger de faire :

Code : Tout sélectionner

for x=1 to #taillex
 for y=1 to #tailley 

 next 
next
sinon tu ne pourras pas changer d'élément dans ton tableau, il reste la méthode des allocation de mémoire, mais je ne l'avais pas fait car je voulais que mes codes soient compris de tous. après , faut touché au pointeur et mémoire, si j'ai le temps , je te fait un exemple.


@++
Anonyme

Message par Anonyme »

Voila :

Change la valeur de la constante #USE_PTR en 1 pour utilisé les pointeurs
et 0 pour revenir avec un tableau a double dimension
je gagne plus de 30 fps entre les pointeurs et les tableaux.

Compare et dis moi ce que tu en penses :D

@++

Code : Tout sélectionner

;**************************************** 
;* Par Cpl.Bator * 
;* Demonstration d'une map2D Isométrique* 
;* Exemple 01 * 
;**************************************** 

Global ScreenWidth.l : ScreenWidth = 800 
Global ScreenHeight.l : ScreenHeight = 600 
Global ScrollX.l , ScrollY.l 


#USE_PTR = 0



;Constantes pour la Map 
#TailleMapX = 400
#TailleMapY = 400
#TailleTileX = 64 
#TailleTileY = 32 


;-Structure pour la Map Isometrique 
Structure World 
  x.f
  y.f 
  type.l 
EndStructure 

If #USE_PTR=1
 Global *Map.l = AllocateMemory(#TailleMapX * #TailleMapY * SizeOf(World))
EndIf 

If #USE_PTR=0
 Global Dim Map.World( #TailleMapX , #TailleMapY ) 
EndIf



;-Initialisation des composants DirectX 
If InitSprite ()=0 Or InitMouse ()=0 Or InitKeyboard ()=0 
  MessageRequester ( "Erreur" , "Impossible d'initialiser DirectX" ) 
  End 
EndIf 


;-Ouverture de l'écran 
OpenWindow (0,0,0,ScreenWidth , ScreenHeight, "Exemple 01 - Map2D isométrique - Par Cpl.Bator" ,#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_SizeGadget ) 
OpenWindowedScreen ( WindowID (0),0,0,ScreenWidth , ScreenHeight,1,0,0) 


;-Declaration des procédures 
Declare ConvertDataToSprite() 
Declare CreateMapIsometric(Taille_Map_X.l,Taille_Map_Y.l,TileType.l) 
Declare UpdateMap() 
Declare ControlInput() 

;-Constante 
Enumeration 
  #Bloc_Grass 
EndEnumeration 



;peut etre remplacer par un simple LoadSprite() 
ConvertDataToSprite() 

;Creation de la Map2D 
CreateMapIsometric( #TailleMapX , #TailleMapY , #Bloc_Grass ) 



Repeat 
  ExamineKeyboard () : ExamineMouse () : ClearScreen (RGB(0,0,0))
 
  UpdateMap() 
  ControlInput() 
  
   ; *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
   ; CALCUL ET AFFICHAGE DU FPS
   If FPST.l<ElapsedMilliseconds()
    FPST.l=ElapsedMilliseconds()+1000
      fps.l=FPSC.l
    FPSC=0
    EndIf 
 
     FPSC+1
     
    StartDrawing(ScreenOutput())
      Select #USE_PTR
        Case 1 : DrawText(0,0,"AVEC POINTEUR = "+Str(fps)+" fps")
        Case 0 : DrawText(0,0,"SANS POINTEUR = "+Str(fps)+" fps")
      EndSelect
      StopDrawing()
    FlipBuffers () 
  ; *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 
  
Until KeyboardPushed ( #PB_Key_Escape ) 




Procedure ControlInput() 
  ; Gestion Basique du scrolling. 
  
  
  If KeyboardPushed ( #PB_Key_Left ) 
    ScrollX-20 
  EndIf 
  
  If KeyboardPushed ( #PB_Key_Right ) 
    ScrollX+20 
  EndIf 
  
  If KeyboardPushed ( #PB_Key_Down ) 
    ScrollY+10 
  EndIf 
  
  If KeyboardPushed ( #PB_Key_Up ) 
    ScrollY-10 
  EndIf 
  
EndProcedure 



Procedure UpdateMap() 
  Shared TilePosX.l,TilePosY.l 
  Protected Current.l
  
 For y = 1 To #TailleMapY 
    For x = 1 To #TailleMapX 
      
      ;AVEC POINTEUR
      If #USE_PTR=1
          TilePosX = PeekF(*Map+Current) - ScrollX
          TilePosY = PeekF(*Map+4+Current) - SpriteHeight (PeekL(*Map+8+Current))+ #TailleTileY - ScrollY 
          
          
          ;On affiche les tiles que si il sont dans une zone Affichable par l'écran. 
          If TilePosX >- #TailleTileX And TilePosX < ScreenWidth And TilePosY >- #TailleTileX And TilePosY < ScreenHeight 
            DisplayTransparentSprite (PeekL(*Map+8+Current) ,TilePosX,TilePosY) 
          EndIf 
          
          Current + SizeOf(World)
      EndIf 
      
      
      ;SANS POINTEUR
      If #USE_PTR=0
            TilePosX = Map(x,y)\x - ScrollX 
            TilePosY = Map(x,y)\y - SpriteHeight (Map(x,y)\type)+ #TailleTileY - ScrollY 
          
          ;On affiche les tiles que si il sont dans une zone Affichable par l'écran. 
          If TilePosX >- #TailleTileX And TilePosX < ScreenWidth And TilePosY >- #TailleTileX And TilePosY < ScreenHeight 
            DisplayTransparentSprite (Map(x,y)\type ,TilePosX,TilePosY) 
          EndIf 
      EndIf
      
       
      
    Next x 
  Next y 
  
EndProcedure 



Procedure CreateMapIsometric(Taille_Map_X.l,Taille_Map_Y.l,TileType.l) 
  Shared DecalageX.l,DecalageY.l,offset.l,Current.l 
  
  ; Voici un méthode performante pour calculer la position 
  ; de chaque Tiles (tuiles) à partir du sommet de la Map 
  ; enlever les commentaires dans "UpdateMap()" 
  ; pour voir de quelle maniere les tiles sont ranger 
  
  For y = 1 To Taille_Map_Y 
    For x = 1 To Taille_Map_X 
      
      DecalageX = DecalageX + ( #TailleTileX /2) 
      DecalageY = DecalageY + ( #TailleTileY /2) 
      
      
      If #USE_PTR=1
          PokeF(*Map+Current,DecalageX)
          PokeF(*Map+4+Current,DecalageY)
          PokeL(*Map+8+Current,TileType)
          
          Current + SizeOf(World)
      EndIf 
      
      If #USE_PTR=0
          Map(x,y)\x = DecalageX 
          Map(x,y)\y = DecalageY 
          Map(x,y)\type = TileType 
      EndIf
       
      
    Next x 
    offset+1 
    DecalageX = -(offset*( #TailleTileX /2)) 
    DecalageY = ( #TailleTileY /2)*offset 
  Next y 
  
  
  
  
  
  
  
EndProcedure 


Procedure ConvertDataToSprite() 
  ;Cette procedure sert juste à lire la DataSection pour en faire un sprite. 
  
  Shared DataR.l 
  TransparentSpriteColor (-1,RGB(255,0,255))
  
  Restore SpriteData 
  
  CreateSprite ( #Bloc_Grass ,64,64) 
  
  If StartDrawing ( SpriteOutput ( #Bloc_Grass )) 
    
    For x = 0 To 64 -1 
      For y = 0 To 64 -1 
        Read DataR 
        Plot (x,y,DataR) 
      Next y 
    Next x 
    
    StopDrawing () 
    
  EndIf 
  
EndProcedure 



;**************************************************************************************** 
;Voici l'image sous forme de data. 
;Pour transformer une image, dobro à fait un bon exemple (5° post) 
;http://purebasic.hmt-forum.com/viewtopic.php?t=4205&postdays=0&postorder=asc&start=105 
;**************************************************************************************** 
DataSection 
SpriteData: 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,104739,103714,101664,97821,27672,23317,18705,14861,11273,8455,6148,4355,3073,2305,2305,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,105251,1801275,90657,742273,742273,742273,742273,742273,742273,742273,742273,742273,808322,1072520,1204619,1204619,1204619,1204619,1598346,3237505,3631231,3631231,3631230,3761016,3955566,3954281,3755873,2571089,1714235,1384238,331295,2846,2049,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,24093,23579,105251,21266,2196033,742273,742273,742273,742273,742273,742273,742273,742273,808322,1138313,1204619,1204619,1204619,1204619,1335690,2516356,3631231,3631231,3631231,3696252,3891058,3955052,3888230,3426395,1978951,1647926,923431,68381,3104,2561,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,23579,1209138,105251,814380,1998654,1932861,1274931,23065,814380,742273,742273,742273,742273,808066,1072520,1204619,1204619,1204619,1204619,1270155,1991815,3500160,3631231,3631231,3696766,3826038,3955567,3954538,3756386,2637139,1714493,1384241,331296,2846,2561,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,485415,21523,1143345,22551,105251,24607,1077552,1538103,742273,742273,742273,742273,742273,742273,742273,940165,1204619,1204619,1204619,1204619,1204619,1663881,3172225,3631231,3631231,3631231,3695995,3890802,3955052,3953767,3426653,1978952,1647927,923432,68382,3104,3073,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,23322,22808,90657,22294,105251,945966,22551,2722377,1472310,742273,742273,742273,742273,742273,742273,808066,1072520,1204619,1204619,1204619,1204619,1335690,2647428,3631231,3631231,3631231,3696767,3826296,3955824,3954538,3821922,2571604,1649214,1450289,397346,2846,3074,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,222243,1406517,1472310,1274931,21523,748587,105251,880173,551208,742273,742273,742273,742273,742273,742273,742273,742273,874372,1204362,1204619,1204619,1204619,1270155,1991559,3368832,3631231,3631231,3631231,3696509,3826036,3955052,3953768,3361117,1978952,1648183,989482,199710,3104,3073,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,1143345,22808,1011759,748587,23322,551208,105251,23579,353829,551208,23579,742273,742273,742273,742273,742273,742273,742530,1006471,1204619,1204619,1204619,1204619,1598089,2844291,3631231,3631231,3631231,3631231,3696251,3890802,3954539,3821922,2571603,1648958,1450290,528675,2847,3329,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,1209138,1340724,21266,23579,288036,1406517,1472310,2524998,105251,288036,485415,1077552,22808,288036,742273,742273,742273,742273,742273,808323,1138313,1204619,1204619,1204619,1335690,2253702,3369088,3631231,3631231,3631231,3696766,3761015,3955309,3953767,3426652,1978952,1647927,1120810,134174,3104,3329,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,419622,222243,1669689,22037,814380,1932861,1077552,2130240,105251,24350,23836,1011759,23579,24607,742273,742273,742273,742273,742273,742273,874372,1204362,1204619,1204619,1204619,1598089,3040899,3631231,3631231,3631231,3631231,3696509,3891059,3954538,3821922,2702931,1714750,1516081,594466,2845,3586,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,222243,90657,814380,1867068,748587,945966,1011759,945966,1011759,2524998,105251,551208,748587,1077552,21780,742273,742273,742273,742273,742273,742273,742529,1006214,1204619,1204619,1204619,1335691,2253958,3434624,3631231,3631231,3631231,3631230,3761273,3889774,3953767,3492444,2175816,1713718,1186602,199966,68639,3843,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,1077552,880173,24607,682794,156450,1274931,814380,23579,90657,24864,105251,90657,24093,1209138,23836,748587,742273,742273,742273,742273,742273,742273,808323,1138570,1204619,1204619,1204619,1598346,2909827,3631231,3631231,3631231,3631231,3696509,3825524,3954795,3821922,2965845,1911871,1581361,791588,68381,5123,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,1538103,23322,23322,24864,222243,90657,1669689,1538103,21266,682794,23065,23836,105251,22551,1143345,880173,945966,742273,742273,742273,742273,742273,742273,742529,1006470,1204619,1204619,1204619,1270155,1991559,3368833,3631231,3631231,3631231,3631230,3761530,3890287,3953767,3689309,2504521,1713719,1449517,397087,68381,5636,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,1735482,353829,23065,1472310,20752,1274931,288036,2130240,682794,748587,19210,23065,105251,880173,24864,90657,1998654,1274931,742273,742273,742273,742273,742273,742273,874115,1204362,1204619,1204619,1204619,1335690,2581892,3631231,3631231,3631231,3631231,3696766,3825525,3954539,3821922,3294293,2174528,1581617,1054502,134174,6918,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,551208,353829,617001,24607,748587,748587,1143345,156450,1274931,288036,1801275,1209138,24350,222243,105251,24350,21266,353829,419622,21780,742273,742273,742273,742273,742273,742530,1006727,1204619,1204619,1204619,1204619,1729417,3237505,3631231,3631231,3631231,3631230,3695995,3890030,3953767,3755358,2833229,1910584,1515309,594209,133917,6663,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,1011759,222243,22037,814380,551208,945966,1274931,682794,1735482,90657,23322,617001,1867068,156450,105251,1669689,24864,222243,19724,742273,742273,742273,742273,742273,742273,742273,874115,1138826,1204619,1204619,1204619,1335691,2188422,3565696,3631231,3631231,3631231,3696509,3825780,3954795,3822178,3557208,2371907,1712946,1186344,265757,7687,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,814380,814380,485415,22037,1143345,1472310,2327619,1011759,814380,748587,288036,682794,617001,288036,1143345,485415,105251,1077552,485415,742273,742273,742273,742273,742273,742273,742273,742273,742273,940421,1204619,1204619,1204619,1204619,1401226,2778755,3631231,3631231,3631231,3631231,3761273,3955567,3954281,3820895,3162192,1976890,1581102,725794,133916,7173,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,814380,353829,945966,1011759,23836,1077552,24350,814380,1209138,23836,90657,748587,21523,1274931,24093,22294,105251,1274931,1143345,24864,742273,742273,742273,742273,742273,742273,742273,742273,808066,1072264,1204619,1204619,1204619,1204619,1794952,3237760,3631231,3631231,3631231,3696509,3891315,3955052,3887973,3688793,2635079,1778997,1317673,265501,8199,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,105251,748587,353829,880173,551208,814380,880173,945966,222243,617001,1209138,682794,485415,22037,24864,1735482,551208,23065,682794,105251,748587,1209138,945966,24607,1143345,21009,419622,742273,742273,742273,742273,808323,1138570,1204619,1204619,1204619,1270155,2319494,3631231,3631231,3631231,3631231,3761273,3890032,3954281,3821407,3424851,2108476,1581358,660002,133916,7430,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,105251,2064447,880173,485415,1538103,2196033,945966,23579,22037,23579,353829,1077552,353829,222243,682794,1274931,24350,1735482,551208,105251,1274931,485415,1603896,21523,880173,1932861,682794,551208,21009,742273,742273,742273,874372,1204619,1204619,1204619,1204619,1532554,3040898,3631231,3631231,3631231,3696510,3891316,3955052,3887974,3754842,2832456,1778997,1251881,199708,8712,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,105251,682794,23065,880173,1143345,617001,1735482,23579,21266,24864,748587,419622,90657,1538103,24607,1274931,1209138,748587,23579,1143345,2130240,105251,682794,22808,1472310,353829,742273,742273,742273,742273,742273,742273,742273,742529,1072263,1204619,1204619,1204619,1204619,2122887,3565440,3631231,3631231,3696767,3761017,3955568,3954281,3821408,3556692,2305854,1647150,660001,133916,7942,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,105251,748587,1472310,1274931,551208,23579,1209138,682794,682794,222243,945966,1143345,945966,288036,24864,288036,20752,24864,2459205,22551,1603896,105251,24864,90657,1143345,23065,742273,742273,742273,742273,742273,742273,742273,742273,874115,1204362,1204619,1204619,1204619,1401226,2844291,3631231,3631231,3631231,3696253,3890803,3955052,3887974,3820379,3095627,2042166,1317673,265501,9224,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,105251,1867068,1801275,1538103,485415,288036,945966,551208,24093,288036,22551,1669689,22808,1209138,1209138,1340724,880173,1472310,19724,419622,24350,22808,353829,105251,22294,24350,1603896,742273,742273,742273,742273,742273,742273,742273,742273,742530,1072520,1204619,1204619,1204619,1204619,1860488,3434368,3631231,3631231,3696766,3825782,3955311,3954538,3821408,3622228,2634305,1712688,660002,133916,7687,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,105251,419622,23322,1209138,24607,156450,17411,1406517,22808,90657,1340724,23579,1209138,1867068,419622,353829,1340724,945966,24350,880173,1209138,23065,1801275,105251,617001,23579,24093,617001,742273,742273,742273,742273,742273,742273,742273,742273,940165,1204619,1204619,1204619,1204619,1335690,2582148,3631231,3631231,3631231,3761017,3956080,3955052,3888231,3820380,3161421,2042166,1186088,265244,7430,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,105251,1011759,24864,682794,288036,24607,1340724,24864,419622,551208,288036,24093,748587,22037,1669689,485415,1209138,156450,2130240,1340724,1538103,23322,1406517,24607,1011759,105251,24864,23836,1867068,742273,742273,742273,742273,742273,742273,742273,742273,808322,1138569,1204619,1204619,1204619,1204619,1794953,3237505,3631231,3631231,3761275,3890547,3955567,3954538,3821665,3622484,2305598,1646895,528416,68123,4611,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,105251,19210,90657,748587,156450,23322,1077552,1143345,24093,1669689,90657,22551,1274931,1472310,1143345,90657,1143345,156450,485415,748587,1274931,1077552,23322,24350,814380,105251,617001,22294,880173,742273,742273,742273,742273,742273,742273,742273,742273,742273,940678,1204619,1204619,1204619,1204619,1335691,2385285,3500160,3631231,3761531,3890803,3955823,3955052,3888231,3820380,2569801,1713204,1054758,133915,3588,16711935,16711935,16711935 
Data.l 16711935,16711935,105251,23322,1340724,748587,22037,1077552,22037,90657,24607,222243,24607,485415,22037,23322,682794,24607,682794,551208,748587,1472310,1209138,1472310,682794,1209138,1735482,2196033,24864,105251,24607,90657,156450,742273,742273,742273,742273,742273,742273,742273,742273,808579,1138570,1204619,1204619,1204619,1204619,1729417,3106434,3631231,3695996,3890803,3955825,3955567,3954282,3821409,2833743,1779512,1449772,397086,2589,2305,16711935,16711935 
Data.l 16711935,16711935,105251,1538103,748587,288036,222243,1077552,682794,880173,156450,748587,814380,353829,353829,1077552,353829,23579,1406517,2196033,945966,419622,24093,617001,485415,22037,748587,1735482,945966,105251,1143345,24350,23579,742273,742273,742273,742273,742273,742273,742273,742273,742273,1006214,1204619,1204619,1204619,1204619,1335690,2516357,3434624,3696253,3890803,3955825,3955823,3955052,3887973,2966102,1780286,1581359,857379,133916,2049,16711935,16711935 
Data.l 16711935,105251,1077552,880173,1011759,748587,24607,1077552,23579,24350,288036,1932861,682794,1538103,2130240,20752,682794,880173,748587,814380,24350,945966,485415,485415,353829,748587,485415,1209138,1603896,288036,105251,24864,880173,1077552,814380,880173,880173,742273,742273,742273,742273,742273,808322,1138569,1204619,1204619,1204619,1204619,1794952,3041154,3630973,3890804,3955825,3955823,3955052,3888230,2966616,1781056,1581873,1251880,265503,3364,1792,16711935 
Data.l 16711935,105251,1209138,880173,485415,22294,24864,288036,24093,1077552,24093,1077552,880173,288036,24607,222243,1209138,1340724,485415,617001,353829,21780,945966,880173,24350,1406517,353829,551208,2327619,222243,105251,1801275,880173,1669689,90657,23065,742273,742273,742273,742273,742273,742273,742273,1006214,1204619,1204619,1204619,1204619,1401226,2581893,3565438,3890804,3955824,3955823,3955052,3887974,2900824,1781057,1647411,1383722,397089,3879,1536,16711935 
Data.l 105251,1801275,551208,1538103,288036,156450,1340724,551208,288036,20752,814380,288036,419622,1209138,24864,485415,20752,1209138,156450,1472310,1077552,24093,814380,1077552,682794,23579,814380,1406517,22808,1143345,814380,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,104739,103202,99101,92183,18191,11529,7173,4356,2818,2050,1537,1537,1793 
Data.l 105251,682794,682794,419622,617001,24350,353829,288036,945966,288036,1472310,814380,156450,419622,1340724,814380,617001,22037,22037,353829,419622,1603896,1143345,20495,22037,21009,222243,419622,1011759,945966,23836,872227,674848,14091,674848,609055,1129302,1129302,1129302,1129302,1129302,1129302,1129559,1328738,1527658,1527658,1527658,1527658,1593450,2446957,3562348,4084832,4149854,4149084,4083031,3884881,2502973,1647145,1580579,922392,198929,68115,134425,1794 
Data.l 16711935,105251,1011759,617001,1209138,23322,1209138,748587,1538103,19467,1011759,18439,617001,485415,288036,19467,945966,748587,485415,23579,1932861,1406517,682794,24607,1932861,23065,21780,24093,23322,1274931,105251,148504,16147,543262,12292,16661,1129302,1129302,1129302,1129302,1129302,1129302,1195866,1461351,1527658,1527658,1527658,1527658,1724523,2775149,3693676,4084576,4149596,4149082,4016982,3753036,2305334,1646631,1317150,396050,67600,133653,1793,16711935 
Data.l 16711935,105251,1932861,23836,682794,222243,1143345,22037,24864,222243,23065,1472310,1406517,90657,23065,748587,1340724,682794,945966,20752,880173,23579,1143345,24607,880173,353829,2130240,222243,22808,1077552,105251,1464364,82711,2451259,1069606,1129302,1129302,1129302,1129302,1129302,1129302,1129559,1328480,1527658,1527658,1527658,1527658,1527658,1987435,3103599,3890797,4084576,4149596,4149081,3951188,3424072,2107439,1580324,593428,132879,67602,134167,2561,16711935 
Data.l 16711935,16711935,105251,419622,90657,1011759,551208,880173,19981,1209138,353829,1340724,1669689,682794,1077552,1867068,353829,945966,485415,24607,945966,23322,1011759,19724,23065,2064447,485415,748587,1340724,105251,543262,82711,15890,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1196123,1461351,1527658,1527658,1527658,1527658,1593450,2381421,3563119,3890540,4150112,4149340,4148568,3950674,3029057,1844267,1054235,198414,67343,68116,3075,16711935,16711935 
Data.l 16711935,16711935,105251,22294,880173,1011759,2196033,23322,814380,24607,1472310,814380,156450,1406517,485415,22551,1077552,1538103,419622,1143345,353829,880173,1603896,24350,1143345,880173,1011759,1932861,1735482,105251,16147,1727536,16661,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1195352,1328994,1527658,1527658,1527658,1527658,1527658,1790315,2906734,3825776,3890282,4150110,4149083,4017238,3884622,2634042,1712423,527635,67085,67344,68117,3843,16711935,16711935 
Data.l 16711935,16711935,16711935,105251,1801275,748587,814380,1011759,2590791,1011759,19724,1406517,617001,748587,24864,23579,288036,551208,222243,1143345,1538103,24607,24864,1998654,1011759,748587,419622,1077552,105251,1332778,13834,1201192,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1129559,1262173,1461609,1527658,1527658,1527658,1527658,1593194,2118508,3431791,3825776,3955304,4149598,4149082,3951444,3621195,2239539,1185823,198413,67084,67345,4612,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,105251,24350,551208,617001,682794,1209138,90657,419622,23836,1406517,485415,156450,24093,1340724,24864,814380,18439,485415,1669689,551208,90657,23322,21523,21523,288036,105251,13577,1135399,15376,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1195866,1395302,1527658,1527658,1527658,1527658,1527658,1593450,2643821,3629168,3825776,4020582,4149340,4148825,3950931,3226435,1910060,527893,67084,67342,67858,4612,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,105251,22294,1472310,1340724,1011759,551208,551208,617001,1472310,156450,419622,1669689,1274931,485415,1143345,1406517,617001,880173,288036,22294,2064447,1472310,1603896,105251,1201192,15633,214297,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1195609,1394787,1527658,1527658,1527658,1527658,1527658,1527658,1855851,3234927,3825776,3825776,4020324,4149084,4017238,3884623,2962748,1383716,198927,66827,67342,5380,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,105251,1143345,353829,24607,1011759,1209138,288036,748587,24864,22037,222243,880173,1472310,23579,748587,1406517,24864,485415,682794,24607,1735482,682794,353829,105251,214297,345883,82711,280090,1129302,1129302,1129302,1129302,1129302,1129559,1328224,1461865,1527658,1527658,1527658,1527658,1527658,1593194,2250349,3563119,3825776,3825776,4085089,4149081,3951444,3621193,2436918,791066,67084,67084,67343,4611,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,105251,23579,617001,288036,617001,90657,551208,353829,485415,1077552,22294,1077552,1669689,551208,551208,1077552,1538103,1143345,353829,2130240,485415,105251,872227,674848,15890,214297,1129302,1129302,1129302,1129302,1129302,1129302,1261916,1461352,1527658,1527658,1527658,1527658,1527658,1527658,1790059,2840941,3694704,3825776,3890797,4084063,4083032,3950673,3357507,2106926,461843,66828,67085,5381,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,105251,20752,24864,222243,1735482,24864,1209138,24093,945966,24350,814380,288036,21780,222243,814380,20752,23579,1603896,288036,1077552,23322,105251,609055,14348,740641,16918,740641,1129302,1129302,1129302,1129302,1195352,1394787,1527658,1527658,1527658,1527658,1527658,1527658,1593194,2052972,3235183,3825776,3825776,3955046,4149339,4016981,3818572,3028285,1514532,198927,66828,67086,5124,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,105251,2064447,24350,814380,24093,23836,1406517,485415,24093,1472310,23836,23322,90657,1011759,1472310,2196033,22294,1406517,485415,105251,15890,14605,740641,674848,13063,740641,148504,1129302,1129302,1129559,1262173,1461609,1527658,1527658,1527658,1527658,1527658,1527658,1593450,2578285,3563376,3825776,3825518,4084576,4083032,3950930,3555142,2699318,922907,67084,67085,6149,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,105251,90657,551208,22551,24864,485415,24864,419622,23579,22808,222243,945966,485415,24350,90657,1998654,682794,21009,682794,105251,1069606,16918,15633,2056501,543262,12292,1129302,1129302,1129302,1195352,1394787,1527658,1527658,1527658,1527658,1527658,1527658,1527658,1921387,3037806,3825776,3825776,3955304,4149339,4016982,3884623,3225920,2106925,396305,67085,67342,5893,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,419622,1274931,1340724,353829,24093,222243,1274931,1011759,1077552,90657,20495,1340724,156450,880173,2130240,617001,105251,214297,15633,15633,609055,609055,2319673,1924915,1129302,1129302,1129302,1195866,1461351,1527658,1527658,1527658,1527658,1527658,1527658,1593450,2315884,3366255,3825776,3825262,4084833,4083032,3950931,3752521,2962746,1383201,133134,67086,7686,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,24607,90657,288036,23065,682794,814380,22294,22037,682794,22551,288036,1472310,748587,682794,551208,156450,105251,14605,16918,14862,13320,15376,1332778,1129302,1129302,1129302,1129302,1262173,1527402,1527658,1527658,1527658,1527658,1527658,1527658,1790315,2840685,3628912,3825776,3955303,4149339,4017238,3950415,3423299,2698804,856600,67085,67086,6918,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,353829,2064447,288036,682794,1143345,748587,1274931,419622,485415,551208,22551,1867068,24607,90657,105251,1201192,14862,16404,15890,82711,16404,1266985,1129302,1129302,1129302,1129559,1328738,1527658,1527658,1527658,1527658,1527658,1527658,1593450,2315628,3234926,3825776,3890541,4084576,4083032,3950931,3752779,3159869,2041130,396050,67085,8712,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,1077552,90657,22551,1932861,748587,485415,21523,1077552,1801275,222243,1406517,419622,1011759,222243,105251,14605,1398571,2714431,16404,345883,12549,938020,1595950,1129302,1129302,1195609,1461094,1527658,1527658,1527658,1527658,1527658,1527658,1790315,2775149,3563376,3825775,4020067,4149082,4016982,3950159,3554885,2896440,1317151,133134,67342,7174,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,682794,24093,353829,551208,419622,1011759,156450,1011759,1538103,1143345,24864,1340724,105251,1069606,14091,13320,543262,13834,15633,16918,1129302,1129302,1129302,1129302,1262173,1461865,1527658,1527658,1527658,1527658,1527658,1593194,2184300,3169391,3760240,3955304,4149342,4148568,3950931,3818572,3291455,2304559,593684,67342,8198,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,485415,1011759,485415,222243,551208,1011759,419622,814380,945966,156450,90657,1011759,105251,16661,740641,477469,411676,82711,411676,15633,1129302,1129302,1129302,1129559,1328737,1527658,1527658,1527658,1527658,1527658,1527658,1658986,2709869,3497583,3890539,4084575,4149081,4016982,3950415,3686471,3028025,1448737,198927,67342,6405,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,288036,1603896,90657,880173,1340724,945966,1406517,1406517,551208,748587,105251,477469,1464364,411676,12035,15119,477469,345883,543262,1129302,1129302,1129302,1195609,1395301,1527658,1527658,1527658,1527658,1527658,1527658,1987435,3169391,3759726,4019554,4149084,4083032,3950931,3884364,3423042,2436145,659735,67342,6406,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,22037,1274931,485415,90657,2196033,222243,814380,748587,1274931,288036,105251,806434,872227,872227,280090,16404,14862,14605,1129302,1129302,1129302,1129302,1261659,1461609,1527658,1527658,1527658,1527658,1527658,1658986,2775149,3563119,3955046,4149597,4149081,4016981,3950415,3752265,3094076,1580837,198928,67342,4868,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,485415,20495,814380,288036,22808,1406517,1735482,1801275,105251,1003813,14348,1201192,15633,1332778,15376,15119,1129302,1129302,1129302,1129302,1129559,1328223,1527658,1527658,1527658,1527658,1527658,1527658,2052972,3300719,3890284,4084574,4149083,4083032,3950931,3884364,3488835,2501683,856857,133135,4868,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,485415,288036,22037,1077552,945966,1340724,1340724,24350,105251,609055,674848,82711,214297,1332778,14862,674848,15633,609055,1129302,1129302,1195352,1395045,1527658,1527658,1527658,1527658,1527658,1724522,2906734,3759983,4020324,4149597,4149082,4016982,3950415,3752009,3094075,1843751,396563,67599,3843,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,551208,24864,748587,551208,748587,24093,105251,1595950,16404,674848,1727536,609055,14862,477469,214297,12549,938020,1129302,1129302,1196123,1461609,1527658,1527658,1527658,1527658,1527658,2250092,3563376,3890797,4084574,4149083,4083032,3950931,3818572,3357249,2633266,1054493,198414,4099,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,222243,1472310,1209138,22294,551208,1209138,105251,674848,806434,345883,82711,1003813,16661,16147,16661,15119,14348,1129302,1129559,1328737,1527658,1527658,1527658,1527658,1527658,1790058,3169135,3825776,3955046,4149341,4149082,4016981,3950415,3555142,2962233,1975080,527892,67343,3586,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,23065,353829,24607,288036,105251,806434,1332778,16147,15633,16918,1135399,345883,674848,15890,1003813,1129302,1129302,1196123,1461608,1527658,1527658,1527658,1527658,1593194,2446957,3628912,3825519,4084832,4149083,4083031,3950674,3752522,3159871,2501426,1185564,198927,3587,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,1274931,2064447,22551,156450,105251,148504,14348,609055,674848,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1129816,1394787,1527658,1527658,1527658,1527658,1527658,1987179,3235183,3825776,3955048,4149597,4148825,3951444,3884622,3357763,2896439,1909288,527380,67342,3587,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,156450,353829,105251,740641,82711,1201192,280090,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1261916,1461865,1527658,1527658,1527658,1527658,1658986,2709613,3694704,3825518,4084832,4149082,4082774,3950672,3620679,3028283,2698547,1119772,132879,3587,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,20752,485415,105251,1859122,477469,1069606,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1129559,1328738,1527658,1527658,1527658,1527658,1527658,2118508,3431791,3825776,3955047,4149340,4083032,3950931,3818315,3291455,2830645,2106409,527379,67342,3330,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,105251,105251,15890,16147,15890,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1129302,1195352,1394788,1527658,1527658,1527658,1527658,1724522,2840941,3694704,3890796,4084575,4149081,3951444,3950159,3555141,3027512,2369581,1382943,264464,3330,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,105251,104226,101920,96539,23829,16910,12298,9224,6917,4868,3843,3330,3074,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
Data.l 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935 
EndDataSection 

Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Message par Fig »

Je me trompe peut etre, pour la vitesse d'exécution je pense que l'on gagne pas mal...

On a pas mal d'itération, même si avec le if on affiche rien.
Par exemple avec simplement 255x255 je tombe à 20 images/sec.
J'ai des tiles de 64x32 donc en fait il me suffirait dans mon ecran de 1024x600 d'en afficher simplement 1024/64=16 en largeur et 600/32 #19 en hauteur, donc 300 itérations au lieu de 65000(255x255). De cette façon, quelque soit la taille de la map, je n'affiche que mes 300 tiles et ca me laisse pas mal de temps pour afficher les autres éléments du jeu par dessus les tiles.

Enfin, j'avoue que je n'arrive pas pour le moment à définir une zone réduite à afficher. Mais je suis plutot mauvais il est vrai :oops:

J'espere que tu auras le temps de te pencher la dessus. De mon coté j'essaye modestement. :?
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Message par Fig »

Arf, le temps de taper mon message et c deja fait ! #yes
Je vais essayer d'integrer ça...
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Message par Fig »

bein, en fait sur mon portable y'a aucune difference #larme
g un core duo a 1.73 et une carte graphique integré sans doute un peu faible (je suis a 11FPS dans les deux cas !)
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Anonyme

Message par Anonyme »

Arf, j'ai compris ton soucis tu veut en fait un truc du genre :

For x = MinScreenX to MaxScreenX
For y = MinScreeny to MaxScreeny

je vais regarder si c'est jouable.

@++
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

Message par Fig »

Bon j'ai réussi pour la partie supérieure de la carte.
Ce n'est pas très élégant mais ça marche.
Je travail pour la deuxieme partie lolol
Quand ce sera fini je donnerai le code parceque je gagne vraiment beaucoup de fps. #morning
Avec le code je suis sûr que qqu'un pourra faire ça plus propre... :microwave:
Je programme vraiment comme un cochon #sure
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
Répondre