0 Members and 1 Guest are viewing this topic.
;*****************************************************************************;* _____ ______ __;* /\ _ `\ /'___\_ \ /\ \____;* \ \ \L\ \ __\ \__//\ \ __ __\_\ ,_\_\ ___ ___ ________ _;* \ \ , /_/'__`\ ,__\ \ \ /'__`\'___\ \/\ \/ __`\' _ `\/',_____ _;* _\_\ \__ \ __/\ \_/\_\ \_ __/ \__/\ \_\ \ \L\ \ \/\ \__, `\ ;* _ ___/\_____\ \_\____\\_\ /\____\____\____\\__\\_\____/\_\ \_\____/\;* " __ __/_____/\/_/____//_/ \/____/____/____//__//_/___/\/_/\/_/___/\;* ;* C A T E G O R Y : P u r e P u n c h C o d i n g C o n t e s t 3;*;* v e r s i o n 1.0 [ 31 - aug - 2009 ];*;* ---------------------------------------------------------------------------;*;* PurePunch Contest #3;*;* Name.....: Reflections;* Author...: Thorsten Will aka "Mr.Vain of Secretly!" (va!n);* Category.: Demo;* Date.....: 31.08.2009;*;* Notes....: This is my contribution for the PurePunch coding cotest #3...;* The rule is to code something in max 20 lines, each max 80 chars!;* Its allowed to add a graphic file (only one image, or sprite, or;* texture...), maximum size 512x512 pixels using 32 bits! For music;* its allowed to add a soundfile (and only one) max filesize 1 MB!;*;* About....: I come up with a small demo that should run in same speed on any;* PC (fps independent) and should compile/run on windows,linux,mac!;* 3D GfxCard must support any texturesize (else possible gfx probs);* Please dont use OpenGL as SubSystem, it will make some problems!;* ;* - Should compile and run on 32/64 bit Windows, Linux, Mac;* - Should run in same speed on any PC (fps independent);* - Title and credits screen;* - Layers (skyline, floor, bobs) moving with the perspective;* - Moving oldskool copperbars;* - Moving realtime floor with faked reflection effect;* - Moving glowing blobs with small mirrow effect on the floor;* - Great atmospheric tune (sadly no loop, due fact of module lib);* - Police car with animated blue/red lights;* - Heavy size optimized and crypted sourcecode (had a lot fun);* - Source fits in only 19,5 lines (but can be done in 18,5 lines);* - Exit by hitting the ESCAPE key...;* - What do you want more? Hope you like it... ;);*;*;* P L E A S E D I S A B L E T H E D E B U G G E R !!!;*;*****************************************************************************MessageRequester("Reflections v1.0 - 31-Aug-2009","Entry (20 liner) for PurePunch #3 - by va!n aka Thorsten Will",0)Macro m(t,d):Macro t:d:EndMacr:EndMacro:m(Z,Sprite3DBlendingMode)o:m(D,Drawing)om(N,Sprite)o:n=b:m(W,Sprite3D)o:InitSound():a=800:h=600:InitKeyboard():b=400:o.fInit#N():Init#W():m=b:OpenScreen(a,h,32,""):a=200:Sprite3DQuality(1):f=100:g=a;;Load#N(0,"x.bmp",4):Display#N(0,0,0):Dim d(a):Start#D(ScreenOutput()):m(P,Next)oFor i=0 To 89:d(i)=Point(256+i,480):P:Stop#D():m(E,Display#W)o:For x=0 To 14;;;;Grab#N(x,d(s),d(s+1),d(s+2),d(s+3),4):i=40<<16:TransparentSpriteColor(x,i):w=255Create#W(x,x):Zoom#W(x,d(s+4),d(s+5)):s+6:P:_.f=0.01745:LoadModule(0,"x.mod");;;PlayModule(0):m(U,FlipBuffers)o:i=2:j=6:Gosub L:Repeat:ExamineKeyboard():n=511;;Start#D(SpriteOutput(0)):ot=nt:j=w*Sin(i*_):nt=ElapsedMilliseconds():dt=nt-ot;;;tt.f=tt+dt*(1/15):i=tt:For y=0 To w:z.f=-a/y:v=n*z-i:o=-w*z+j:For x=0 To 511;;;;t=(Int(o)!v)&64:o+z:c=Int((t/256)*y)+2:Plot(x,y,RGB(c,c,c<<1)):P:P:Stop#D():b=30Create#W(0,0):Start3D():n=300:Zoom#W(0,800,n):E(0,0,n):E(14,0,0,b):E(3,-f+j/8,0)d.f=e.f:For t=0 To 9:s=Sin(d)*64:d+0.27:E(7,0,f+s,w-t*26):P:E(13,-f+j>>2,n,74);;e=-i/32:E(12,700,10,90):E(1,-f+j>>2,0):E(14,0,0,56):For n=0 To 45:g=240:q=i+n<<3o=Cos(q*_):z=Sin(q*_):k.f=m+a*o:l.f=a+a*z/2:u.f=n*8-f*o/1.5:t=(n<<1+8)/2:d=g-f*zc=j/6+a:Z(3,7):x=c-t:y=u-t:t<<1:Zoom#W(9,t,t):Zoom#W(10,t,t):E(9,k+x,l+y):x=125;E(10,k+x,658-l+y):E(9,u+x,d+y):E(10,u+x,658-d+y):Z(5,6):P:E(5,20,330,245):Z(3,7)t=8:If r<8:t=9:x=65:EndIf:Zoom#W(t,128,128):E(t,x,315):r=i%16:Z(5,6):Stop3D();;;U():Until KeyboardPushed(1):i=4:j=11:Gosub L:End:L:Start3D():E(11,0,0):E(i,0,f);Z(3,7):E(j,0,300):Z(4,5):Stop3D():U():Delay(6000):Return