Re: Birthday PurePunch
Publié : dim. 27/sept./2015 17:37
Merci cela me touche beaucoup j'ai dessiné moi-meme les 2 chiffres et bougies avec Inkscape .
Ici, TazNormand a écrit : Purebasic version 5.22 minimum
Bon courage aux participants... Les règles changent en cours de route...Là-bas, TazNormand a écrit : 5.22 is mistyped, right version is 5.24 => corrected in first message
30\09/15: Correctif. Déjà merci pour la conversation explicative menée par mail. Je n'efface pas (à moins que tu le souhaites) car, c'est aussi en registrant mes erreurs que j'évite de les reproduire. Je te prie donc d'accepter mes excuses.Olliv a écrit : Bonjour à toi, cette coïncidence me fait penser à l'histoire de l'ours qui avait besoin d'un lapin angora pour... Etc... Si tu veux la suite, c'est par mail!! Après 10 mois de silence par ce biais, ça dépoussièrera... En attendant, préviens!
J'espère franchement que tu prends cher pour les cours de yoga! Tu m'as même pas laissé le temps de courir, opportuniste!
Quelle équipe de bourrins, ce n'est pas possible...
Cool, comme G-ROM j'avais perdu pas mal de temps (surement moins que lui mais bon) à gérer les clipsprites de mon stylesheet, du coup avoir qques fichiers OGG séparés me feront gagner pas mal de temps (tout en respectant les 1mo en cumulant la taille des samples).TazNormand a écrit : @Tous : Je rappelle que le but est de fêter l'anniversaire de PureBasic, pas de remporter la ligue des champions, donc pas la peine de vous emporter si on arrondit un peu les angles.
TazNormand a écrit : @Tous : Je rappelle que le but est de fêter l'anniversaire de PureBasic, pas de remporter la ligue des champions, donc pas la peine de vous emporter si on arrondit un peu les angles.
Pour Fred aussi si tu veux (on l'avait fait pour les 10 ans !), mais j'ai dit pour les gagnants !TazNormand a écrit : Par contre bonne idée la carte postale à envoyer à Fred.
Code : Tout sélectionner
;*****************************************************************************
;*
;* Birthday Punch : PureBasic 15 years of happiness
;* PureBasic 5.31 x86
;* 192 lines of 80 chars of code or data as you want
;*
;* Name : PB vs THE WORLD
;* Author : Ar-S - Music made with Music Maker Jam - thanks to Microdevweb for shoot linkedlist() helping
;* Date : Nov/Oct 2015
;* Notes : Dedicated To my mom Apr 1940 - Sept 2015
;*
MessageRequester("Info","Use Arrows to move, space to shoot and left ctrl to use shield"+Chr(10)+"Left Mouse Button to restart"+Chr(10)+Chr(10)+"Fleches pour se diriger, ctrl : bouclier, Espace:Feu, Bouton de gauche souris pour recommencer",#PB_MessageRequester_Ok) ; LIGNE NON PRIS EN COMPTE
UseOGGSoundDecoder():Macro m:Macro:EndMacro:m dec:decoder():EndMacro
m e:examine:EndMacro:m s(n,l,h,x,y):EndMacro:m _s:Structure:EndMacro
InitSprite():InitKeyboard():InitMouse():UseOGGSound#dec:UsePNGImage#dec
InitSound()
_S BB:x.i:y.i:ID.b:End#_S:_S SP:x.i:y.i:n.i:LL.i:HH.i:v.b:r.f:End#_S
_S St:x.i:y.i:v.b:n.b:End#_S:_S SN:D.i:F.i:End#_S:M R:random:EndMacro:M P(S)
PlaySound(S,#PB_Sound_MultiChannel,70):EndMacro:M PP(S):PlaySound(S,1,80)
EndMacro:m _k(k):KeyboardPushed(k):EndMacro
M CS(n,x,y,l,h):ClipSprite(n,x,y,l,h):sp(n)\LL=l/2
sp(n)\HH=h/2:ZoomSprite(n,l/2,h/2):v(n):EndMacro:m v(n):sp(n)\v = R(6,2)
EndMacro:m SX(n):sp(n)\x:EndMacro:m SY(n):sp(n)\y:EndMacro:M Redo(n)
SX(n)=820:SY(n)=R(500,100):v(n):EndMacro:m EX(n):St(n)\x:EndMacro
m EY(n):St(n)\y:EndMacro:m EN(Z):St(Z)\n:EndMacro:m EV(n):St(n)\v
EndMacro:m _r(n,d):SpriteQuality(1):RotateSprite(n,d,#PB_Absolute):EndMacro
Global NewList BB.BB():Global F=LoadFont(16, "Arial", R(80,50))
Global F1=LoadFont(17, "Arial", 24):Global.b feu,NF,ENNEMI,VIZ,ShotOn.b=#True
Global.i x,y,xi,T:Global SCORE,LIFE:Global Dim sp.SP(16):Global Dim st.st(100)
Global TimeElapset=ElapsedMilliseconds()
LoadSound(20,"01.ogg"):LoadSound(21,"02.ogg"):LoadSound(22,"03.ogg")
LoadSound(23,"04.ogg"):SCORE=0:LIFe=3:x=150:y=350:NF=9:xi=2500
t1$="PURE BASIC VS THE WORLD !":t2$="HAPPY PURE BIRTHDAY"
For i=0 To 100:EX(i)=R(820):EY(i)=R(600):Next:For i=0 To 20:EN(i)=13:EV(i)=3
Next:For i=21 To 60:EN(i)=14:EV(i)=6:Next:For i=61 To 100:EN(i)=15:EV(i)=10
Next:OpenScreen(800,600,32,"PB VS The WORLD", #PB_Screen_SmartSynchronization)
LoadSprite(0,"im.png",8|4):For i=1 To 15:CopySprite(0,i,8|4):Next
CS(1,7,142,232,133):CS(2,289,135,234,139):CS(3,0,1,129,128):CS(4,129,1,128,128)
CS(5,257,0,118,130):CS(6,379,0,101,131):CS(7,478,1,115,130):CS(8,595,8,250,126)
CS(9,533,213,53,62):ClipSprite(10,675,138,140,136):CS(11,606,231,25,43)
CS(12,631,231,25,43):CS(13,840,266,8,8):CS(14,833,270,6,5):CS(15,824,271,3,3)
FreeSprite(0)
txt.s=t1$:xtx=r(500,100):ColT=RGB(R(255),R(255),R(255)):sx(10)=1500
sy(10)=r(460,140):PS=1:Repeat:StartTime.i=ElapsedMilliseconds():ClearScreen(0)
E#Mouse():E#Keyboard():If ElapsedMilliseconds()-TimeElapset>=350:ShotOn=#True
TimeElapset=ElapsedMilliseconds():EndIf:If GO=0:If PS=1:PP(23):ps+1:EndIf
For i=0 To 100:DisplayTransparentSprite(R(15,13), EX(i), EY(i),255):EX(i)-EV(i)
If EX(i)<0:EX(i)=805:ey(i)=R(600):EndIf:Next
DisplayTransparentSprite(10,SX(10),SY(10),255):StartDrawing(ScreenOutput())
DrawingFont(f):DrawingMode(#PB_2DDrawing_Transparent):If xi< -2500:NT+1:If NT<2
txt.s=t1$:ElseIf NT=2:txt.s=t2$:Else:NT=0:EndIf:xi=2500:xtx=r(500,100)
ColT=RGB(R(255),R(255),R(255)):EndIf:DrawText(xi,xtx,txt.s,ColT,$0)
StopDrawing():Xi-6:sx(2)=sx(1):sy(2)=sy(1):For S=3 To 8
DisplayTransparentSprite(S, SX(S), SY(S),255):Next:If _K(#PB_Key_Up):y-5:ViZ=1
If _K(#PB_Key_Left):x-5:ViZ=0:ElseIf _K(#PB_Key_Right):X+5:ViZ=1:EndIf
ElseIf _K(#PB_Key_Down):y+5:ViZ=1:If _K(#PB_Key_Left):x-5:ViZ=0
ElseIf _K(#PB_Key_Right):X+5:ViZ=1:EndIf:ElseIf _K(#PB_Key_Left):x-5:VIZ=0
ElseIf _K(#PB_Key_Right):SX(1)=x:x+5:ViZ=1:EndIf:If y<25:y=25:ElseIf y>530
y=530:EndIf:If x<0:x=0:ElseIf x>700:x=700:EndIf:SX(1)=x:Sy(1)=y:Sx(11)=x-10
Sy(11)=y+23:Sx(12)=Sx(11):Sy(12)=Sy(11):If _k(#PB_Key_Space) And ShotOn
AddElement(BB()):BB()\X=SX(1)+120:BB()\Y=SY(1)+15:BB()\ID=9:ShotOn=#False:P(20)
EndIf:If _K(#PB_Key_LeftControl):shield=1:P(22):Else:shield=0:EndIf
If shield=0:ship=1:Else:ship=2:EndIf:DisplayTransparentSprite(ship,x,y,255)
RE=R(12,11):DisplayTransparentSprite(RE,sx(RE),Sy(RE),200):ForEach BB()
BB()\X + 6:DisplayTransparentSprite(BB()\ID, BB()\X, BB()\Y,255):Next
For ENNEMI=3 To 8:ForEach BB()
If SpriteCollision(9,BB()\X,BB()\Y,ENNEMI,sx(ENNEMI),sy(ENNEMI))<>0
T=ENNEMI:SCORE+1:redo(ENNEMI):If ListSize(BB())>0:DeleteElement (BB()):EndIf
P(21):EndIf:Next:Next:If ListSize(BB())>0 And BB()\X>810:DeleteElement (BB())
EndIf:For i=3 To 8:SX(i)-sp(i)\v:SpriteQuality(1)
RotateSprite(i, ROT.f,#PB_Absolute):ROT.f-0.5:If SX(i)< -100:redo(i):EndIf
Next:For COL=3 To 8:If SpriteCollision(1,sx(1),sy(1),COL,sx(col),sy(col))<>0
If shield=1:score-1:If Score<=0:Score=0:EndIf:ElseIf shield=0:life-1:If Life<=0
GO=1:EndIf:EndIf:P(21):redo(col):EndIf:Next:StartDrawing(ScreenOutput())
DrawText(0,0,"SCORE : "+Str(SCORE),$0000FF,$0)
DrawText(150,0,"LIFE : "+Str(LIFE),$0000FF,$0)
DrawText(650, 0, "ESCAPE to EXIT",$ffffff, $0):StopDrawing():SX(10)-1
If sx(10) < -160:sx(10)=1500:sy(10)=r(460,140):EndIf:ElseIf GO=1:StopSound(23)
PS=0:StartDrawing(ScreenOutput()):DrawingFont(f):TG$="GAME OVER"
DrawText( R(400,398)-TextWidth(TG$)/2,R(280,278),tg$,$FFFFFF,$0)
DrawingFont(f1)
DrawText(R(250,248),R(510,508),"Press LMB to restart",$FFFFFF,$0)
DrawText(R(290,288),R(120,118),"SCORE : "+Str(score),$FFFFFF,$0):StopDrawing()
If MouseButton(#PB_MouseButton_Left):score=0:Life=3:x=5:sx(1)=x:PS=1:GO=0
EndIf:EndIf:FlipBuffers():deltatime=(ElapsedMilliseconds()-StartTime)/1000
Until KeyboardPushed(#PB_Key_Escape)