Code: Select all
; SPH(2008-2010)
; HexaScrabble
#src=0
#dst=1
chemin$=""
;chemin$="d:\PureBasic\PB\HEXAScrabble\"
;chemin$="c:\NO_Install\PureBasicB450\PB\HexaScrabble\"
;SetPriorityClass_ ( GetCurrentProcess_ (), #IDLE_PRIORITY_CLASS )
UseJPEGImageDecoder()
If InitSprite() And InitMouse() And InitKeyboard() And InitSound()
Else
MessageRequester("Erreur", "InitSprite() And InitMouse() And InitKeyboard() And InitSound() : impossible")
End
EndIf
If LoadFont(1, "Arial", 8)
Else : MessageRequester("Erreur", "LoadFont(1, ''Arial'', 8) : impossible")
End
EndIf
;Andalus$="Andalus"
Andalus$="Times New Roman"
If LoadFont(2, Andalus$, 50)
Else : MessageRequester("Erreur", "LoadFont(2, Andalus$, 50) : impossible")
End
EndIf
Dim avatar.b(20)
Dim nom$(8)
Dim score.l(7)
Dim niveau.b(7)
mon_numero.b=0
niveau(mon_numero)=2
mod.b=1
grillage.b=2
sprite00232=232
scr_w=1366
scr_h=768
If OpenScreen(scr_w,scr_h,32,"")
Else
scr_w=1280
scr_h=1024
If OpenScreen(scr_w,scr_h,32,"")
Else
scr_w=1280
scr_h=960
If OpenScreen(scr_w,scr_h,32,"")
Else
scr_w=1280
scr_h=800
If OpenScreen(scr_w,scr_h,32,"")
Else
scr_w=1280
scr_h=768
If OpenScreen(scr_w,scr_h,32,"")
Else
scr_w=1280
scr_h=720
If OpenScreen(scr_w,scr_h,32,"")
Else
scr_w=1024
scr_h=768
If OpenScreen(scr_w,scr_h,32,"")
Else
scr_w=1024
scr_h=600
If OpenScreen(scr_w,scr_h,32,"")
Else
MessageRequester("Erreur", "OpenScreen impossible")
End
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
debut2:
level=1
Dim pieces.w(20) ; 18 max
Dim time.w(20)
Dim chance.b(20)
Dim magie.b(20)
Dim teleporte.b(20)
Dim pouvoir.b(20)
;**************************************************************************
;**************************************************************************
StartDrawing(ScreenOutput())
LineXY(0,0,12,12,RGB(255,255,255))
StopDrawing()
GrabSprite(1001,0,0,12,12)
;**************************************************************************
;**************************************************************************
;**************************************************************************
;**************************************************************************
debut3:
;Gosub loadsprite
Dim menu_nom$(20)
Dim menu_niveau(20)
Dim menu_score(20)
Dim menu_avatar(20)
Dim menu_pieces(20)
Dim menu_telep(20)
Dim menu_chance(20)
Dim menu_pouvoir(20)
Dim menu_magie(20)
debut4:
For ii=1 To 20
If ReadFile(#src, chemin$+"players\"+Str(ii));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
u = ReadByte(#src)
titre$=""
;Dim titre.b(u)
For i=1 To u
z= ReadByte(#src)
titre$+Chr(z)
Next
menu_nom$(ii)=titre$
menu_niveau(ii)= ReadByte(#src)
menu_avatar(ii)= ReadByte(#src)
menu_pieces(ii)= ReadByte(#src)
menu_telep(ii)= ReadByte(#src)
menu_chance(ii)= ReadByte(#src)
menu_pouvoir(ii)= ReadByte(#src)
menu_magie(ii)= ReadByte(#src)
menu_score(ii)= ReadLong(#src)
CloseFile(#src)
EndIf
Next
; For ii=1 To 10
; menu_nom$(ii)=Chr(65+Random(25))
; avatar(ii)= Random(20)
; level(ii)= Random(20)+1
; score2(ii)=Random(100000)
; Next
Repeat
ClearScreen(0): LoadFont(1, "Arial", 8): StartDrawing(ScreenOutput()) : DrawingMode( #PB_2DDrawing_Default) ;#PB_2DDrawing_Transparent)
DrawingFont(FontID(1)) : BackColor(0)
la=1
sauve=-1
For ii=1 To 20
a$=menu_nom$(ii)+" --- Lv."+Str(menu_niveau(ii))+" --- Score : "+Str(menu_score(ii))
If menu_nom$(ii)<>""
DrawText(scr_w/2-TextWidth(a$)/2,ii*13,a$, RGB(255,255,0))
la+1
Else
If sauve=-1
sauve=ii
EndIf
EndIf
Next
;DisplaySprite(1100,50,50)
a$="Nouveau joueur"
DrawText(scr_w/2-TextWidth(a$)/2,24*13,a$, RGB(0,255,0))
a$="Quit (ESC)"
DrawText(scr_w/2-TextWidth(a$)/2,30*13,a$, RGB(200,0,0))
StopDrawing()
ExamineMouse()
mx=MouseX()
my=MouseY()
Mb_Left=MouseButton(#PB_MouseButton_Left)
DisplayTransparentSprite(1001,mx,my)
DisplayRGBFilter(0,my/13*13,scr_w,13,10,10,100)
If Mb_Left
If my/13=24 And sauve<>-1
Gosub player
Goto debut4
EndIf
If my/13<=20 And my/13>0
If menu_niveau(my/13)>0
Goto suite2
EndIf
EndIf
If my/13=30
End
EndIf
EndIf
FlipBuffers();-;FlipBuffers()
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
End
suite2:
Repeat
ExamineMouse()
Mb_Left=MouseButton(#PB_MouseButton_Left)
Until Mb_Left=0
player=my/13
pieces(0)=menu_pieces(my/13)
; Debug pieces(0)
; End
score(0) =menu_score(my/13)
niveau(0) = menu_niveau(my/13)
nom$(0)= menu_nom$(my/13)
avatar(0) = menu_avatar(my/13)
teleporte(0)= menu_telep(my/13)
chance(0) =menu_chance(my/13)
pouvoir(0)=menu_pouvoir(my/13)
magie(0) =menu_magie(my/13)
End
player:
ClipSprite(1003,(avatar(sauve)%37)*29,0,29,31) ; la bonne tete
name$=""
Repeat
ClearScreen(0):LoadFont(1, "Arial", 8): StartDrawing(ScreenOutput()) : DrawingMode( #PB_2DDrawing_Default) ;#PB_2DDrawing_Transparent)
DrawingFont(FontID(1)) : BackColor(0)
i+1
i%80
If i<40
b$="_"
Else
b$=""
EndIf
a$="< >"
DrawText(scr_w/2-TextWidth(a$)/2,210,a$, RGB(0,255,0))
a$="Nom : "+name$
DrawText(scr_w/2-TextWidth(a$)/2,24*12,a$+b$, RGB(0,255,0))
name$+KeyboardInkey()
ExamineKeyboard()
If KeyboardPushed(#PB_Key_Back) And back=1
Repeat
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Back) =0
back=0
EndIf
If KeyboardPushed(#PB_Key_Back) And back=0
name$=Mid(name$,1,Len(name$)-1) : back=1
EndIf
StopDrawing()
DisplaySprite(1003,scr_w/2-15,200) ;tete
FlipBuffers();-;FlipBuffers()
If avat=1
Delay(200)
avat=0
EndIf
ExamineKeyboard()
If (KeyboardPushed(#PB_Key_Return) Or KeyboardPushed(#PB_Key_PadEnter)) And name$<>""
menu_nom$(sauve)=name$
menu_niveau(sauve)=1
ecrire=0
ecrire:
If CreateFile(#src, chemin$+"players\"+Str(sauve));;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WriteByte(#src,Len(menu_nom$(sauve)))
For i=1 To Len(menu_nom$(sauve))
WriteByte(#src,Asc(Mid(menu_nom$(sauve),i,1)))
Next
WriteByte(#src,1)
WriteByte(#src,avatar(sauve))
WriteByte(#src,10)
WriteByte(#src,0)
WriteByte(#src,0)
WriteByte(#src,0)
WriteByte(#src,0)
WriteLong(#src,0)
CloseFile(#src)
Return
EndIf
EndIf
If KeyboardPushed(#PB_Key_Left)
avatar(sauve)-1
avat=1
If avatar(sauve)<0
avatar(sauve)=36
EndIf
ClipSprite(1003,(avatar(sauve)%37)*29,0,29,31) ; la bonne tete
EndIf
If KeyboardPushed(#PB_Key_Right)
avatar(sauve)+1
avat=1
If avatar(sauve)>36
avatar(sauve)=0
EndIf
ClipSprite(1003,(avatar(sauve)%37)*29,0,29,31) ; la bonne tete
EndIf
Until KeyboardPushed(#PB_Key_Escape)
Repeat
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)=0
Return