je viens partager avec vous un grand mystere irresolu.
Dans le code qui suit, il est demandé un nom. Essayez d'en inscrire un. Curieusement, les majuscules ne sont pas pris en compte. PKOI ?
Code : Tout sélectionner
Global win, LMB, RMB, OldMouseX, OldMouseY
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)
Procedure CrisotResetMouseDelta()
OldMouseX=WindowMouseX(win)
OldMouseY=WindowMouseY(win)
EndProcedure
Procedure CrisotMouseDeltaX()
DeltaMouseX=WindowMouseX(win)-OldMouseX
OldMouseX=WindowMouseX(win)
ProcedureReturn DeltaMouseX
EndProcedure
Procedure CrisotMouseDeltaY()
DeltaMouseY=WindowMouseY(win)-OldMouseY
OldMouseY=WindowMouseY(win)
ProcedureReturn DeltaMouseY
EndProcedure
Procedure CrisotMouseButton() ; Très, très sale (PB ne gère pas les Event ButtonUp ou ButtonDown)
Repeat
Event = WindowEvent()
Select Event
Case #WM_LBUTTONDOWN ; Sale
LMB=#True
Case #PB_Event_LeftClick
LMB=#False
Case #WM_RBUTTONDOWN ; Sale
RMB=#True
Case #PB_Event_RightClick
RMB=#False
EndSelect
Until Event=0
EndProcedure
Procedure CrisotRightMouseButton()
CrisotMouseButton()
ProcedureReturn RMB
EndProcedure
Procedure CrisotLeftMouseButton()
CrisotMouseButton()
ProcedureReturn LMB
EndProcedure
#src=0
#dst=1
rezo.b=1
tchat=0
nb_tchat.b=9
;SetPriorityClass_ ( GetCurrentProcess_ (), #IDLE_PRIORITY_CLASS )
UseJPEGImageDecoder()
UseOGGSoundDecoder()
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.q(7)
Dim niveau.b(7)
mon_numero.b=0
niveau(mon_numero)=2
mod.b=1
grillage.b=2
sprite00232=232
; CRISOT
;If ExamineDesktops()
; scr_w = DesktopWidth(0)
; scr_h = DesktopHeight(0)
; OpenScreen(scr_w,scr_h,32,""); OpenWindowedScreen(WindowID(window),0,0,sWidth,sHeight,1,0,0,#PB_Screen_SmartSynchronization)
;Else
;MessageRequester("Erreur", "OpenScreen impossible")
;End
;EndIf
; CRISOT - Remplace avantageusement l'OpenScreen()
win=OpenWindow(#PB_Any, 0, 0, 0, 0, "HexaScrabble2", #PB_Window_Maximize | #PB_Window_BorderLess )
;win=OpenWindow(#PB_Any, 0, 0, 800,600, "HexaScrabble2")
scr_w=WindowWidth(win) : scr_h=WindowHeight(win)
OpenWindowedScreen (WindowID(win),0 , 0, scr_w, scr_h,0, 0, 0, #PB_Screen_SmartSynchronization)
ShowCursor_(0) ; CRISOT - On cache le curseur.
player:;-player:
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))
ExamineKeyboard()
name$+KeyboardInkey()
name$=ReplaceString(name$,Chr(13),"")
name$=ReplaceString(name$,Chr(8),"")
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()
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)
WriteQuad(#src,0)
CloseFile(#src)
Return
EndIf
EndIf
If KeyboardPushed(#PB_Key_Left)
avatar(sauve)-1
avat=1
If avatar(sauve)<0
avatar(sauve)=19
EndIf
EndIf
If KeyboardPushed(#PB_Key_Right)
avatar(sauve)+1
avat=1
If avatar(sauve)>19
avatar(sauve)=0
EndIf
EndIf
Until KeyboardPushed(#PB_Key_Escape)
Repeat
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)=0
