small game (PB/SB compatible)

Created a nice software using SpiderBasic ? Post you link here !
pf shadoko
Posts: 74
Joined: Thu May 26, 2016 11:09 am

small game (PB/SB compatible)

Post by pf shadoko »

Image

Hello,

I made a little breakout, PB and SB compatible
some small problems in SB (MouseDeltaX () vectordrawing abnormally slow (see bug reports) ...)
but very easy to code with SB

Code: Select all

EnableExplicit

Structure objet
    x.f
    y.f
    dx.f
    dy.f
    s.w
EndStructure

Global ex=800,ey=600,zoom.f,titre.s="Casse Brique"
Global NewMap b.objet() ;balles
Global NewMap t.objet() ;tires
Global NewMap e.objet() ;explosion
Global Dim niv.s(10)
Global Dim n.b(30,20)
Global Dim btrans(24)
Global rx,ry=ey-64+8,rl,nbr,tire
Global niveau,score

InitSprite()
InitMouse()
InitKeyboard()

CompilerIf #PB_Compiler_OS<>5
    #SBCol=0
    ExamineDesktops()
    zoom=DesktopHeight(0)/600
    Macro xend:End:EndMacro
    Macro xClipPath(v):ClipPath(v):EndMacro
    Macro xReleaseMouse(v):ReleaseMouse(v):EndMacro
    Macro xRenderFrame:Repeat:WindowEvent():RenderFrame(): ForEver:EndMacro
CompilerElse
    #SBCol=$ff000000
    zoom=1
    Macro xend:ReleaseMouse(1):EndMacro
    Macro xClipPath(v):zoom=1:EndMacro
    Macro xReleaseMouse(v):zoom=1:EndMacro
    Macro xRenderFrame:BindEvent(#PB_Event_RenderFrame, @RenderFrame()):FlipBuffers():EndMacro
CompilerEndIf

Procedure CoMelange(c1.l, c2.l, m.f)
    Protected r.w,g.w,b.w,a.w
    r=  Red(c1) + (Red(c2)     - Red(c1)) * m
    g=Green(c1) + (Green(c2) - Green(c1)) * m
    b= Blue(c1) + (Blue(c2) -   Blue(c1)) * m
    a=Alpha(c1) + (Alpha(c2) - Alpha(c1)) * m
    ProcedureReturn  RGBA(r,g,b,a)
EndProcedure

Macro cola(col,a=$ff):((col|(a<<24))!#SBCol):EndMacro

Procedure.f POM(v.f)
  ProcedureReturn (Random(v*1000)-v*500)/500
EndProcedure

Macro limite(v,min,max)
    If v<min:v=min:EndIf
    If v>max:v=max:EndIf
EndMacro

Procedure NVballe()
    Static cpt:cpt+1
    Define bb.objet=b():b()\dx=pom(4):b()\s=1
    b(Str(cpt))=bb
EndProcedure

Procedure NVtire()
    Static cpt:cpt+1
    Define tt.objet:tt\x=rx:tt\y=ry-16:tt\dy=-8:tt\s=3
    t(Str(cpt))=tt
EndProcedure

Procedure NVexplosion(x,y)
    Static cpt:cpt+1
    Define ee.objet:ee\x=x:ee\y=y:ee\s=255
    e(Str(cpt))=ee    
EndProcedure

Procedure.b collision(x,y,objet)
    Protected i=x/32,j=y/32,brique,transf
    limite(i,0,24)
    brique=n(i,j):If brique=0:ProcedureReturn:EndIf
    transf=btrans(brique)
    If transf=0:nbr-1:score+1:NVexplosion(i*32-8,j*32-8):EndIf
    If objet
        Select brique
            Case 2 :NVballe()
            Case 3 :b()\s=2
            Case 4 :rl=128
            Case 5 :tire=1
        EndSelect
    EndIf
    n(i,j)=transf
    If (objet=2 And transf>0) Or (objet<2 And brique>0):ProcedureReturn 1:EndIf
EndProcedure

Procedure message(txt.s)
Macro dt(nf,y,t,col)
    DrawingFont(FontID(nf))
    DrawText((OutputWidth()-TextWidth(t))/2,y,t,col!#SBCol)
EndMacro
    CreateSprite(30,ex*0.6,ey*0.4,#PB_Sprite_AlphaBlending)
    StartDrawing(SpriteOutput(30))
    DrawingMode(#PB_2DDrawing_AllChannels)
    Box(0,0,ex*0.6,ey*0.4,0!#SBCol)
    RoundBox(0,0,ex*0.6,ey*0.4,100,100,$88004444!#SBCol)
    DrawingMode(#PB_2DDrawing_AlphaBlend |#PB_2DDrawing_Transparent)
    dt(3,30,txt,$ffffffff)
    dt(2,100,"APPUYER SUR UNE TOUCHE",$ff00ffff)
    dt(1,160,"[Echap] Pause / Menu / Quitter [F1] Editeur",$ff00ffff)
    dt(1,180,"(Souris) ou [<] Gauche [>] Droite [/\] Tire",$ff00ffff)
    dt(1,200,"[+] [-] Changer de niveau",$ff00ffff)
    StopDrawing()
EndProcedure

Procedure initdecor()
    Protected i,j,k,c,ca,c1,c2, x,y,r,a1,a2,a3
    
    Macro DrawingSprite(n,dx,dy)
        CreateSprite(n,dx,dy,#PB_Sprite_AlphaBlending)
        CreateImage(0,dx,dy,32,#PB_Image_Transparent)
        StartVectorDrawing(ImageVectorOutput(0))
    EndMacro
    
    Macro StopDrawingSprite(n)
        StopVectorDrawing()
        StartDrawing(SpriteOutput(n))
        DrawingMode(#PB_2DDrawing_AllChannels)
        DrawAlphaImage(ImageID(0),0,0)
        StopDrawing()
    EndMacro
    
    ;fond
    DrawingSprite(10,ex,ey)
    VectorSourceColor(cola(Random($ffffff)))
    FillVectorOutput()
    a1=64:a2=a1/2:a3=0:If niveau & 1:Swap a1,a3:EndIf
    For i=0 To ex Step 40
        For j=0 To ey Step 40
            x=i+Random(40)
            y=j+Random(40)
            r=10+Random(50)
            c=Random($ffffff)
            VectorSourceCircularGradient(x, y, r)
            VectorSourceGradientColor(cola(c,a1),0.0)
            VectorSourceGradientColor(cola(c,a2),0.8)
            VectorSourceGradientColor(cola(c,a3),0.95)      
            VectorSourceGradientColor(cola(c,0 ),1.0)      
            AddPathCircle(x,y,r)
            FillPath()
        Next
    Next    
    stopDrawingSprite(10)
    
    ;score
    CreateSprite(20,ex/2,32,#PB_Sprite_AlphaBlending)
        
    ;raquette
    DrawingSprite(0,128,16)
    AddPathEllipse(64,8,62,7)
    VectorSourceLinearGradient(64,0,64,16)
    VectorSourceGradientColor(cola($00ff00), 0.0)
    VectorSourceGradientColor(cola($ff0000), 1.0)
    FillPath(#PB_Path_Preserve)
    VectorSourceColor(cola($ffffff)):StrokePath(2)
    stopDrawingSprite(0)
    
    ;balle
    DrawingSprite(1, 16,16)
    AddPathCircle(8,8,6)
    VectorSourceCircularGradient(8, 8, 8, -2, -2)
    VectorSourceGradientColor(cola($ffffff), 0.0)
    VectorSourceGradientColor(cola($888888), 1.0)
    FillPath()
    stopDrawingSprite(1)
    
    ;balle (grosse)
    DrawingSprite(2, 16,16)
    AddPathCircle(8,8,8)
    VectorSourceCircularGradient(8, 8, 8, -2, -2)
    VectorSourceGradientColor(cola($00ffff), 0.0)
    VectorSourceGradientColor(cola($008888), 1.0)
    FillPath()
    stopDrawingSprite(2)
    
    ;tire
    DrawingSprite(3, 8,32)
    AddPathEllipse(4,16,4,16)
    VectorSourceCircularGradient(4, 10, 20)
    VectorSourceGradientColor(cola($00ffff), 0.0)
    VectorSourceGradientColor(cola($0000ff), 1.0)
    FillPath()
    stopDrawingSprite(3)

    ;canon
    DrawingSprite(4, 16,20)
    VectorSourceLinearGradient(0, 0,16,0)
    VectorSourceGradientColor(cola($444444), 0.0)
    VectorSourceGradientColor(cola($ffffff), 0.3)
    VectorSourceGradientColor(cola($444444), 1.0)
    FillVectorOutput()
    stopDrawingSprite(4)
    
    ;explosion
    DrawingSprite(5, 48,48)
    AddPathCircle(24,24,24)
    VectorSourceCircularGradient(24,24,24)
    VectorSourceGradientColor(cola($ffffff), 0.0)
    VectorSourceGradientColor(cola($00ffff), 0.6)
    VectorSourceGradientColor(cola($00ffff,0), 1.0)
    FillPath()
    stopDrawingSprite(5)
    
    ;briques
        Protected Dim col.l(23)
        For i=0 To 23
        c=Random($ffffff):col(i)=c
        DrawingSprite(64+i, 32,32)
        Select i
            Case 0
                AddPathBox(2,2,28,28)
                VectorSourceColor(cola($ffffff))
                StrokePath(3)
            Case 1
                btrans(1)=1
                VectorSourceColor(cola($888888)):FillVectorOutput()
                For j=0 To 31 Step 4
                    For k=0 To 31 Step 4
                        AddPathCircle(k+1,j+1,1):VectorSourceColor(cola($aaaaaa)):FillPath()
                        AddPathCircle(k+3,j+3,1):VectorSourceColor(cola($666666)):FillPath()
                    Next
                Next      
            Case 2 To 11
                ca=c|$ff000000
                AddPathBox(2,2,28,28)
                VectorSourceCircularGradient(16,16,17, -8,-8)
                VectorSourceGradientColor(CoMelange($ffffffff,ca, 0.0), 0.0)
                VectorSourceGradientColor(CoMelange($ffffffff,ca, 0.2), 0.1)
                VectorSourceGradientColor(CoMelange(ca,$ff000000,0.2), 0.9)
                VectorSourceGradientColor(CoMelange(ca,$ff000000,0.4), 0.99)
                VectorSourceGradientColor(CoMelange($00000000,ca, 0.0), 1.0)
                FillPath()
                Select i
                    Case 2
                        AddPathCircle(10,16,3)
                        AddPathCircle(22,16,3)
                        VectorSourceColor(cola($ffffff)):FillPath(#PB_Path_Preserve)
                        VectorSourceColor(cola($000000)):StrokePath(1)
                    Case 3
                        AddPathCircle(16,16,5)
                        VectorSourceColor(cola($00ffff)):FillPath(#PB_Path_Preserve)
                        VectorSourceColor(cola($ff0000)):StrokePath(1)
                    Case 4
                        AddPathSegments("M 6 16 L 14 10 L 14 14 L 18 14 L 18 10 L 26 16 L 18 22 L 18 18 L 14 18 L 14 22 Z")
                        VectorSourceColor(cola($000000)):FillPath(#PB_Path_Preserve)
                        VectorSourceColor(cola($ffffff)):StrokePath(1)
                    Case 5
                        AddPathEllipse(16,16,3,6)
                        VectorSourceColor(cola($0088ff)):FillPath(#PB_Path_Preserve)
                        VectorSourceColor(cola($ff8800)):StrokePath(1)
                EndSelect
                
            Case 12 To 23
                AddPathBox(2,2,28,28)
                xClipPath(#PB_Path_Preserve)
                If i<18:btrans(i)=i+6:Else: c=col(i-6):EndIf
                c1=cola(c,$cc)
                c2=cola($ffffff,$cc)
                VectorSourceCircularGradient(16,16,20,4,4)
                VectorSourceGradientColor(c1, 0)
                VectorSourceGradientColor(c2, 1)
                FillPath()
                If i>=18
                For j=0 To 40
                    VectorSourceColor(CoMelange(c1,$88ffffff, Random(16)/16))
                    MovePathCursor(16+pom(8),16+pom(8)):AddPathLine(16+pom(20),16+pom(20))
                    StrokePath(1)
                Next
                EndIf
        EndSelect
        stopDrawingSprite(i+64)
    Next
EndProcedure

Procedure initniveau(niv)
    Protected t.s,i,j,c
    limite(niv,1,10)
    If niveau<>niv:niveau=niv:RandomSeed(niv):initdecor():EndIf
    t=niv(niveau)
    c=0
    nbr=0
    For i=0 To 24:n(i,0)=1:Next
    For j=1 To 16
        n(0,j)=1:n(24,j)=1
        For i=1 To 23:c+1
            n(i,j)=Asc(Mid(t,c,1))-64:If n(i,j)<0:n(i,j)=0:EndIf
            If n(i,j)>1:nbr+1:EndIf
        Next
    Next
    rx=ex/2
    rl=64
    tire=0    
    ClearMap(e())
    ClearMap(t())
    ClearMap(b())
    AddMapElement(b(),"0")
    b()\x=rx
    b()\y=ry
    b()\dx=0
    b()\dy=-4
    b()\s=1
    message("NIVEAU "+Str(niveau))
EndProcedure

Procedure RenderFrame()
    Static px,nokey,nobutton,pause,bsel,i,j,br,pi,pj,etat
    Protected txt.s
    Macro sprite(n,x,y)
        DisplayTransparentSprite(n,x+8,y+8,64,0!#SBCol)
        DisplayTransparentSprite(n,x,y)
    EndMacro
    
    ExamineKeyboard()
    ExamineMouse()
    ;tableau
    DisplaySprite(10,0,0)  
    For j=0 To 16
        For i=0 To 24
            br=n(i,j):If br>0:Sprite(br+64,i*32,j*32):EndIf 
        Next
    Next
    StartDrawing(SpriteOutput(20))
    DrawingMode(#PB_2DDrawing_AllChannels )
    Box(0,0,ex*0.5,32,cola(0,0))
    DrawingFont(FontID(2))
    DrawText(ex*0.0,0,"SCORE "+Str(score),cola($ffffff),cola($888888))
    DrawText(ex*0.3,0,"NIVEAU "+Str(niveau),cola($ffffff),cola($888888))
    StopDrawing()
    DisplayTransparentSprite(20,ex/4,0)  
    Select etat
        Case 0 ; ---------------- menu
            If KeyboardReleased(#PB_Key_Add     ):initniveau(niveau+1):EndIf
            If KeyboardReleased(#PB_Key_Subtract):initniveau(niveau-1):EndIf
            If (nokey And KeyboardReleased(#PB_Key_All)) Or MouseButton(1):score=0:initniveau(niveau):etat=3:EndIf
            If KeyboardReleased(#PB_Key_Escape):xEnd:EndIf 
            If KeyboardReleased(#PB_Key_F1):initniveau(niveau):etat=5:EndIf
       Case 1 ; ---------------- attente
            If (nokey And KeyboardReleased(#PB_Key_All)) Or MouseButton(1):etat=3:EndIf
       Case 2 ; ---------------- pause
            If KeyboardReleased(#PB_Key_Escape):message(titre):xReleaseMouse(0):etat=0:EndIf 
            If (nokey And KeyboardReleased(#PB_Key_All)):xReleaseMouse(0):etat=3:EndIf            
       Case 3 ; ---------------- jeux
            ;  balles     
            ForEach b()
                With b()
                    \x+\dx
                    \y+\dy
                    px=\x-rx
                    If collision(\x,\y+\dy,\s):\dy=-\dy:EndIf
                    If collision(\x+\dx,\y,\s):\dx=-\dx:EndIf
                    If \y=ry And px>-rl And px<rl:\dy=-\dy:\dx=\dx+(px*8)/rl:EndIf
                    If nbr=0 And MapSize(e())=0:initniveau(niveau+1):etat=1:EndIf
                    Sprite(b()\s,b()\x-8,b()\y-8)
                    If \y>ey:DeleteMapElement(b()):If MapSize(b())=0:message("GAME OVER"):etat=0:EndIf:EndIf
                EndWith
            Next
            ;  tires     
            ForEach t()
                With t()
                    \y+\dy
                    Sprite(3,\x-4,\y-8)
                    If collision(\x,\y+\dy,0):DeleteMapElement(t()):EndIf
                EndWith
            Next
            ;  explosion     
            ForEach e()
                With e()                  
                    DisplayTransparentSprite(5,\x,\y,\s)
                    \s-16:If \s<0:DeleteMapElement(e()):EndIf
                EndWith
            Next
            ;  raquette
            rx+(Bool(KeyboardPushed(#PB_Key_Right)<>0)-Bool(KeyboardPushed(#PB_Key_Left)<>0))*16+MouseDeltaX():limite(rx,0,ex)
            ZoomSprite(0,rl*2,16):Sprite(0, rx-rl, ry)
            If tire :DisplayTransparentSprite(4,rx-8,ry-4):If (nobutton And MouseButton(1)) Or KeyboardReleased(#PB_Key_Up):NVtire():EndIf:EndIf
            If KeyboardReleased(#PB_Key_Escape):xReleaseMouse(1):message("PAUSE"):etat=2:EndIf 
        Case 5 ; ---------------- editeur 
            For i=1 To 23:DisplaySprite(64+i,i*32,ey-56):Next
            pi=MouseX()/32:If pi<1:pi=1:ElseIf pi>23:pi=23:EndIf
            pj=MouseY()/32:If pj<1:pj=1:ElseIf pj>17:pj=17:EndIf
            DisplayTransparentSprite(64,pi *32,pj*32)
            DisplayTransparentSprite(64,bsel *32,17*32,$ff,$ff0000ff)
            If MouseButton(1)=1:If pj=17:bsel=pi: ElseIf pj<=14: n(pi,pj)=bsel:EndIf:EndIf            
            If MouseButton(2)=1 And pj<=14:n(pi,pj)=0:EndIf 
            If KeyboardReleased(#PB_Key_Escape):For j=1 To 14:For i=1 To 23:txt+Chr(64+n(i,j)):Next:Next:niv(niveau)=txt:Debug txt:etat=0:EndIf            
    EndSelect
    If etat<=2:DisplayTransparentSprite(30,ex*0.2,ey*0.25):EndIf
    FlipBuffers()
    nokey=Bool(KeyboardPushed(#PB_Key_All)=0)
    nobutton=Bool(MouseButton(1)=0)
EndProcedure

;niveaux
niv(1)="@FFFFFI@@@@@@@@@FKKKKK@DFGGGFI@QQQQQQQ@FKJJJKE@FGHGFI@QPPPPPQ@FKJIJK@@FGGGFI@QPBBBPQ@FKJJJK@@FFFFFI@QPBBBPQ@FKKKKK@@IIIIII@QPBBBPQ@FFFFFF@@@@@@@@@QPPPPPQ@@@@@@@@@@@@@@@@QQQAQQQ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B@@@@@@@@@@@@@B@@@@@@AAAAA@@@@@@@@@AAAAA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
niv(2)="@@@@@@@@JBBBBJ@@@@@@@@@@HHHHH@@JBBBBJ@@@IIIII@@KKKKK@@AAAAAA@@@FFFFF@@PMNOQ@@@@@@@@@@@PMNOP@@PMNOQ@@@@@@@@@@@PMNOP@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AAAAAAA@@@@@@@@@AAAAAAAFFFFFFA@@@@@@@@@AIIIIIIGGGGGGA@@@@C@@@@AJJJJJJHHHHHHA@@AAAAA@@AKKKKKKIIEIIIA@@@@@@@@@AFFFDFF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
niv(3)="@@@@@@@@@@@@@@@@@@@@@@@@BPPPB@@JJJJJ@@BMMMMMB@@POOOP@@IIIII@@MMQQQQM@@POOOP@@HHHHH@@MQQQQQM@@POOOP@@@@@@@@@MQQQQQM@@POOOP@@B@@@B@@MQQQQQM@@BPPPB@@@@@@@@@BMMMMMB@@@@@@@@@AANAA@@@@@@@@@@@@@@@@@@AMMMA@@@@@@@@@@AAAAAAAAALLLAAAAAAAAAAA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
niv(4)="NOPQLN@@@@@@@@@@@@@@@@@OPQLN@@@@@@@@@@@@@@@@@@PQLN@@@AMMMMMMMMMA@@@@@QLN@@@@AFFFFFFFFFA@@@@@LN@@@@@AHHHHHHHHHA@@@@LN@@@@@@AAAAAAAAAAA@@@LQ@@@@@@@DBBBBBC@@@@@@LQP@@@AAAAAAAAAAA@@@@@LQPO@@@AJJJJEJJJJA@@@@LQPON@@@AIIIIIIIIIA@@@@@LQPO@@@ALLLLLLLLLA@@@@@@LQP@@@@@@@@@@@@@@@@@@@@@LQ@@@@@@@@@@@@@@@@@@@@@@L@@@@@@@@@@@@@@@@@@@@@@@"
niv(5)="@@@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@NNN@@@@@@@@@@@A@@@@@@@MMMMM@@@@@@@A@@AB@@@@@LLLLLLL@@@@@BA@@A@@@@@KCKCKCKCK@@@@@A@@AB@@@JJJJJJJJJJJ@@@BA@@A@@@IIIIIIIIIIIII@@@A@@A@@HHHHHHHHHHKKHHH@@A@@A@GGGGGGGGGGGGGGGGG@A@@AFFFFFFFFFFFFFFFFFFFA@@AAAAAAAAAAAAAAAAAAAAA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
niv(6)="@C@@B@@B@@@E@@@B@@B@@C@@@@@@@@@@@@@@@@@@@@@@@@QQQQQQQQQQQAMMMMMMMMMMMFFFFFFFFFFFAKKKKKKKKKKKIIIIIIIIIIIAGGGGGGGGGGGGGGGGGGGGGGAHHHHHHHHHHHKKKKKKKKKKKAFFFFFFFFFFFHHHHHHHHHHHAIIIIIIIIIII@@@@@B@@@@@A@@@@@@B@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
niv(7)="@@@@@@@@@@@D@@@@@@@@@@@@@@@@@@@BBBBBBB@@@@@@@@@@@@@@@BGGGGGGGB@@@@@@@@@@@@@BGGGGGGGGGB@@@@@@@@@@@BGGKKGGGKKGGB@@@@@@@@@@BGGKKGGGKKGGB@@@@@@@@@@GGGGGGGGGGGGG@@@@@@@@@@GGGGGGGGGGGGG@@@@@@@@@@GGGHGGGGGGHGG@@@@@@@@@@@GGGHGGGGHGGG@@@@@@@@@@@GGGGHHHHGGG@@@@@@@@@@@@@GGGGGGGGG@@@@@@@@@@@@@@@GGGGGGG@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
niv(8)="@@@H@@@@@@@@@@@@@@@L@@@@@HIH@@@@@@@@@B@@@LNL@@@HIJIH@@@@K@@@A@@LNNNL@HIJCJIH@@KJK@@@@@@LNL@@@HIJIH@@KJHJK@@@@@@L@B@@@HIH@@KJHEHJK@@I@@@@A@@@@H@@@@KJHJK@@IFI@@@@@@@B@@P@@@KJK@@IFGFI@@@@@@A@PQP@@@K@@IFGDGFI@@@@@@PQQQP@@@B@@IFGFI@@@@@@@@PQP@@@@A@@@IFI@@@@@@@@@@P@@@@@@@@@@I@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
niv(9)="KKKKKAKKKKKKKKKKKAKKKKKKCJJJAJJJJJCJJJJJAJJJCKKJBIIAIIIIIDIIIIIAIIBJKKJIHHAHBHHHHHHHBHAHHIJKKJIHGAGGGGGGGGGGGAGHIJKKJIBGA@@AAAAAAA@@AGBIJKKJIHGA@@@@@@@@@@@AGHIJKKJIHG@@@@@@@@@@@@@GHIJKAAAA@@@@@@@@@@@@@@@AAAA@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
niv(10)="@@@@@@@@@@@@@KKK@@@@@@C@@@@C@@@@@@@KKFKK@@@G@@@@@@@@@FFF@@KFAFK@@GBG@@@G@@@FJFJF@KKFKK@@@G@@@GBG@@FFAFF@@KKK@@@@@@@@@G@@@FJFJF@@@@@@@KKK@@@@@@@@@FFF@@@@@@@KKFKK@@@FFF@@@@@@@@@G@@KFAFK@@FJFJF@@@@@@@GBG@KKFKK@@FFAFF@@@C@@@@G@@@KKK@@@FJFJF@@@@@@@@@@@@@@@@@@@FFF@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"

OpenWindow(0,0,0,ex* zoom,ey* zoom,"casse brique",#PB_Window_BorderLess|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0),0,0,ex,ey,1,0,0,#PB_Screen_SmartSynchronization)
LoadFont(1, "Arial", 13, #PB_Font_Bold)
LoadFont(2, "Arial", 20, #PB_Font_Bold)
LoadFont(3, "Arial", 45)
initniveau(1)
message(titre)
xrenderframe
tj1010
Posts: 201
Joined: Wed May 27, 2015 1:36 pm
Contact:

Re: small game (PB/SB compatible)

Post by tj1010 »

You also exposed a bug in SB forum theme. code bbcode markup and css doesn't scroll or wrap horizontally.

Complete game code with mechanics even if it's a simple 2D game are very valuable. For example it's not that hard to take your code and implement networking and make it marketable.

A lot of people, including myself, often overlook primitive or proven mechanics.
Post Reply