I was up till 3:40am, in the end I scooped up my brain from my desk and went to bed.
There's lots wrong with this code, lots of unneeded bits, but I wanted to be able to easily expand things should I be on the right track. I've done routines in the past that aren't easily evolved so try to avoid this now.
Arrgh! This is driving me nuts! My idea was to be able to move the sprite in blocks of say 8 pixels, but smoothly.
Can anyone see where I'm going wrong?
Code: Select all
InitSprite()
UsePNGImageDecoder()
InitKeyboard()
OpenWindow(0, 0, 0, 800, 600, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(0), 0, 0, 800, 600, 0, 0, 0, 1)
Structure Sprites
Dir.i
PosX.i
PosY.i
Frame.i
MaxFrame.i
PowUp.i
id.l
delay.i
EndStructure
Global NewList Ply1.Sprites() : start = 0
Procedure SetupSprites()
With Ply1()
For a= 0 To 7
AddElement(Ply1())
\Dir=0
\PosX=10
\PosY=10
\Frame=ListSize(Ply1())
\MaxFrame=5
\PowUp=0
\delay=15
CatchSprite(a,?P1Sprite,#PB_Sprite_PixelCollision)
ClipSprite(a,a*25,0,24,40)
Next
EndWith
FirstElement(Ply1())
EndProcedure
Procedure ShowPlayer(x,y)
Static sprite_timer, start , steps , maxframe
;Shared x
If Ply1()\Dir
sprite_timer-1
If sprite_timer=<0
; Debug "Pulse"
sprite_timer=1*5
start+1
NextElement(Ply1())
If start=>maxframe
If maxframe=2
SelectElement(Ply1(),0)
start=0 : maxframe=Ply1()\MaxFrame
ElseIf maxframe=5
SelectElement(Ply1(),3)
start=3 : maxframe=Ply1()\MaxFrame
Else
maxframe=2
EndIf
EndIf
Ply1()\Dir=0
EndIf
EndIf
Ply1()\PosY=y
Ply1()\Posx=x
Debug start
DisplayTransparentSprite(maxframe-start,x+steps,y)
EndProcedure
SetupSprites()
Repeat
Event = WindowEvent()
ExamineKeyboard()
FlipBuffers()
ClearScreen(0)
;
For a = 0 To 5
DisplayTransparentSprite(a,100+(a*60),100)
Next
If KeyboardPushed(#PB_Key_Left)
; Y + #Speed
X-2 : ply1()\dir=1 : Ply1()\MaxFrame=2
ElseIf KeyboardPushed(#PB_Key_Right)
; Y - #Speed
x+2 : ply1()\dir=1 : Ply1()\MaxFrame=5
ElseIf KeyboardPushed(#PB_Key_Up)
y-2 : Ply1()\dir=1 : Ply1()\MaxFrame=2
; DirX=1
ElseIf KeyboardPushed(#PB_Key_Down)
y+2 : ply1()\dir=1 :Ply1()\MaxFrame=5
; DirX=-1
EndIf
;
;
ShowPlayer(50+X,50+Y)
Until KeyboardPushed(#PB_Key_Escape) Or Event = #PB_Event_CloseWindow
DataSection
P1Sprite:
; size : 4563 bytes
Data.q $0A1A0A0D474E5089,$524448490D000000,$28000000A0000000,$F12C790000000608,$4752730100000098
Data.q $0000E91CCEAE0042,$0000414D41670400,$00000561FC0B8FB1,$0000735948700900,$C701C30E0000C30E
Data.q $741A00000064A86F,$7774666F53745845,$6E69615000657261,$33762054454E2E74,$72F43030312E352E
Data.q $41444942110000A1,$54787B9BED5E7854,$CA00923727C69DF5,$04817211014B5C2D,$4049B90481770902
Data.q $DD4FA155A8B30165,$709ADA2DD14B9155,$29F71562D97A9013,$BAD3EDB7AEAD6B4A,$BB20BAAD1F67DBAE
Data.q $EBBB4FB6B762F75B,$714BBB62DDD9F763,$673F7EEF325B84BD,$84CC99BF26672672,$CE7379E793B47F30
Data.q $FBE7BF7DEFCE77EF,$A3F642184CE667BE,$CB6B7A4190EF7054,$E2CF1E738E97953C,$75C064F78E781777
Data.q $5572628C9CE13CFC,$853EDED7CAF67695,$2F0CB78A2EB9BA3A,$E7B83BA6B9DB3ADF,$667D32E9B23A3EE2
Data.q $74A6429EF1E750F8,$53DE3AE9A1681A00,$CF41C78B783A10B8,$DD35AE13205900C9,$2593314545454844
Data.q $F4DE6894949562A1,$CC2EED40F47D7D1A,$50310AC181603BB7,$7DB6FB23EA5B5BD8,$62FD7EBF666222A4
Data.q $2AED3ABA82C15278,$AB96BBADFC06702C,$B5CE65656546A6A6,$B80E16B0EB42E0E9,$E9B5AE0D4DA1C65C
Data.q $D065E1DEF8E942E0,$2CBC0B07DBC34F5B,$904AC84641B20990,$34111420294B3E27,$87354CC37D7FB621
Data.q $C3647473A989E866,$CA8B73D5CDCCED3C,$DB9FB610BCC763BD,$3F29ABD73747D17E,$DE39393909DC45CF
Data.q $29F9F9F948A85076,$455D6F70E560FC07,$8E84C8575F0C4545,$A38CC95C836B2E7F,$D5F3864AE78B6A26
Data.q $834F12F015DF7BF1,$04C8164F7BE3A31E,$3578CC85642320D9,$FE90824DE2EB9FB5,$6FA45C5DF6AA71AA
Data.q $CA23376E47567ED5,$BD405679C695EB66,$618A4691A261A2FE,$E6F5EBC2EF31C88C,$D8769D637475732D
Data.q $FAB91734DA6D33DD,$D2E7CAF714C5E614,$8E94CF018A73780F,$D68C6A38D74DAC0B,$07427A3C6F175B61
Data.q $8A78978878DC5C4F,$D848AD11D78C78B7,$B211931B099782C9,$2E4B22190EC86642,$3D62DF48690824EE
Data.q $BCCED5AD8ADC365A,$E2798E887CAC7A61,$EF7D818453085176,$F60757D3AA0AF36E,$D8E94A6BDF263BB6
Data.q $AF9F6343A1D251B1,$53570C87BBE037CE,$E672882DCFCA55CD,$C13A53201A83935A,$B8DA7B6B0D65CE39
Data.q $C4BC43C2BD04E84C,$F5EE42CAF48DBC53,$836467BDA34DEF0D,$10C876433215908C,$F8CEC880A7F20A59
Data.q $7D7D42E87BB4A311,$15976815153552CE,$A2A4BF3D5F4940F2,$66BCC561BD7AB8DD,$F11A10AF7CF37D78
Data.q $EF59FD5C3AA5F9CD,$AB6BB3D26C0E4FF8,$78EBC82A19DAF2F5,$F013E70B6F601FC9,$5129F2E6EBFAFD1D
Data.q $C3583C4E94C844BE,$41DC5DDA8E31F3DA,$E19E15E11E0EB4F4,$2E16F14F12F0EB1D,$205938E7BC73C6BC
Data.q $433215908C836413,$31D114DEB050C876,$2A576586A69DADA8,$ED64E540E1E6DA54,$9AF750B7DEDD8BB4
Data.q $C45DF61E85DEDED0,$767DD62FF7F697B6,$76914FAFBBF0F157,$34ED3C82AED3CAF5,$427D44507C64B13C
Data.q $7F383A95B8DAFAF9,$63D5E3F80CD39AA9,$CB3FE3C7A97472B4,$A4CE636741A67A24,$EA9BABC69BAF3AA4
Data.q $C63F89D3DD4DC3F4,$B40D1B838D06D61A,$352B52351B51C65C,$4055D3A2A47DF907,$784783AF1F7A1D7C
Data.q $A789788787786785,$032023AF11C78B78,$64273F0D904C8164,$C4EC40D3B904EC86,$B585778DAFDED775
Data.q $7BAB3D1CF6B0C1F7,$CDA9396EBBAD38DF,$E0F5DB84DB688F95,$CCF42B9AFCF52BC2,$393D32FCBE3D1AC2
Data.q $4DF6B476B37D12EB,$59AF59355CBFA05B,$1C5F872A73588FD3,$AF2BA59ACD660BC3,$FC7A66AAFBE03F4C
Data.q $BD0D96A9729C1C41,$51EEAEAEA80693A8,$C79FC5CC9A37209D,$F20D6A46A38D74DA,$4781AF1F7A1D285F
Data.q $E25E3F0778678578,$DE39E35E31E2DE29,$1906C82640B20193,$040D3B9E26642B21,$7F457960ADCABD06
Data.q $9FB3A5870AD3B5F9,$972DD6AB49FC29B4,$585FFF8EB0B7FA5E,$6D16C9F7FD287DEF,$8AB1FA2E5553FEBE
Data.q $9B0DFD775BCBFECA,$CC27792098CC6634,$CD17FEAD16B3785B,$C05A91BD769CF65D,$BA3EA0376CADAD1F
Data.q $C4F2E67A69EAEE7D,$687BC827527B569F,$D65B0E782E6F28E6,$51B51350B51C62A6,$3A132DAE083B9063
Data.q $4F12F10F0EF0CF00,$9EF1CF1AF18F16F1,$320D96132F05900C,$B838EC8665B90912,$8DD91F6390604053
Data.q $A3FB7E7D59C27F30,$8DFF1C4E8964B25A,$B0DADDF6F77C41F8,$19D1F4A9F37E8361,$E1539C15848DD6E9
Data.q $00792F7E4772B0C4,$6F010A54F57F0183,$8CE4A6BDB7FCE951,$A0A0BCE1E1E5153F,$E8FBF2C7FB032540
Data.q $5CC8FCAF77209D61,$5C070B586B0203F0,$D71C657535671A5D,$87877867801D0996,$8D78C78B78F9C978
Data.q $6C82643F3F0F78E7,$071D9069E2B21190,$82FC988C18E80A77,$B9AD2E58555B4A72,$7F5FA39ECF668F6D
Data.q $AF89E93C9E4E81F0,$DABB70DC6D6AEABC,$B9B26EE2B43EE2EC,$1A542E52DCA5D309,$FC068C01E4E3F530
Data.q $65403426A7015A4C,$70E90C883B9BA565,$8CEE33D36B3E7F8E,$3C1D685DC62A6357,$C5BC53C0D1783BC3
Data.q $2C9F87BC73C6BC63,$350AC84641B20990,$4C18E80A77171D91,$4B35AC22A8AB0869,$B6DCFA43BD6D4623
Data.q $48D6EBC67DB6AD36,$B7AD2F59AE936FF3,$801445D4160D8DF1,$C7E3587D77556781,$779AFEA208F87EC7
Data.q $3C066ECB57B62EEC,$E4E61B0D86B8F4BF,$ACEA920FDE7CA20E,$39C3A03DFF0F6159,$671A12B438CC9B9C
Data.q $7454883B8BAB5235,$1B8BBDE874C40692,$29E25E21E1DE19E0,$C3DE39E35E31E2DE,$697AF0D904C8164F
Data.q $029DC5C764332159,$B282A6D1DCB7063A,$79715F9088CD5556,$2F1BD82EDCA195E4,$A4734B4B563718EC
Data.q $52F3C772E64697DE,$831E483AB398CD2C,$DBAE7E55EAC2ABE9,$7797952BF45F2F01,$D4275FFCC971ACFD
Data.q $DC3D2C3694FCBF59,$438CC9B9C39C3A23,$2EAD48D471974D0B,$74101649D15220EE,$AF199E781B8BBDE8
Data.q $35E31E2DE29E21EF,$60D96C745F0F7873,$A77171D90CC8564C,$4B5CBC29E0C18E80,$D09B960E40D776C5
Data.q $6BC17615E2D2C59A,$B00AD8BE2F1B06A5,$B007B7C6F21B1702,$920C6AAD2A483B8C,$4D68B6F63D8EE0C7
Data.q $167ADFDBF3C04EEC,$1B3310772779FE5C,$4D604E778E88CCDE,$83B8BAB52351C6BA,$9E06E2EF7A1D09E8
Data.q $D6F14F10F7C6B667,$0327BC73C6BCD8F3,$6B0AC80DC04C8164,$60C74053B838ECBC,$E356765395BBBCE6
Data.q $07908C4DFBC846A6,$3E2EAB83C5C81DC1,$C6EEC0B55B0FD6A3,$EF76FD5FABD8268B,$B561819DBFAE0ACF
Data.q $1D8D61A1A8F80FDD,$12F946F66BD36F64,$24EA8F47FE4684E9,$1DDB586B2E70E702,$EB6BC1DC1D5ABCE3
Data.q $E81F7E01F7AF1D09,$29E25E21E1DE19E0,$416219DE473EFADE,$B8EC86642B27E036,$5EB66280C74053F8
Data.q $E0CA359DD986B6FB,$F21A18170AC59589,$86F3B477FA85F55B,$1DEA9AADA3E3F53B,$413CA23B8DD5D36B
Data.q $02B77F60FECB1F5E,$15AC20438D9E70BE,$6133A44B015F1DB5,$A564B0D3ADE7ADCA,$B0D65CE1CE083B93
Data.q $783B8BAB51C63BB6,$20FBD0EAF9F35C6D,$C43CCEF3C75F0FBF,$3C6BC63C5BC53C4B,$2B211904CF6FE18F
Data.q $3063A02917912664,$0698683FBD0AD2FF,$29B5B77076DB4956,$E2EAEB0E8E8684CF,$3D379AA2F1DA6A13
Data.q $B44F2748FEAB7DA0,$4AFD3FAAD97F7FEA,$D71F6B6339D8069B,$1838901C4D0AB296,$3B4DBFC686E33B7C
Data.q $1457F34FDDD997E0,$DB4DFA078DE4E7BE,$E4E3FF253AFBB3FE,$8D74DAC359738175,$ABBBDAE38D54C6A3
Data.q $3C7D178BBDE9CF43,$5BC53C4BC43C3BC3,$40327BC73C6BC63C,$85642320D904C816,$18E80A7F171D90CC
Data.q $07E57D6A0BEEBE9C,$18DCB6ABFCDFD5FA,$7EF17E9B70FE7911,$7BFE6A53CBF27E9B,$AB64E5AA6F53F0E9
Data.q $DDB2FDBE9B58EEFE,$1EA36B3D55873561,$05C3C71B0F53BD1F,$EEE907FF27171521,$172E4E2398EA7C04
Data.q $EF7AFAFAAB9DCEE6,$C74C17CDCDCD124F,$A1F89A8E31D26B07,$8EAE90BA71756A46,$33C2BC0F9717101F
Data.q $C5BC53C4BC43C3BC,$640327BC73C6BC63,$990AC8464FC04C81,$F9D91014FE2E3B21,$6AC38DFE3A2190C5
Data.q $ADD4D97E9D69FA7B,$3E6BFAD55E333DB0,$694AFD6ACEABBAD4,$7DA33AAFD68B5353,$67D40FE6FDB45A9B
Data.q $1F3F58FB8F069B42,$0FF0D671C6C29970,$7ED7337F127D0186,$E8E6B25FE0374879,$B4F1966B3F55DFBB
Data.q $EF20D0683106F3C4,$F8BA59D1D27FF6CE,$CFF0A49D768E3DCF,$48D43FF9C63A4D61,$6B87416871BCF1AD
Data.q $383C08C406E907A7,$1E1DE19E15E03D78,$35E31E2DE29E25E2,$582CBC065BDE7B9E,$86642B211906C826
Data.q $EC881746972190EC,$A0381F4E806037DC,$BA46E375A90E8773,$3CD48555341E2D13,$F5D6A8BE2FAD4735
Data.q $8FF7FB86E766D5EB,$D0D6ED8673F8A71E,$1E424EA9B7CFE68F,$06A9B15BEF8797EC,$ADA6B68394D667FC
Data.q $E78DBF3C236B50B0,$CE80A6F715FF064D,$D13FE3253AB1D5BA,$4F3724C6A7BF7BFD,$438D0470B586B022
Data.q $1C915E54ED0E37C3,$7A03D3B5CCD72DF8,$707811B1E8406A91,$3C3BC33C2BC07AF0,$8D78C78B780F49B4
Data.q $2C1EE3FC064F78E7,$E4321D90CC856423,$7878666CF602E8D2,$06C36E74AFDE02C1,$32EC06298DF6FB85
Data.q $5E97D9D34D1777F1,$14D4DAD4EB75D9D2,$41B0F9FC057FDC73,$0C59D53615BACEFA,$1F03ACC44623659D
Data.q $C84EABAF7FADEEF5,$1FB8DF78653866DD,$838EE6754DB969B9,$5106C4358F69092D,$6C0CEBF6D2761A0D
Data.q $FFD3F6328D0063FD,$44D870B586B7B94A,$7ED0D5EDA65A3114,$0326B57BD7DADA8C,$7A0D7883D3B5CCD7
Data.q $F86A0C3D1DE8CF45,$78578DC5DEF4E7A0,$6E411464DA02BFE6,$564F9CE3C10327BC,$9274894321D90CC8
Data.q $3BB2AA797971A420,$011189EE7BB6920C,$4FA42537EAF6B92D,$6D527C9EE7417C5F,$7C319C162A76B75B
Data.q $BFFEED9F6D46C6F5,$70620DADB68CE821,$A4B9E17E9D2F57B2,$76E02537700DA7DC,$ED834078ED8316E1
Data.q $A57883E6051F8643,$5D15FB064AE2EB7D,$01AFDF64D0B40F1B,$6B99AE05CB8B9B50,$CF457A03113607A7
Data.q $E7A0F86A0C3D1DE8,$9DE370578DC5DEF4,$8064F78DC820C44D,$43B2C665E79FC42C,$8685484124E91286
Data.q $0D0DC2A363708631,$6D487B54D340049D,$33AD76BA425BA7B0,$769468BCDE262D24,$0D8EA0E22DFCED4C
Data.q $DC8A44F69AC27062,$3B60D5B85DB809CD,$0B830FC895E0D01E,$1C66252B0E01C1BE,$07C38672FD98F444
Data.q $016D473F8353689A,$607A76B99AE0A4AE,$77A33D6242F03113,$7BD39E83E1A830F4,$64F78DC2A55E3717
Data.q $D90CCB3CEF1CFE20,$DBD9E5210493A649,$4E3360CD7DB64DC3,$EAEEF58A6B07FC90,$EDE73CE91C8F0AC5
Data.q $D62FADECCD354ACA,$5E36C3AFA02EFE76,$5F39343D3AF4CCE7,$0A9E7B6150B55D3F,$CDA3EEE3D471F31E
Data.q $B06CD0BA00EFEEB5,$5B4FDBEDEC680F1D,$B671C78B9FD2EDED,$C6B6802D4BCFDFB1,$FE0D4DA268009B5B
Data.q $E66B8292B805B51C,$A33D02744D81E9DA,$1C35E801A830F477,$7786785781E3EF7E,$EF78E78D7809D136
Data.q $A44A190E81F3F57A,$8FDBED519D910493,$3B9E0784D81F240C,$FA218CD4F57372DA,$879DA5A0F52349A7
Data.q $B48AD3ED8FB8FF56,$3D3DF24FDF4726BD,$E8562B481B00E81F,$9DD315DF691749A9,$7FFA995FDEE7C0BC
Data.q $4AAAA86A086FDE8E,$E1AAF1A84C4E264B,$89CF0C6ED9B76DFD,$06D6B0D639A771B8,$D8357B689A16809D
Data.q $5C0C91C82DA89A98,$D013A26C0F4ED733,$7C5C01A830F477A0,$1AF1786E2255E041,$FD419F040C9EF1CF
Data.q $6444D2867E3AF89C,$433DFF7DB9B0C727,$C769688A530781AB,$DA8581A5E9177ACF,$F6C7FE3699AE5E5C
Data.q $48FD5AF8CEEDA7E3,$CA01BAA1EAE6D735,$7B23F0C2782EE34D,$184EB697A8A77D90,$E7C1B1F4DCF2F1ED
Data.q $E9D5E81FAEE7C87E,$C313FFD81051F1E2,$BC681C60E8F671DA,$57D7F726BBAC5C59,$D4F8D11F963A43AA
Data.q $986CFF896F0353F0,$AE080F8F9070763E,$1C2D61ACF331090F,$89A1681A3709C170,$BF9B51350B503536
Data.q $1ED7335C0BB3583E,$0D06F427AF48C1E9,$83443D1DE8CF457A,$833C2BC05C78BA9E,$AF1785BC6E7D0F1B
Data.q $6C9C701CFDEF1CF1,$CAE9D90F02B21190,$5E78191418E8049B,$CF13ED7BA438BFB9,$33D2141F5E90B281
Data.q $527BBA432BFBB0D6,$B65F0D0FF8EDFD48,$3FCDAF6099EDBBFD,$39AACCF4EAF23D30,$0094F24181D8D6FA
Data.q $0E4BE1B1FEF0DC27,$7F5D11CEFB8DA7EE,$D5BB70D721360900,$75D2125B99E345FF,$8D3BA43A383A4363
Data.q $9755AEBB5AE18B7F,$88F6FA42BD87F484,$367B0EDB58133E90,$E16B18E623E734EF,$4D0B40D1B84E0B80
Data.q $FCDA89A85A81A9B4,$7A03D3B5C718A9B5,$F457A23D0DE84F41,$0327D6B8FEF9DE8C,$EBC31E373C5DE19E
Data.q $1B209902C80643FB,$E2E3B21990AC8464,$AFEE0CB7279D014E,$86C00F3273BE46FD,$44266BCB9087C89A
Data.q $CF2B1E926F3439CF,$D2189EED2115C3D1,$2027FE9054FDD5B3,$50D2B1E9E4950E27,$A1565D9EAE527B84
Data.q $7C850C9494FF0482,$1DD8D61DA39FEB2A,$2A4D1CE4E7739CF6,$2367FE9DDA4F44BD,$6BEDDE909F5F75F3
Data.q $BCF243B5513C5E4D,$F46ECC69FE071F6F,$6B0D61CEF0719CCE,$0B40D1B84E0B80E1,$DA89A85A81A9B44D
Data.q $F417A03D04BAB8E2,$373AE57A23D0DE84,$6DC7A5E21E1DE05D,$00C9EF1C7FB1E2DE,$95908C8364132059
Data.q $409DFC9CE0374F20,$F3198E0ED4514C20,$6382C7F1FBF80241,$A7163D1B61AD1217,$939C29EFDB55C1E9
Data.q $C8B3273829916459,$A64591664E705322,$39C14C8B22CC9CE0,$8B32738299164599,$64591664E705322C
Data.q $9C14C8B22CC9CE0A,$B327382991645993,$5D01FFE9080322C8,$001C5B2574A2EFA6,$AE444E4549000000
Data.b $42,$60,$82
P1Sprite_end:
EndDataSection