[Jeu] Dux !

Programmation avancée de jeux en PureBasic
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

[Jeu] Dux !

Message par djes »

Pour remonter un peu le moral des troupes, je mets en partage l'un des minigames de Purebreaker 3... Dux ! Ce n'est pas un chef d'oeuvre, juste un hommage à un autre jeu (celui qui trouve lequel aura toute ma considération!!!).

Il s'agit de flinguer les canards, et seulement les canards ! Au départ on a 10 points, et il faut arriver à 50, sans descendre en dessous de 0.

Voici le lien pour le zip : http://djes.free.fr/purebasic/minigames/ ou là : https://docs.google.com/open?id=0B5nDvK ... FlYWI3NmU5

Le source (je sais, c'est moche!). Le PBI est dans le zip ;)

Code : Tout sélectionner

;****************************************************************************************************** 
;* 
;* PUREBR3AKER (c)BGAMES 2005
;* Lead coder : djes@free.fr
;* Dux Minigame
;* 
;* http://www.shootingcrew.com/
;* http://djes.free.fr
;* 
;****************************************************************************************************** 

#CREATEPACKS = #False

XIncludeFile "packlib_release.pbi"

;****************************************************************************************************** 
;- *** CONSTANTS *** 
;****************************************************************************************************** 

;- Sprites
Enumeration #PB_Compiler_EnumerationValue Step 1
  #DUCK_GUN
  #DUCK_AMMO
  #DUCK_DUCK0
  #DUCK_DUCK1
  #DUCK_DUCK2
  #DUCK_CADDIE
  #DUCK_ESCARGOT
  #DUCK_POULE
  #DUCK_VEAU
  #DUCK_DUCK0F
  #DUCK_DUCK1F
  #DUCK_DUCK2F
  #DUCK_CADDIEF
  #DUCK_ESCARGOTF
  #DUCK_POULEF
  #DUCK_VEAUF
EndEnumeration

;- Sprites Fonts
Enumeration #PB_Compiler_EnumerationValue Step 256
  #SILVERFONT
EndEnumeration

;- Sounds
Enumeration 
  #M2EXPLOSION
  #EXTRALIFE
  #NEXTLEVELSND
  #CREDITS
  #CLOCK
  #TOC
EndEnumeration

;****************************************************************************************************** 
;- *** STRUCTURES *** 
;****************************************************************************************************** 

Structure Duck
  x.f
  y.l
  XSpeed.f
  SpriteNb.l
EndStructure

Structure DuckAmmo
  x.l
  y.l
EndStructure

Structure Anim
  X.f
  XSpeed.f
  Y.f
  YSpeed.f
  Zoom.f
  ZoomSpeed.f
  CurrentSpriteNb.f
  AnimSpeed.f
  FirstSprite.l
  LastSprite.l
  CurrentFade.f
  FadeSpeed.f
  CurrentTime.l
  Duration.l	;in frames
  PauseIn.l		;before Anim start
  PauseOut.l	;after Anim
EndStructure

;****************************************************************************************************** 
;- *** GLOBALS *** 
;****************************************************************************************************** 

Global Dim SilverFont.l(255)
Global NewList Anims.Anim()

Global ScreenWidth = 1024
Global ScreenHeight = 768
Global ScreenDepth = 32
Global RefreshRate = 60
Global IngameMusic = #True
Global InGameSound = #True

;****************************************************************************************************** 
;- *** PROCEDURES *** 
;****************************************************************************************************** 

Procedure.i RealRound(nb.f)
  !cvtss2si eax, [p.v_nb]
  ProcedureReturn
EndProcedure

;****************************************************************************************************** 
Procedure LoadMidi(Nb, file.s)
  i = mciSendString_("open " + file.s + " type sequencer alias mid" + Str(Nb), 0, 0, 0)
  ProcedureReturn i
EndProcedure
Procedure PlayMidi(Nb)
  i = mciSendString_("play mid" + Str(Nb), 0, 0, 0)
  ProcedureReturn i
EndProcedure
Procedure StopMidi(Nb)
  i = mciSendString_("stop mid" + Str(Nb), 0, 0, 0)
  ProcedureReturn i
EndProcedure
Procedure FreeMidi(Nb)
  i = mciSendString_("close mid" + Str(Nb), 0, 0, 0)
  ProcedureReturn i
EndProcedure
Procedure SetMidivolume(Nb, volume)
  i = mciSendString_("set volume" + Str(Nb) + " volume " + Str(volume), 0, 0, 0)
  ProcedureReturn i
EndProcedure

;****************************************************************************************************** 
; Draw an Animated screen centered Text
Procedure CenteredText(Text.s, PauseIn.l)
  
  xs = 0 + ScreenWidth / 2 - ((Len(Text) - 1) * 40) / 2
  ys = 0 + ScreenHeight / 2 - 19
  
  For u = 1 To Len(Text)
    
    AddElement(Anims())
    Anims()\x = xs
    Anims()\XSpeed = 0
    Anims()\y = ys
    Anims()\YSpeed = 2
    Anims()\CurrentSpriteNb = #SILVERFONT + Asc(Mid(Text, u, 1))
    Anims()\AnimSpeed = 0
    Anims()\CurrentTime = - PauseIn
    Anims()\Duration = 85 ;(255 / 3)
    Anims()\CurrentFade = 255
    Anims()\FadeSpeed = - 3
    Anims()\PauseIn = 1.5 * RefreshRate
    Anims()\PauseOut = 0
    Anims()\Zoom = 1
    Anims()\ZoomSpeed = 0
    
    AddElement(Anims())
    Anims()\x = xs
    Anims()\XSpeed = 0
    Anims()\y = ys
    Anims()\YSpeed = - 2
    Anims()\CurrentSpriteNb = #SILVERFONT + Asc(Mid(Text, u, 1))
    Anims()\AnimSpeed = 0
    Anims()\CurrentTime = - PauseIn
    Anims()\Duration = 85 ;(255 / 3)
    Anims()\CurrentFade = 255
    Anims()\FadeSpeed = - 3
    Anims()\PauseIn = 1.5 * RefreshRate
    Anims()\PauseOut = 0
    Anims()\Zoom = 1
    Anims()\ZoomSpeed = 0
    xs + 40
    
  Next u
  
EndProcedure

Procedure TextXY(Text.s, x.l, y.l)
  
  For u = 1 To Len(Text)
    s.l = #SILVERFONT + Asc(Mid(Text, u, 1))
    ZoomSprite3D(s, 64, 64)
    RotateSprite3D(s, 0, 0)
    DisplaySprite3D(s, x, y)
    x + 32
  Next u
  
EndProcedure

;****************************************************************************************************** 
;play specified sound specifying parameters
Procedure MyPlaySound(sound.l, pan.l = - 1, volume.l = - 1, frequency.l = - 1)
  If InGameSound
    If pan<> - 1
      SoundPan(sound, pan)
    EndIf
    If volume<> - 1
      SoundVolume(sound, volume)
    EndIf
    If frequency<> - 1
      SoundFrequency(sound, frequency)
    EndIf
    PlaySound(sound, #PB_Sound_MultiChannel)
  EndIf
EndProcedure

;****************************************************************************************************** 

Procedure GameLoading()
  
  PackName.s = "packs/Ducks.pak"
  PackCounter = 0
  
  Media$ = ""
  ; Media$ = ""
  PackLoadSprite3D(#DUCK_GUN, Media$ + "gfx/canon.png")
  PackLoadSprite3D(#DUCK_AMMO, Media$ + "gfx/balle.png")
  PackLoadSprite3D(#DUCK_DUCK0, Media$ + "gfx/canard0.png")
  PackLoadSprite3D(#DUCK_DUCK1, Media$ + "gfx/canard1.png")
  PackLoadSprite3D(#DUCK_DUCK2, Media$ + "gfx/canard2.png")
  PackLoadSprite3D(#DUCK_CADDIE, Media$ + "gfx/caddie.png")
  PackLoadSprite3D(#DUCK_ESCARGOT, Media$ + "gfx/escargot.png")
  PackLoadSprite3D(#DUCK_POULE, Media$ + "gfx/poule.png")
  PackLoadSprite3D(#DUCK_VEAU, Media$ + "gfx/veau.png")
  PackLoadSprite3D(#DUCK_DUCK0F, Media$ + "gfx/canard0_f.png")
  PackLoadSprite3D(#DUCK_DUCK1F, Media$ + "gfx/canard1_f.png")
  PackLoadSprite3D(#DUCK_DUCK2F, Media$ + "gfx/canard2_f.png")
  PackLoadSprite3D(#DUCK_CADDIEF, Media$ + "gfx/caddie_f.png")
  PackLoadSprite3D(#DUCK_ESCARGOTF, Media$ + "gfx/escargot_f.png")
  PackLoadSprite3D(#DUCK_POULEF, Media$ + "gfx/poule_f.png")
  PackLoadSprite3D(#DUCK_VEAUF, Media$ + "gfx/veau_f.png")
  
  n.l = 1
  For u = Asc("A") To Asc("Z")
    SilverFont(u) = n
    n + 1
  Next u
  SilverFont(Asc("!")) = n : n + 1
  SilverFont(Asc("'")) = n : n + 1
  SilverFont(Asc("(")) = n : n + 1
  SilverFont(Asc(")")) = n : n + 1
  SilverFont(Asc(" - ")) = n : n + 1
  SilverFont(Asc(".")) = n : n + 1
  SilverFont(Asc("?")) = n : n + 1
  SilverFont(Asc(":")) = n : n + 1
  SilverFont(Asc("0")) = n : n + 1
  SilverFont(Asc("1")) = n : n + 1
  SilverFont(Asc("2")) = n : n + 1
  SilverFont(Asc("3")) = n : n + 1
  SilverFont(Asc("4")) = n : n + 1
  SilverFont(Asc("5")) = n : n + 1
  SilverFont(Asc("6")) = n : n + 1
  SilverFont(Asc("7")) = n : n + 1
  SilverFont(Asc("8")) = n : n + 1
  SilverFont(Asc("9")) = n : n + 1
  SilverFont(Asc(", ")) = n : n + 1
  SilverFont(Asc(" ")) = n : n + 1
  
  For u = 0 To 255
    If SilverFont(u)<>0
      PackLoadSprite3D(#SILVERFONT + u, "gfx/fonts/silver/silver-" + StrU(SilverFont(u), #PB_Byte) + ".png")
    EndIf
  Next u
  
  ClosePack()
  
  PackName = "packs/sounds.pak"
  PackCounter = 0 
  
  PackLoadSound(#M2EXPLOSION, "sfx/m2fire.wav")
  PackLoadSound(#EXTRALIFE, "sfx/HAPPYBEL.WAV")
  PackLoadSound(#NEXTLEVELSND, "sfx/SOUND827.WAV")
  PackLoadSound(#CLOCK, "sfx/inter.WAV")
  PackLoadSound(#TOC, "sfx/bounce1.wav")
  ClosePack()
  
EndProcedure

;****************************************************************************************************** 

Procedure FullScreenCheck()
  If IngameMusic
    StopMidi(1) 
  EndIf
  
  ReleaseMouse(1)
  CloseScreen()
  
  OpenWindow(0, 0, 0, 256, 256, "Dux", #PB_Window_Minimize)
  
  Repeat
    Event = WaitWindowEvent()
  Until Event = #PB_Event_ActivateWindow
  
  CloseWindow(0)
  OpenScreen(ScreenWidth, ScreenHeight, ScreenDepth, "Ducks")
  ReleaseMouse(0)
  
  GameLoading()
  
  If IngameMusic
    playMidi(1) 
  EndIf
EndProcedure

;****************************************************************************************************** 
;- INIT
;****************************************************************************************************** 

  UsePNGImageDecoder()
  UseTIFFImageDecoder()
  UseJPEGImageDecoder()
  UseOGGSoundDecoder()
  
  If (InitSprite() And InitSprite3D() And InitKeyboard() And InitMouse() And InitSound()) = #False
    End
  EndIf
  
  ScreenWidth = 1024
  ScreenHeight = 768
  ScreenDepth = 32
  RefreshRate = 60
  IngameMusic = #True
  Quit = #False
  
  OpenScreen(ScreenWidth, ScreenHeight, ScreenDepth, "Dux", #PB_Screen_WaitSynchronization, RefreshRate)
  
  Sprite3DQuality(1)

;****************************************************************************************************** 
;- *** MAIN *** 
;****************************************************************************************************** 

START_DUX:

  Global NewList Ducks.Duck()
  Global NewList DucksAmmos.DuckAmmo()
  Global DuckScore = 10
  SpeedUp.f = 0
  
  GameLoading()
  
  If IngameMusic
    LoadMidi(1, "sfx\ballgame.mid")
    SetMidivolume(1, 150)
    PlayMidi(1) ; le joue
  EndIf
  
  ClearList(Anims())
  
  CenteredText("DUX !", 2 * RefreshRate)
  
  DuckWin = #False
  
  Repeat	
    
    If Not IsScreenActive()
      FullScreenCheck()   
    Else
      Gosub INPUTS    
      Gosub DUX_LOGIC
    EndIf
    
    Gosub DRAWING
    
    FlipBuffers() ;vbl synchro ON : better
    FrameCounter + 1
    
  Until Quit = #True Or ((DuckScore >= 50 Or DuckScore <= 0) And ListSize(Anims()) = 0)  
    
  If IngameMusic
    StopMidi(1)
    FreeMidi(1)
  EndIf
  
  ClearList(Anims())

End

;****************************************************************************************************** 
;- *** SUBROUTINES *** 
;****************************************************************************************************** 

;-DRAWING
DRAWING:

  ClearScreen($550000)
  StartDrawing(ScreenOutput())
  For u = 0 To 512 Step 32
    LineXY(u,  64, 1023 - u,  64, (Int(150.1 + u/10 * Sin( FrameCounter / 20 )) & $FF ) *   $100 )
    LineXY(u, 160, 1023 - u, 160, (Int(150.1 + u/10 * Sin( FrameCounter / 25 )) & $FF ) * $10000 )
    LineXY(u, 256, 1023 - u, 256, (Int(150.1 + u/10 * Sin( FrameCounter / 15 )) & $FF ))  
  Next u
  StopDrawing()
  
  If Start3D()
    
    Gosub ANIMATIONS_DISPLAY
    
    ForEach Ducks()
      RotateSprite3D(Ducks()\SpriteNb, 10 * Sin(Ducks()\x / 8), 0)
      DisplaySprite3D(Ducks()\SpriteNb, Ducks()\x - SpriteWidth(#DUCK_DUCK0) / 2, Ducks()\y - SpriteHeight(#DUCK_DUCK0) / 2)
    Next
    Sprite3DQuality(0)
    ForEach DucksAmmos()
      DisplaySprite3D(#DUCK_AMMO, DucksAmmos()\x - SpriteWidth(#DUCK_AMMO) / 2, DucksAmmos()\y - SpriteHeight(#DUCK_AMMO) / 2)
    Next
    DisplaySprite3D(#DUCK_GUN, XMouse - SpriteWidth(#DUCK_GUN) / 2, YMouse)
    Sprite3DQuality(1)
    
    If DuckScore >= 0
      TextXY(Str(DuckScore), 900 - Len(Str(DuckScore)) * 32 / 2, 768 - 100)
    EndIf
    
    Stop3D()
    
  EndIf

Return

;****************************************************************************************************** 
;-DUX LOGIC
DUX_LOGIC:

  ForEach Ducks()
    Select Ducks()\y
      Case 32
        Ducks()\x = Ducks()\x + Ducks()\XSpeed + SpeedUp
        If Ducks()\x >= ScreenWidth + SpriteWidth(#DUCK_DUCK0) / 2
          Ducks()\y = 128
          Ducks()\XSpeed + 1
          If Ducks()\SpriteNb = #DUCK_DUCK0F
            Ducks()\SpriteNb = #DUCK_DUCK1
          Else
            Ducks()\SpriteNb - 7	;flip vertically
          EndIf
        EndIf
      Case 128
        Ducks()\x = Ducks()\x - Ducks()\XSpeed - SpeedUp
        If Ducks()\x <= - SpriteWidth(Ducks()\SpriteNb) / 2
          Ducks()\y = 224
          Ducks()\XSpeed + 1
          If Ducks()\SpriteNb = #DUCK_DUCK1
            Ducks()\SpriteNb = #DUCK_DUCK2F
          Else
            Ducks()\SpriteNb + 7	;flip vertically
          EndIf
        EndIf
      Case 224
        Ducks()\x = Ducks()\x + Ducks()\XSpeed + SpeedUp
        If Ducks()\x >= ScreenWidth + SpriteWidth(#DUCK_DUCK0) / 2
          If Ducks()\SpriteNb = #DUCK_DUCK2F
            If DuckScore > 0
              DuckScore - 3
              MyPlaySound(#CLOCK, - 1, - 1, 500 )
              If DuckScore <= 0
                CenteredText("GAME OVER !", 2 * RefreshRate)
                ClearList(DucksAmmos())
              EndIf
              
              ;Beep_(500, 1)
            EndIf  
          EndIf  
          DeleteElement(Ducks(), 1)
        EndIf
    EndSelect
  Next
  
  ;new Duck
  If FrameCounter%RefreshRate = 0
    AddElement(Ducks())
    Ducks()\x = - SpriteWidth(#DUCK_DUCK0F)
    Ducks()\y = 32
    Ducks()\XSpeed = 1
    If Random(10)<5
      Ducks()\SpriteNb = #DUCK_DUCK0F
    Else
      Ducks()\SpriteNb = #DUCK_CADDIEF + Random(3)
    EndIf
  EndIf
  
  ;every 30 secs, SpeedUp
  If FrameCounter%(RefreshRate * 30) = 0
    SpeedUp + 0.1
  EndIf
  
  If DuckScore > 0 And DuckScore < 50
    ;draw ammos, and compute collisions
    ForEach DucksAmmos()
      DucksAmmos()\y - 10
      If DucksAmmos()\y <= - 10
        DeleteElement(DucksAmmos())
      Else
        ForEach Ducks()
          If DucksAmmos()\x >= Ducks()\x - 16 And 	DucksAmmos()\x <= Ducks()\x + 16 And DucksAmmos()\y >= Ducks()\y - 16 And DucksAmmos()\y <= Ducks()\y + 16
            Select Ducks()\SpriteNb
              Case #DUCK_DUCK0, #DUCK_DUCK0F
                DuckScore + 1
                ;Beep_(5000, 10)
                MyPlaySound(#TOC, - 1, - 1, 5000 )
              Case #DUCK_DUCK1, #DUCK_DUCK1F
                DuckScore + 2
                ;Beep_(5000, 10)
                MyPlaySound(#TOC, - 1, - 1, 5000 )
              Case #DUCK_DUCK2, #DUCK_DUCK2F
                DuckScore + 3
                ;Beep_(5000, 10)
                MyPlaySound(#TOC, - 1, - 1, 5000 )
              Case #DUCK_CADDIE, #DUCK_CADDIEF
                DuckScore - 4
                ;Beep_(50, 30)
                MyPlaySound(#TOC, - 1, - 1, 50 )
              Case #DUCK_POULE, #DUCK_POULEF
                DuckScore - 2
                ;Beep_(60, 30)
                MyPlaySound(#TOC, - 1, - 1, 60 )
              Case #DUCK_VEAU, #DUCK_VEAUF
                DuckScore - 3
                ;Beep_(80, 30)
                MyPlaySound(#TOC, - 1, - 1, 80 )
              Case #DUCK_ESCARGOT, #DUCK_ESCARGOTF
                DuckScore - 1
                ;Beep_(100, 30)
                MyPlaySound(#TOC, - 1, - 1, 100 )
            EndSelect					
            DeleteElement(Ducks(), 1)
            DeleteElement(DucksAmmos(), 1)
            Break 2
          EndIf
        Next
      EndIf
    Next
    
    If DuckScore <= 0
      CenteredText("GAME OVER !", 2 * RefreshRate)
      ClearList(DucksAmmos())
    EndIf
   
    If DuckScore >= 50
      MyPlaySound(#EXTRALIFE, 0, 100, 20000)
      CenteredText("WELL DONE !", 2 * RefreshRate)
    EndIf
    
  EndIf

Return

;****************************************************************************************************** 
;-INPUTS

INPUTS:

  ExamineKeyboard()
  ExamineMouse()
  
  If JoystickSwitch
    joyGetPosEx_(#JOYSTICKID1, joyInfoEx.JOYINFOEX)
  EndIf
  
  If KeyboardReleased(#PB_Key_J)
    JoystickSwitch = ~JoystickSwitch
  EndIf
  
  If KeyboardReleased(#PB_Key_Escape)
    Quit = #True
  EndIf
  
  If KeyboardReleased(#PB_Key_S)
    u = GrabSprite(#PB_Any, 0, 0, 1024, 768)
    SaveSprite(u, "c:\screenshot.bmp")
  EndIf
  
  ;gun, and fire
  If KeyboardPushed(#PB_Key_Left) 
    KeyXSpeed - 1
  ElseIf KeyboardPushed(#PB_Key_Right) 
    KeyXSpeed + 1
  Else
    KeyXSpeed / 2
  EndIf
  
  ;Joystick or mouse control
  If JoystickSwitch
    If JoyXamp<>0
      u = RealRound((joyInfoEx\dwXpos - (JoyXamp / 2)) / 2048) ;this little operation to optimise precision
      XMouse + ((u * 2048) * 64) / JoyXamp
    EndIf
  Else
    XMouse = XMouse + MouseDeltaX() + KeyXSpeed
    ;XMouse.l = MouseX()
  EndIf
  
  If XMouse<0 : XMouse = 0 : EndIf
  If XMouse>1023 : XMouse = 1023 : EndIf 
  
  YMouse = 768 - SpriteHeight(#DUCK_GUN)
  
  If mb = #True And (MouseButton(1) = 0 Or ((joyInfoEx\dwButtons&1 = 0) And JoystickSwitch))
    ;évite la répétition
    mb = #False
  EndIf
  
  If DuckFireDelay>0
    DuckFireDelay - 1
  EndIf
  
  If (MouseButton(1) Or KeyboardPushed(#PB_Key_Return) Or ((joyInfoEx\dwButtons&1) And JoystickSwitch)) And mb = #False And DuckFireDelay = 0 And DuckScore > 0
    AddElement(DucksAmmos())
    MyPlaySound(#M2EXPLOSION)
    ;Beep_(1000, 2)
    DucksAmmos()\x = XMouse
    DucksAmmos()\y = YMouse + 10
    mb = #True
    DuckFireDelay = RefreshRate / 8
  EndIf

Return

;****************************************************************************************************** 
;- ANIMATIONS_DISPLAY
; Multi purposes (why not for explosions? maybe later ;)

ANIMATIONS_DISPLAY:

  Sprite3DQuality(1)
  
  With Anims()
    ; If FirstElement(Anims())<>0
    ; ResetList(Anims())
    ForEach Anims()
      If \CurrentTime<\Duration
        
        ;hint to start displaying after a while : make CurrentTime negative
        If \CurrentTime<0
          
          \CurrentTime + 1
          
        Else
          
          u = \CurrentSpriteNb
          sw.f = \Zoom * SpriteWidth(u)
          sh.f = \Zoom * SpriteHeight(u)
          ZoomSprite3D(u, sw, sh)
          DisplaySprite3D(u, \x - sw / 2, \y - sh / 2, \CurrentFade)
          ;DisplaySprite3D(u, \x - SpriteWidth(u) / 2, \y - SpriteHeight(u) / 2, \CurrentFade)
          
          ;pause before Anim?
          If \PauseIn = 0
            
            ;Anim
            \CurrentSpriteNb + \AnimSpeed
            If \LastSprite<>\FirstSprite
              ;if sprite is Animated, and for a certain amount of frames, test boundaries
              If \CurrentSpriteNb>\LastSprite
                \CurrentSpriteNb = \FirstSprite
              EndIf
            EndIf
            \CurrentFade + \FadeSpeed
            \CurrentTime + 1
            \x + \XSpeed
            \y + \YSpeed
            \Zoom + \ZoomSpeed
          Else
            \PauseIn - 1
          EndIf
          
        EndIf
        
      Else
        If \PauseOut<>0
          ;pause after Anim?
          u = \CurrentSpriteNb
          sw.f = \Zoom * SpriteWidth(u)
          sh.f = \Zoom * SpriteHeight(u)
          ZoomSprite3D(u, sw, sh)
          DisplaySprite3D(u, \x - sw / 2, \y - sh / 2, \CurrentFade)
          ;DisplaySprite3D(u, \x - SpriteWidth(u) / 2, \y - SpriteHeight(u) / 2, \CurrentFade)
          \PauseOut - 1
        Else
          ;no, delete
          DeleteElement(Anims())
        EndIf
      EndIf
      ; EndIf
    Next
  EndWith

Return


Dernière modification par djes le sam. 05/janv./2013 11:10, modifié 3 fois.
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: Dux !

Message par Cool Dji »

Héhé,

Tribute to "Space Invaders" ?

Merci pour le partage :D
Only PureBasic makes it possible
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Dux !

Message par G-Rom »

j'ai plus les sources djes , y avait pas un tetris aussi ? :wink:
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Dux !

Message par djes »

Cool dji> Raté, essaye encore ;)

G-Rom> Héhé, tu veux que je te remette les sources quelque part ? Ton tétris méritait d'être gardé :)
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Dux !

Message par G-Rom »

Oui , mais mon DD m'a lâché le mois dernier, j'ai tout perdu , du moins les codes PB & co :cry:
si tu veut les mettre à dispositions , je n'y vois pas de problèmes ;)
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Dux !

Message par djes »

Merde, c'est l'horreur ça ! Je te remettrai ça en ligne dès que possible (là je ne suis pas sur mon poste)
Torp
Messages : 360
Inscription : lun. 22/nov./2004 13:05

Re: Dux !

Message par Torp »

Merci pour le partage, toujours instructif !
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Dux !

Message par Ar-S »

Merci djes,
Très sympa de ta part. :D
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Atlante
Messages : 337
Inscription : mer. 29/juin/2011 18:35
Localisation : Paris

Re: Dux !

Message par Atlante »

Merci, fonctionne pas chez il semblerait que cela soit lié à mes deux écrans...
Il se lance sur l'écran 1 qui devient noir, j'entends un debut de musique et mon deuxième écran clignote dans tous les sens et op ça ferme.
cdt
Modérateur
Config : Intel I5 4670K, Nvidia Geforce GTX 1060, 16go RAM, SSD 256go, DD 2000go
Avatar de l’utilisateur
Huitbit
Messages : 939
Inscription : jeu. 08/déc./2005 5:19
Localisation : Guadeloupe

Re: Dux !

Message par Huitbit »

Coin, coin :P (Merci !)

Ca marche nickel sur mon pc en carton !
Atlante a écrit :il semblerait que cela soit lié à mes deux écrans
La soluce du jour(qui protège l'environnement) :mrgreen:
"Avec une pince, couper délicatement l'alimentation du deuxième écran"

:wink:
Elevé au MSX !
kelebrindae
Messages : 579
Inscription : ven. 11/mai/2007 15:21

Re: Dux !

Message par kelebrindae »

Ce ne serait pas "Carnival", par hasard ?
Les idées sont le souvenir de choses qui ne se sont pas encore produites.
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: Dux !

Message par Cool Dji »

@Kelebrindae => Carnival ?, je donne ma langue au chat :D

@G-Rom => la merde !!!!!
Je dois avoir des codes à toi sur mon DD à la maison, ils doivent être aussi sur le forum mais si tu veux je fais une compil dans un zip. Je ne pense pas que ça soit tes codes les plus précieux mais bon...
Only PureBasic makes it possible
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Dux !

Message par djes »

Atlante> Engueule Fred pour moi au boulot ;)

kelebrindae> Essaye encore :)
Avatar de l’utilisateur
Cool Dji
Messages : 1126
Inscription : ven. 05/sept./2008 11:42
Localisation : Besançon
Contact :

Re: Dux !

Message par Cool Dji »

Hiii !
Bandit sur C64 ?
Only PureBasic makes it possible
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Dux !

Message par djes »

Nan!
Répondre