Page 7 sur 13

Re: Compétition PurePunch Noël 2014

Publié : lun. 15/déc./2014 21:41
par falsam
Une production de plus sur le forum Anglais. J'ai mis ce message à jour avec les différentes productions
:arrow: http://www.purebasic.fr/french/viewtopi ... 03#p169503

Re: Compétition PurePunch Noël 2014

Publié : lun. 15/déc./2014 22:14
par djes
Bien pratique ce récapitulatif, merci falsam !

Re: Compétition PurePunch Noël 2014

Publié : lun. 15/déc./2014 22:59
par Ar-S
De retour en isère jusqu'au 23 je vais pouvoir contribuer à ce petit punch :mrgreen:
Sait on jamais :mrgreen:

Re: Compétition PurePunch Noël 2014

Publié : lun. 15/déc./2014 23:25
par falsam
En attendant de voir ce que va publier Ar-S, je vous propose ma contribution réservé au PC qui ont du coffre.

3D Snowman Riding on ice : Il fait froid, il neige. Un bonhomme de neige surfe sur la glace.

Image

Vous pouvez utiliser les touche Left, Right & Up sans oublier la touche Esc pour quitter l'application.

Si ça fonctionne sous Windows 7, c'est par contre plus difficile sous Windows 8 avec le sous-system OpenGl.

Code : Tout sélectionner

;*****************************************************************************
;*
;* XMas 2014 PurePunch contest
;* PureBasic 5.xx or SpiderBasic 1.00 Beta
;* 64 lines of 80 chars of code + 128 lines of data
;*
;* Name     : Snowman Riding on ice 
;* Author   : falsam
;* Date     : December 2014
;* Notes    : Windows 7 Only Pure Basic 5.30 ++ - Keyboar : Left/Right/Up & Esc
;*            Windows 8 With OpenGL system or Directx 9  
;******************************************************************************
Macro Pr:EndMacro:Macro M:Macro:EndMacro:M E:End:End#M;;;;;;;;;;;;;;;;;;;;;;;;;
M I:If:E#M:M EI:EndIf:E#M:M RP:Repeat:E#M:M CE:CreateEntity:E#M:M EL:Else:E#M;;
M SOD:StopDrawing:E#M:M SAD:StartDrawing:E#M:M CN:CreateNode:E#M:M FR:For:E#M;;
M MT:MaterialID:E#M:M CMT:CreateMaterial:E#M:M CT:CreateTexture:E#M;;;;;;;;;;;;
M TI:TextureID:E#M:M TXO:TextureOutput:E#M:M MI:MeshID:E#M:M BX:Box:E#M;;;;;;;;
M RE:RotateEntity:E#M:M EID:EntityID:E#M:M CS:CreateSphere:E#M:M RA:RGBA:E#M;;;
M AN:AttachNodeObject:E#M:M ELI:ElseIf:E#M:M K:KeyboardPushed:E#M:M L:L:E#M;;;;
M EPB:EntityPhysicBody:E#M:M RD:Random:E#M:M CC:CreateCylinder:E#M:s=50000;;;;;
M NX:Next:E#M:M RN:RotateNode:E#M:M SE:ScaleEntity:E#M:M SPL:AddSplinePoint:E#M
M CR:Create:E#M:M EN:Entity:E#M:M PT:Particle:E#M:M ML:Material:E#M;;;;;;;;;;;;
M CL:Color:E#M:M CM:Camera:E#M:M WW:Window:E#M:M CI:Circle:E#M:M IN:Init:E#M;;;
Global sp,ti.f,x0.f,y0.f,z0.f,sv.f,tslf.f:Dim spa(100,100):IN#Engine3D();;;;;;;
IN#Keyboard():IN#Sprite():IN#Mouse():IN#Movie():I CR#File(1,"1"):M ST:Step:E#M;
WriteData(1,?ms,?me-?ms):CloseFile(1):EI:LoadMovie(0, "1"):Open#WW(0,0,0,0,;;;;
0,"",16777216):W=WW#Width(0,1):H=WW#Height(0,1):Open#WW#edScreen(WW#ID(0),0,0,;
W,H):Ambient#CL($7F7F7F):CR#Light(-1,$97FB97,-20,20,30):WorldShadows(2);;;;;;;;
CR#CM(0,0,0,100,100):CM#Back#CL(0,$C9B691):Move#CM(0,s,s,s,0):CM#LookAt(0,0,0,;
0):CT(0,32,32):SAD(TXO(0)):BX(0,0,32,32,$000000):SOD():CMT(0,TI(0)):CT(1,32,32)
SAD(TXO(1)):BX(0,0,32,32,$0000FF):SOD():CMT(1,TI(1)):CT(2,32,32):SAD(TXO(2));;;
BX(0,0,32,32,$FAE6E6):SOD():CMT(2,TI(2)):CT(3,128,128):SAD(TXO(3)):BX(0,0,128,;
128,$87B8DE):FR x=0 To 128 ST 4:LineXY(x,0,x,128,$0):NX:SOD():CMT(3,TI(3));;;;;
CT(4,128,128):SAD(TXO(4)):BX(0,0,128,128,$32CD9A):FR x=1 To 1024:CI(RD(128,0),;
RD(128,0),1,$87B8DE):CI(RD(128,0),RD(128,0),1,$FFFFFF):NX:SOD():CMT(4,TI(4));;;
CE(0,MI(CC(-1,50,0.1)),MT(2)):EPB(0,1):FR r=0 To 359 ST 15:x=50*Cos(r*#PI/180);
z=50*Sin(r*#PI/180):w=RD(12,6):h=RD(5,2):x=CE(-1,MI(CS(-1,1)),MT(2),x,h/4,z);;;
SE(x,w,h,w):EPB(x,1):RE(x,0,90+r,0):NX:CN(0,0,0,0):CN(1,0,1.7,0):AN(0,;;;;;;;;; 
NodeID(1)):CN(2,0,1,0):AN(1,NodeID(2)):CE(1,MI(CS(-1,1.0)),0,0,0.8,0):AN(0,;;;;
EID(1)):CE(2,MI(CS(-1,0.8)),0,0,0,0):AN(1,EID(2)):Fog($FFFFFF,1,40,90);;;;;;;;;
CE(3,MI(CS(-1,0.7)),0,0,0,0):AN(2,EID(3)):CE(4,MI(CS(-1,0.1)),MT(0),-0.3,0.3,;;
0.5):AN(2,EID(4)):CE(5,MI(CS(-1,0.1)),MT(0),0.3,0.3,0.5):AN(2,EID(5)):CE(6,;;;;
MI(CC(-1,0.05,0.4)),MT(1),0,0.2,0.8):AN(2,EID(6)):RE(6,90,0,0):CE(7,MI(CC(-1,;;
0.1,2)),0,-1,0.5,0):AN(1,EID(7)):RE(7, 0, 0, 60):CE(8,MI(CC(-1,0.1,2)),0,1,0.5,
0):AN(1,EID(8)):RE(8,0,0,-60):CE(9,MI(CS(-1,0.2)),MT(0),0,1,0.9):AN(0,EID(9));;
CE(10,MI(CS(-1,0.15)),MT(0),0,0,0.75):AN(1,EID(10)):CE(11,MI(CS(-1,0.15)),;;;;;
MT(0),0,0.4,0.65):AN(1,EID(11)):RN(0, 0,0,-10):RN(2,0,-55,0):PL=CE(-1,MI(CC(-1,
0.5,5)),0,0,5,0):Hide#EN(PL,1):EPB(PL,2,1,1,0.5):UsePNGImageEncoder();;;;;;;;;;
CR#Image(0,32,32,32,-1):SAD(ImageOutput(0)):DrawingMode(8):BX(0,0,32,32,RA(0,0,
0,0)):DrawingMode(16):CI(16,16,5,RA(255,255,255,80)):CI(16,16,2,RA(255,255,255,
255)):SOD():SaveImage(0,"2",4673104):Add3DArchive(GetCurrentDirectory(),0);;;;;
CMT(0,TI(LoadTexture(-1,"2"))):ML#BlendingMode(0,3):Set#ML#CL(0,3,$FFFFFF);;;;;
CR#PT#Emitter(0,100,100,1,1,0,5,0):PT#ML(0,MT(0)):PT#Size(0,0.5,0.5);;;;;;;;;;;
PT#EmissionRate(0,500):PT#EmitterDirection(0,0.00,-0.01,0.00):PT#TimeToLive(0,;
5.0,10.0):CR#PT#Emitter(20,100,100,0.1,1,0,0,0):PT#ML(20,MT(0)):PT#Size(20,1.5,
0.50):PT#EmissionRate(20,3000):PT#Velocity(20,0.0,0.0):PT#CL#Range(20,RA(221,;;
160,221,255),RA(255,182,193,255)):PT#EmitterDirection(20, 0, 0.00002, 0);;;;;;;
PT#TimeToLive(20,0,5):sp=CR#Spline(-1):SPL(sp,0,0,0):SPL(sp,0,0,12):SPL(sp,-10,
0,30):SPL(sp,-24,0,7):SPL(sp,-12,0,10):SPL(sp,0,0,0):sv=2.00:RP:RP; Event ;;;;;  
Ev=WW#Event():I MovieStatus(0)=0:I mp=0:PlayMovie(0,WW#ID(0)):mp=1:EI:EL;;;;;;;
I MovieStatus(0)>0:mp=0:EI:EI:Select Ev:Case 13116:E:EndSelect:Until Ev=0;;;;;;
ExamineKeyboard():I K(1):Break:EI:ComputeSpline(sp,ti):x0=SplineX(sp);;;;;;;;;;
y0=SplineY(sp):z0=SplineZ(sp):NodeLookAt(0,x0,y0,z0,1,0,0):MoveNode(0,x0,y0,z0,
0):ti+sv*tslf/30:I ti>1:ti=0:EI:I K(200):ps=-2:ELI K(208):ps=0:EL:ps=0:EI;;;;;;
I K(203):RE(PL,0,2.5,0,1):ELI K(205):RE(PL,0,-2.5,0,1):EI:I a<35:s=RD(1,0);;;;;
I s=0:s=-1:EL:s=1:EI:x=RD(30,5):z=RD(30,5):I spa(x,z)=0:FR r=1 To 4:ie=CE(-1,;;
MI(CS(-1, 0.55-r/10)),MT(3),x*s,r/4,z*s):NX:a+1:r=RD(90,0):ie=CE(-1,MI(CS(-1,;;
1.00, 4, 5)),MT(4),x*s,1.5,z*s):SE(ie,1.5,0.5,1.5):RE(ie,0,r,0):EPB(ie,1);;;;;;
ie=CE(-1,MI(CS(-1,1.00,4,5)),MT(4),x*s,2.2,z*s):SE(ie,1.2,0.8,1.2):RE(ie,0,r,0)
ie=CE(-1,MI(CS(-1,1.00,4,5)),MT(4),x*s,3.3,z*s):SE(ie,0.7,1.4,0.7):RE(ie,0,r,0)
spa(x,z)=1:EI:s=1:r=0:s0=1:EI:I r<512:RN(2,0,0.2*s,0,1):r+1:EI:I r=512:s*-1:r=0
EI:I r0<100:RN(0,0,0,0.2*s0,1):RN(1,0.2*s0,0,0,1):r0+1:EI:I r0=100:s0*-1:r0=0;;
EI:I ps<> 0 Or CM#Y(0)>3.52:Move#EN(PL,0,0,ps,2):EI:CM#Follow(0,EID(PL),180,;;;
EN#Y(PL),-1,0.1,0.1):tslf=RenderWorld(80)/1000:FlipBuffers():ForEver;;;;;;;;;;;
DeleteFile("1",2):DeleteFile("2",2);;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DataSection:ms:;###############################################################
Data.q $060000006468544D,$544D600005000100,$FF00350000006B72,$474E4D5957410703,
$6D65540D04FF0052,$53656D69542F6F70,$00000259FF006769,$0020A1070351FF00,;;;;;01
$00081802030458FF,$006B72544D002FFF,$450A03FF005D0300,$206F6E616950202E,;;;;;02
$6C6F520C04FF0031,$352D435320646E61,$4A90408104C00035,$815F4A00004A605F,;;;;;03
$48305F4800004A10,$000047605F470000,$4500004710815F47,$605F43000045305F,;;;;;04
$0043605F43000043,$40000042605F4200,$815F3E000040605F,$3E605F3E00003E40,;;;;;05
$003E10815F3E0000,$3E000040305F4000,$605F3E00003E605F,$0045605F4500003E,;;;;;06
$40000042605F4200,$605F3E000040605F,$0043605F4300003E,$00004740815F4700,;;;;;07
$5F4A00004A605F4A,$305F4800004A1081,$0047605F47000048,$00004710815F4700,;;;;;08
$5F43000045305F45,$43605F4300004360,$000042605F420000,$5F3E000040605F40,;;;;;09
$605F3E00003E4081,$4810815F4800003E,$000047305F470000,$5F47000045605F45,;;;;;10
$45605F4500004760,$000043605F430000,$5F40000045605F45,$42605F4200004060,;;;;;11
$004340815F430000,$4A00004A605F4A00,$5F4800004A10815F,$47605F4700004830,;;;;;12
$004710815F470000,$43000045305F4500,$605F43000043605F,$0042605F42000043,;;;;;13
$3E000040605F4000,$5F3E00003E40815F,$10815F3E00003E60,$0040305F4000003E,;;;;;14
$3E00003E605F3E00,$605F4500003E605F,$0042605F42000045,$3E000040605F4000,;;;;;15
$605F4300003E605F,$4740815F47000043,$00004A605F4A0000,$4800004A10815F4A,;;;;;16
$605F47000048305F,$4710815F47000047,$000045305F450000,$5F43000043605F43,;;;;;17
$42605F4200004360,$000040605F400000,$3E00003E40815F3E,$815F4800003E605F,;;;;;18
$47305F4700004810,$000045605F450000,$5F45000047605F47,$43605F4300004560,;;;;;19
$000045605F450000,$5F42000040605F40,$40815F4300004260,$004A605F4A000043,;;;;;20
$00004A10815F4A00,$5F47000048305F48,$10815F4700004760,$0045305F45000047,;;;;;21
$43000043605F4300,$605F42000043605F,$0040605F40000042,$00003E40815F3E00,;;;;;22
$5F3E00003E605F3E,$305F4000003E1081,$003E605F3E000040,$4500003E605F3E00,;;;;;23
$605F42000045605F,$0040605F40000042,$4300003E605F3E00,$815F47000043605F,;;;;;24
$4A605F4A00004740,$004A10815F4A0000,$47000048305F4800,$815F47000047605F,;;;;;25
$45305F4500004710,$000043605F430000,$5F42000043605F43,$40605F4000004260,;;;;;26
$003E40815F3E0000,$4800003E605F3E00,$5F4700004810815F,$45605F4500004730,;;;;;27
$000047605F470000,$5F43000045605F45,$45605F4500004360,$000040605F400000,;;;;;28
$5F43000042605F42,$002FFF0000434081,$910200006B72544D,$50202E450A03FF00,;;;;;29
$FF0031206F6E6169,$646E616C6F520C04,$C10035352D435320,$47605F4791408104,;;;;;30
$004710815F470000,$43000045305F4500,$815F3E000043605F,$3C305F3C00003E10,;;;;;31
$00003B605F3B0000,$5F3E000040605F40,$3C605F3C00003E60,$003B40815F3B0000,;;;;;32
$3C00003B605F3B00,$5F3C00003C20825F,$605F3C00003C2082,$3B40815F3B00003C,;;;;;33
$003E40815F3E0000,$47000047605F4700,$5F4500004710815F,$43605F4300004530,;;;;;34
$003E10815F3E0000,$3B00003C305F3C00,$605F4000003B605F,$003E605F3E000040,;;;;;35
$3B00003C605F3C00,$5F4260003B40815F,$825F3E0000422082,$20825F3C00003E20,;;;;;36
$3B40815F3B00003C,$000047605F470000,$4500004710815F47,$605F43000045305F,;;;;;37
$3E10815F3E000043,$00003C305F3C0000,$5F4000003B605F3B,$3E605F3E00004060,;;;;;38
$00003C605F3C0000,$3B00003B40815F3B,$825F3C00003B605F,$20825F3C00003C20,;;;;;39
$003C605F3C00003C,$00003B40815F3B00,$4700003E40815F3E,$815F47000047605F,;;;;;40
$45305F4500004710,$000043605F430000,$3C00003E10815F3E,$605F3B00003C305F,;;;;;41
$0040605F4000003B,$3C00003E605F3E00,$815F3B00003C605F,$20825F4260003B40,;;;;;42
$3E20825F3E000042,$003C20825F3C0000,$00003B40815F3B00,$5F47000047605F47,;;;;;43
$305F450000471081,$0043605F43000045,$00003E10815F3E00,$5F3B00003C305F3C,;;;;;44
$40605F4000003B60,$00003E605F3E0000,$5F3B00003C605F3C,$605F3B00003B4081,;;;;;45
$3C20825F3C00003B,$003C20825F3C0000,$3B00003C605F3C00,$5F3E00003B40815F,;;;;;46
$605F4700003E4081,$4710815F47000047,$000045305F450000,$5F3E000043605F43,;;;;;47
$305F3C00003E1081,$003B605F3B00003C,$3E000040605F4000,$605F3C00003E605F,;;;;;48
$3B40815F3B00003C,$004220825F426000,$00003E20825F3E00,$3B00003C20825F3C,;;;;;49
$2FFF00003B40815F,$0200006B72544D00,$202E450A03FF0073,$0031206F6E616950,;;;;;50
$6E616C6F520C04FF,$0035352D43532064,$305F2B92208204C2,$0032305F3200002B,;;;;;51
$00003740815F3700,$5F3200002B305F2B,$40815F3700003230,$3720825F37000037,;;;;;52
$00002B305F2B0000,$5F37000032305F32,$825F360000374081,$20825F3600003620,;;;;;53
$3220825F32000036,$00002B305F2B0000,$5F37000032305F32,$305F2B0000374081,;;;;;54
$0032305F3200002B,$00003740815F3700,$5F3200002B305F2B,$40815F3700003230,;;;;;55
$3720825F37000037,$00002B305F2B0000,$5F37000032305F32,$825F390000374081,;;;;;56
$20825F3700003920,$3920825F39000037,$003240815F320000,$3200002B305F2B60,;;;;;57
$815F37000032305F,$2B305F2B00003740,$000032305F320000,$3700003740815F37,;;;;;58
$5F2B00003720825F,$32305F3200002B30,$003740815F370000,$00003620825F3600,;;;;;59
$3200003620825F36,$5F2B00003220825F,$32305F3200002B30,$003740815F370000,;;;;;60
$3200002B305F2B00,$815F37000032305F,$2B305F2B00003740,$000032305F320000,;;;;;61
$3700003740815F37,$5F2B00003720825F,$32305F3200002B30,$003740815F370000,;;;;;62
$00003920825F3900,$3900003720825F37,$5F3200003920825F,$305F2B6000324081,;;;;;63
$0032305F3200002B,$00003740815F3700,$5F3200002B305F2B,$40815F3700003230,;;;;;64
$3720825F37000037,$00002B305F2B0000,$5F37000032305F32,$825F360000374081,;;;;;65
$20825F3600003620,$3220825F32000036,$00002B305F2B0000,$5F37000032305F32,;;;;;66
$305F2B0000374081,$0032305F3200002B,$00003740815F3700,$5F3200002B305F2B,;;;;;67
$40815F3700003230,$3720825F37000037,$00002B305F2B0000,$5F37000032305F32,;;;;;68
$825F390000374081,$20825F3700003920,$3920825F39000037,$003240815F320000,;;;;;69
$6B72544D002FFF00,$0A03FF0089010000,$6F6E616950202E45,$6F520C04FF003120,;;;;;70
$2D435320646E616C,$93208204C3003535,$2B00002B20825F2B,$5F3000002B20825F,;;;;;71
$825F2B0000302082,$20825F2D00002B20,$3220825F3200002D,$002B20825F2B0000,;;;;;72
$00002B20825F2B00,$2B00002B20825F2B,$5F3000002B20825F,$825F2B0000302082,;;;;;73
$20825F3200002B20,$3220825F32000032,$003040815F300000,$2B000032605F3200,;;;;;74
$5F2B60002B40815F,$825F2B00002B2082,$20825F3000002B20,$2B20825F2B000030,;;;;;75
$002D20825F2D0000,$00003220825F3200,$2B00002B20825F2B,$5F2B00002B20825F,;;;;;76
$825F2B00002B2082,$20825F3000002B20,$2B20825F2B000030,$003220825F320000,;;;;;77
$00003220825F3200,$3200003040815F30,$815F2B000032605F,$20825F2B60002B40,;;;;;78
$2B20825F2B00002B,$003020825F300000,$00002B20825F2B00,$3200002D20825F2D,;;;;;79
$5F2B00003220825F,$825F2B00002B2082,$20825F2B00002B20,$2B20825F2B00002B,;;;;;80
$003020825F300000,$00002B20825F2B00,$3200003220825F32,$5F3000003220825F,;;;;;81
$605F320000304081,$2B40815F2B000032:Data.b $00,$00,$FF,$2F,$00;;;;;;;;;;;;;;;82  
me: :EndDataSection;;;;;;;;;;;;;;;;;; FALSAM (2014) ;;;;;;;;;;;;;;;;;;;;;;;;;83
Exécutable : SnowMan.Zip

Re: Compétition PurePunch Noël 2014

Publié : lun. 15/déc./2014 23:44
par graph100
avec window 8 ça fonctionne super !

Et c'est vraiment très beau tout ca !
Franchement Bravo ! En si peu de ligne, faire un truc en 3D aussi joli à l’œil, ça montre bien que PB en a dans les librairies :lol:

Par contre, tu peux peut être régler la caméra pour regarder tout le temps le bonhomme de neige, (comme si on dansait avec lui sur la glace ?!)

Re: Compétition PurePunch Noël 2014

Publié : lun. 15/déc./2014 23:47
par falsam
Merci graph100 et je suis content que ça tourne finalement bien avec Windows 8. Tu as peut être installé DirectX 9 End User ?

Re: Compétition PurePunch Noël 2014

Publié : lun. 15/déc./2014 23:49
par venom
Ouah !!! sympa ce dernier code Bravo.
Fonctionne très bien chez moi sans sous-systeme. :wink:
Effectivement en ci peu de ligne, PureBasic m’étonnera toujours. 8)





@++

Re: Compétition PurePunch Noël 2014

Publié : lun. 15/déc./2014 23:56
par falsam
je pense qu'on peut faire des choses vraiment bien avec Ogre. j'ai encore des soucis avec l'océan et je ne sais toujours pas quelle échelle de grandeur il faut utiliser avec Ogre.

Je n'ai pas le code en clair car je l'ai travaillé le code uniquement avec les macro special Crunch pour optimiser le code source.

Si le système de particules par exemple vous intéresse, je peux le publier en clair.

Re: Compétition PurePunch Noël 2014

Publié : mar. 16/déc./2014 0:05
par Ar-S
Ouaaa punaise mais tu viens juste de me blaser ! C'est magnifique.
no problemo sous W8.1 meme avec le debugger.

P.S : +1 pour le voir en claire. (mais tu peux attendre la fin du punch)

--edit---

Vous pouvez me filer le code pour carréifier le code avec les ;;; en fin de ligne? Merci.

Re: Compétition PurePunch Noël 2014

Publié : mar. 16/déc./2014 0:12
par falsam
Merci Ars-S.
Ar-S a écrit :Ouaaa punaise mais tu viens juste de me blaser !
Désolé :) héhé.

PS : Compilation sans sous system OpenGl ? Avec DirectX 9 end user installé ?

Re: Compétition PurePunch Noël 2014

Publié : mar. 16/déc./2014 0:19
par falsam
Ar-S a écrit :Vous pouvez me filer le code pour carréifier le code avec les ;;; en fin de ligne? Merci.
C'est le Pure Crunch de majikeyric

:arrow: http://www.purebasic.fr/french/viewtopi ... 44#p164844

Je ne l'ai pas utilisé car il ne gère pas la datasection. J'ai arrangé mon code au fur et à mesure de mon codage.

Re: Compétition PurePunch Noël 2014

Publié : mar. 16/déc./2014 1:00
par majikeyric
Très joli falsam ! :)

pour mon cruncher ne gérant pas les labels, tu peux mettre les datas dans un fichier à part et mettre un includefile() à la fin du source à puncher.
Moi, j'ai fait comme ça.

Re: Compétition PurePunch Noël 2014

Publié : mar. 16/déc./2014 1:24
par microdevweb
Oui Cool Dji,

Une petite vingtaine de lignes je penses. Je ferais peut'être quelques ajout (si on peut)

Re: Compétition PurePunch Noël 2014

Publié : mar. 16/déc./2014 1:25
par Ar-S
Voilà ma petite contrib.
Christmas Desktop ScreenSaver
J'ai crunché à la main :)
28 lignes de code et 89 lignes de datasections

Pour un rendu plus sympa je vous conseils de le compiler et de le lancer de votre bureau.

Image

Code : Tout sélectionner

;*****************************************************************************
;*
;* XMas 2014 PurePunch contest
;* PureBasic 5.31 x86 - Tested on Window 8.1 x64
;* 64 lines of 80 chars of code + 128 lines of data
;*
;* Name 	: 	Christmas Desktop ScreenSaver 
;* Author	:	Ar-S
;* Date		:	Dec 2014
;* Notes		:	Move mouse to make santa comes - Escape to Exit - Merry Christmas Dudes ;)
;*
;*****************************************************************************
UsePNGImageDecoder():Macro M:Macro:EndMacro:M Gr:Grab:EndMacro
M G:Global:EndMacro:M En:Enumeration:EndMacro
M Pr:Procedure:EndMacro:M O:Output:EndMacro
M Im:Image:EndMacro:G CSW,CSH,CB,NF=24,NG=6
G W=GetSystemMetrics_(#SM_CXSCREEN),H=GetSystemMetrics_(#SM_CYSCREEN)
Structure An:X.i:Y.i:V.i:EndStructure:G Dim Floc.An(NF):G Dim PN.An(0)
G Dim KD.An(NKD):Pr CSP(Left.l, Top.l, Width.l, Height.l):dm.DEVMODE:IH.l
srcDC=CreateDC_("DISPLAY","","",dm):trgDC=CreateCompatibleDC_(srcDC)
IH=CreateCompatibleBitmap_(srcDC,Width,Height):SelectObject_( trgDC, IH)
BitBlt_( trgDC,0,0,Width,Height,srcDC,Left,Top,#SRCCOPY):DeleteDC_( trgDC)
ReleaseDC_( IH, srcDC):CSH=Height:CSW=Width:CB=IH:Pr#Return IH:EndProcedure
Pr CFS():Pr#Return CSP(0,0,W,H):EndProcedure:Pr MemCapture()
Protected Id:If CB:Id=CreateImage(#PB_Any, CSW, CSH):StartDrawing(Image#O(id))
DrawImage(CB,0,0):StopDrawing():EndIf:Pr#Return CB:EndProcedure
En images:#IF:#PL:#PR:#FL:EndEnumeration:CFS():Ifull=Catch#Im(#IF, ?IM)
NL=Gr#Im(#IF,#PL,0,0,30,40):NR=Gr#Im(#IF,#PR,30,0,30,40):FL=Gr#Im(#IF,#FL,60,0,
38,40):Free#Im(#IF):SP=NR:NPR=0:hwnd=OpenWindow(0,0,0,W,H,"",2147483648)
StickyWindow(0,#True):CanvasGadget(1,0,0,W,H,2|4):For Vi=0 To NF
FLoc(Vi)\X=Random(W-50,50):FLoc(Vi)\V=Random(10,2):Next:Repeat
WaitWindowEvent(30):Select EventGadget():Case 1:SetGadgetAttribute(1,7,11)
Select EventType():Case #PB_EventType_MouseMove:GO=1
Mx=GetGadgetAttribute(1,2):My=GetGadgetAttribute(1,3):If PN(0)\X>Mx:SP=NL
PN(0)\X=Mx+20:PN(0)\Y=My-30:Else:SP=NR:PN(0)\X=Mx-40:PN(0)\Y=My-30:EndIf
EndSelect:EndSelect:If StartDrawing(Canvas#O(1)):Draw#Im(CB,0,0):For F=0 To NF
FLoc(F)\Y+FLoc(F)\V:If Floc(F)\Y>H+50:Floc(F)\Y=-50:EndIf:DrawAlpha#Im(FL,
Floc(F)\X, Floc(F)\Y):Next:If GO=1:DrawAlpha#Im(SP,PN(0)\X, PN(0)\Y):EndIf
StopDrawing():EndIf:If GetAsyncKeyState_(#VK_ESCAPE):Q=1:EndIf:Until Q=1
Free#Im(#PB_All):End
; Made by Ar-S during the night 15/16 dec 2014

DataSection: IM:
Data.q $0A1A0A0D474E5089,$524448490D000000,$2800000062000000,$2F66050000000608,
$5845741900000004,$72617774666F5374,$2065626F64410065,$6165526567616D49,
$00003C65C9717964,$DA7854414449950A,$9E15C554740D5BEC,$5A88FCB504409BB7,
$03F82DAD8D80A295,$6228516229442C15,$B50221116D2BFD6D,$B52A23C5AA1B4355,
$4B5480434A3C1680,$4873F2A25B4552A1,$0AD0953F20AA052D,$12862405128AC158,
$4DFBBBDEDD90810C,$9B37676F7BECEEF6,$DBEEC9EE73DC96D8,$77EEFDCEE6F37999,
$1B2957F9F938BCEF,$F59B59384AF79929,$E4EBBC3AD56C1F73,$72EABBC7DDB050FA,
$BED27B502FB83B4F,$9A9A9CB2AA879543,$F4754103BB7D4E60,$BAB3C2FF6B347380,
$31E8F7B9B14B29D5,$5329CCE6B19B1D03,$364AC1C995928DFF,$F14BFE82ADC5E1AE,
$FAAB15AA5276D4D2,$D95D25B692AF937F,$7C9823391DE0866C,$5B4EEEDAE76015C3,
$216BEEA677BDB04F,$4F690CFD249F49AD,$E8D360301D8DC3D2,$333B2B7F3DB3B39A,
$1CC554DB5F9DAE2B,$DC813639952BDE4F,$9A3BD25769317A42,$113C75EC8EE423DC,
$A105796A396537A6,$BDD5C7BDA0C22D11,$D0CF48D79FB0A27B,$C08D87DD8E135DF7,
$CFF7451731E41AF7,$36C3792C784247B4,$4D7F490FFBE285A4,$05B89BF24FA7D07A,
$4830DC1F5C12136B,$5A939E7DA1387D41,$B630760440337520,$11A6FBAF7B743CCD,
$BE3E748E7E9007AC,$F48B7CDA352D230F,$55749BBA491E7C05,$FB49739004E9A1C6,
$3C14748C714A772A,$DFC75F36976AE581,$1369751E90EFD21C,$94D0A4F9FA4DED24,
$03D86B76E16827AA,$CF9DB1E1F61513B0,$8116253AE6D3F1AA,$D56E1F989A29B754,
$10F1178C45E8A6FD,$619ED0CEF9E8B98B,$CFBE905749ED550F,$6DF84FF490BA458E,
$7D20FF0788E3E91D,$A5861F80FBE96C00,$B47D18B49DDB6889,$749F3846023A415C,
$617823DD9B3FE928,$27749CA5866DA29B,$3FA21832E05885E9,$9B6849E935748869,
$30748CBA0F7A6807,$01A06157D254F2D6,$F6AEC017BC2BEE30,$6B98D6B0729EBE92,
$71109E4CBE0D19EB,$9655D6FE4417F68C,$F6A7775D3D8EECAB,$4B0CF06FF6636E42,
$9337B178434DF3D1,$05ADA2C40DAE225E,$26691CE75F05DD3D,$1602749FBBB41769,
$9016F7AE35693B7F,$1AF8D5631B262CC5,$B44D17B09AD962A2,$15DD74D651156F0E,
$1A29BADC5F7F2223,$9D7D0784F2F47ADD,$2FCB5FDD7B7584DA,$6CFC3E629A9349CE,
$20CF4ACC979B5F67,$23DFA40DB5C50416,$0582FE31E64588DD,$FB423E7D1C7DE0E6,
$FD16AC30C1F6042A,$622BCBAFA5252F00,$C7FD911D39F90715,$16D1E1EFA1C0B4FD,
$E6C233A9ECEDB87D,$AD9BC9D19F3133FD,$CD206ED715F7C2C6,$A749D3FAEC2BAE05,
$F48FBD274CB0AE22,$86177B7807DF7C43,$BE9DCC6016FC6BD2,$D68C4C3201A71C06,
$5F45A51C10AE92D0,$711DAAE123A54C25,$C850FFC4886135DF,$0E92B60311432E6F,
$0FB617978119BD21,$78E1E228DE5102E9,$E809BDC367DC09AF,$F59EC422C7F28C1A,
$4A074CD7D37AE282,$004914DF469FDDDE,$48CBCB39E03F7F3F,$3CE182BF84F002D6,
$3039F4877968430A,$C42CEE779D714AA6,$FD20769267922609,$10186FD220C23089,
$4AA99C2A6CE84B18,$424B8B98A6EB3363,$03F858E3F5760B77,$15C69A4B504799A0,
$FA407DA490DBD214,$E43AD17831CA7845,$03BE05052E91E707,$C6160CECC601D530,
$54937094F053C679,$176882116547FF5F,$2838659CF000DA04,$954D823FD7D058EA,
$FE93276301EA9E03,$44BEA1D458C7F901,$3F491DA40AE637FA,$A06D7D293A792F0B,
$347A7E3147A7739D,$CDB1D099DF14D7F0,$4C7B7F65BF0959D8,$B75158E8AC686C5C,
$0AEADFCD7DEF9E78,$1A5B42FC8AC68D2F,$40968AD66ED8187C,$12BCFD05BB08C33B,
$76E2436FBE2B7DBB,$6BA82556319E3B3D,$BB0F0E38273F456A,$06D4D9E8A5816E25,
$47BC8B4CB4702406,$45F767273A4AB14D,$E24B06B48927140D,$9A80FDB09230FCC0,
$B706BEE32159F1D3,$E63134011CA30F98,$3961F446D71008FF,$E089C67003D7500D,
$C271CE44AB7D2464,$9C163B7426B89AD6,$1588353A60C7E417,$2FE33BC41053250C,
$7C855D39809F0AE7,$FDAAF005AF80B7E2,$7341331988CEA480,$0A5032083DD4908B,
$F8463FCD60277CAA,$5A7617DA8D868D41,$B62515935A9B5D05,$FD10DFA36C7A9398,
$B32147D71A97D8B0,$9E1F3A4D8B9A7766,$8FE1644AE6BC04F2,$70C20692C0F20001,
$6D00FEC3611A508B,$E20978A0A39708D9,$C2F50449EB0C084A,$0CE0907D07583113,
$736D16D70B0F3DFC,$8BBE69BCEF8439F0,$775042B5AE2E5C8D,$84EF7F2630EBD3B0,
$AB8E6BE0070C877B,$91A88B229FB74221,$4FCCEBAFB5D757E0,$2EBC4F13E7BBA1B9,
$4F6A84A8F34E1096,$CC3DE923BA5B6B88,$FBF984BACEFD9D60,$E44C056F43BCD064,
$87DBBCB2088BFAE2,$C692E630479E4601,$B100B7E821B1806B,$F75B54427CC60263,
$E4BC0F7A45DEB282,$9BD845C8A46718E7,$2ECC47BB3456384A,$530953E21BC70B2E,
$232357D0BCF2E0B5,$487B5F2432F49BBE,$C8B5A0A685B28927,$7F781FD1AE425E03,
$87D05B570CAD2A17,$71A83C625C80518D,$95CAA3B9472CDA01,$152EAC69A79A6935,
$B45E4462B29F1338,$147468AAB6A74BB5,$B3AFAF0BF183B392,$4ADCF1D713E8FEEC,
$C369424C69AC891E,$5E179E31821EB682,$E0775DA287CC49A1,$C550AFD11BD0D33F,
$7B161DFC7760E2DE,$BE11D750650C61A4,$94A900FC19090E25,$CC30234B6029ABA0,
$D7B7456D5801B2B0,$2981487DAA41A5FD,$E408AEFC332DFCE6,$08FA49BE59C702E7,
$8A52302FA4333802,$B8085F436233F4A2,$22A7E0B190F2F8E2,$2710DBDD6C8DEC01,
$0AA858CFEE7170B0,$4B21B68A01BA3094,$CBF634103C408C5E,$1D4A35487916B3E8,
$1DA5B10D7F61917B,$3173181DD3A3E2C6,$9777C9D09AE03060,$6C4ABF79762083CC,
$F0E97338E455684E,$5EB6D5DEAD82E20B,$8EC9643FECC9A1A1,$9AE2BC9108A23DC8,
$51BFED51FF81F2F0,$B8A801C072295A4F,$BF12FEEE82574356,$72E6C041CA68007F,
$23DAC032D15076F7,$158C60AFDA430430,$6B52D42E0A3BCEC8,$7F3D60FEE5F3C882,
$89BEA29462A6FC57,$504F22E5DE9E59AC,$F3566667C1EF6F28,$8AAEF800A1E43B90,
$56BBB741826C579E,$0D7E837B0479F433,$758D9EBB3E8CF4C5,$9D919E875D633C30,
$3BD64EC36E686FB7,$64BE3C80C9899F52,$D9FD99BFD6B067B3,$FA7CC8ADF978CE33,
$DDBBEB09E9EE5C7E,$24E7F479E209EF14,$615378EC542B11E7,$9C6B87BD5980BAE1,
$133FA12A31854C0F,$5AEE618B603DBDC1,$D7590E6D075FF3B1,$59125E2664C4FC9A,
$EBD7DCD9AAF4FA8C,$C0E5C869FEF6DC9C,$21847594904B2976,$DC01BFF0BC118802,
$3152FA88EA8A0BDC,$F51BD81244431DCA,$335594C11EBEA5AA,$5D982FD1A75F548D,
$E25B8DC36FDA3B3C,$12BDDBBD7AEF27E8,$173CAFD5D346D93A,$B305EECE31BDDE2D,
$8F9B3E423C204DB8,$008B27D7C4AB1447,$6672010F94C85941,$81C07E466CB14982,
$FBB81218E5181CFB,$23DBC529469EF18C,$797EA2E1B9BB2B2E,$9352149E4CA11F40,
$314EFE473E1A04A7,$21280BD657389708,$C9AD45E303CBD927,$79CC748F24E7AFEC,
$21E6CF92739A39C8,$F0437969D29D8A8E,$67077846D1406CFF,$42803043DBF1D3DD,
$F1CB68DBF8038FB1,$A47204A1E5EC9E43,$6DB2500F4BBABE85,$EFC7BF5501C3B608,
$A061A71DFA31007D,$DEB8C02B3F00DDA5,$BF0FD6B01B3C5947,$397F8A96779246CF,
$F38C96477A11E621,$26DD185EAE967EAF,$DB710861B67AB765,$3A4B9B26DB2236ED,
$9BAC088397324AF3,$3A1DCA3E7290C651,$0F9EFC4DB84F6443,$2EA047AE2187CA8F,
$97A661941975A545,$853308F16EE33F8A,$DADF975A9AC3D151,$66D2EF6DA03B4921,
$423E0712A8FCF8B9,$F946C576DEAA038E,$2924D6BA9C0EB836,$FA650DACC7DD5FAB,
$6ABC6DC9EE6C551F,$301E0DBC693E724D,$4349406DC29F2728,$D2DA618908B84F21,
$C835FDE4C5C911E2,$F33C11AC6ACCB59A,$9E5DF7103C27FB88,$2D4D728B281DE80F,
$0B33CD2016254693,$9A51DF89CE33579E,$357406264E6DE480,$B85C35BDD290F984,
$579C97BBF12A69B5,$530C770A28E9CE33,$6B25622D10CC9B87,$890018047FD83933,
$00CFC42F1512069D,$AE444E4549000000 : Data.b $42,$60,$82 : EndDataSection


Re: Compétition PurePunch Noël 2014

Publié : mar. 16/déc./2014 1:34
par microdevweb
Super travaille falsam, bug à la ligne 60 avec le débogeur mais sans sa roule (sans musique)

Un grand bravo