Author Topic: Help with 3D cube code  (Read 3472 times)

0 Members and 1 Guest are viewing this topic.

Offline emook

  • C= 64
  • **
  • Posts: 94
  • Karma: 12
    • View Profile
Help with 3D cube code
« on: January 22, 2014 »
Hello chaps

I've mangled this together, but when the balls are near the camera, the ones far away appear in front and so on. I need help getting the ordering correct.

If you press space it will change to a 2d cube, how would I go about joining the square with lines?

Code: [Select]
InitMouse():InitKeyboard() : InitSprite() : InitSound() : UsePNGImageDecoder()
OpenWindow(0,0,0,800,600,"Window",#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0),0,0,800,600)
ExamineMouse()

image=CatchImage(#PB_Any,?img1,?img1e-img1)
ball_spr=CreateSprite(#PB_Any,260,260)
ball=CreateSprite(#PB_Any,260,260)

StartDrawing(SpriteOutput(ball_spr)) : DrawingMode(#PB_2DDrawing_Transparent) : DrawImage(ImageID(image),0,0) :StopDrawing()
StartDrawing(SpriteOutput(ball)) : Box(0,0,20,20,#Red) : StopDrawing()

I=60 :SIZE.f=25 : SCALE.F=0.0008 : DIST.f=3
ANGLEX.f=0 : ANGLEY.f=0 : ANGLEZ.f=0
CAMX.f=0 : CAMY.f=0 : CAMZ.f=600
MODE=1  : MOVEX.f=0 : MOVEY.f=0 : MOVEZ.f=0
PIVX.f=0 : PIVY.f = 0 : PIVZ.f = 0
max=8

Dim X(max)
Dim Y(max)
Dim Z(max)
Dim PreVal(8,8,8)

X(1)=I  :  Y(1)=I  :  Z(1)=-I
X(2)=I  :  Y(2)=I  :  Z(2)=I
X(3)=I  :  Y(3)=-I :  Z(3)=-I
X(4)=I  :  Y(4)=-I :  Z(4)=I
X(5)=-I :  Y(5)=I  :  Z(5)=-I
X(6)=-I :  Y(6)=I  :  Z(6)=I
X(7)=-I :  Y(7)=-I : Z(7)=-I
X(8)=-I :  Y(8)=-I :  Z(8)=I

Repeat
 
  ANGLEX+0.001
  ANGLEY+0.001
  ANGLEZ+0.001
 
  ClearScreen(0)
 
  For n=1 To 4
   
    XD.f = X(N)-PIVX
    YD.f = Y(N)-PIVY
    ZD.f = Z(N)-PIVZ
   
    ZX.f = XD*Cos(ANGLEZ) - YD*Sin(ANGLEZ) - XD
    ZY.f = XD*Sin(ANGLEZ) + YD*Cos(ANGLEZ) - YD
   
    YX.f = (XD+ZX)*Cos(ANGLEY) - ZD*Sin(ANGLEY) - (XD+ZX)
    YZ.f = (XD+ZX)*Sin(ANGLEY) + ZD*Cos(ANGLEY) - ZD
   
    XY.f = (YD+ZY)*Cos(ANGLEX) - (ZD+YZ)*Sin(ANGLEX) - (YD+ZY)
    XZ.f = (YD+ZY)*Sin(ANGLEX) + (ZD+YZ)*Cos(ANGLEX) - (ZD+YZ)
   
    XROTOFFSET.f = YX+ZX
    YROTOFFSET.f = ZY+XY
    ZROTOFFSET.f = XZ+YZ
   
   
    If MODE=0
     
      X = ( X(N) + XROTOFFSET + CAMX ) /SCALE +MOVEX
      Y = ( Y(N) + YROTOFFSET + CAMY ) /SCALE +MOVEY
     
     
    Else
     
      Z= (Z(N) + ZROTOFFSET + CAMZ)
      X= (X(N) + XROTOFFSET + CAMX) /Z /SCALE +MOVEX
      Y= (Y(N) + YROTOFFSET + CAMY) /Z /SCALE +MOVEY
     
    EndIf
   
    If MODE=0
     
      DisplayTransparentSprite(ball,X+300,Y+200)
     
    Else
      Z= ( Z(N) + ZROTOFFSET + CAMZ)
     
      a=(SIZE /Z /SCALE)*6
      ZoomSprite(ball_spr, a,a)
     
      DisplayTransparentSprite(ball_spr,X+300,Y+200)
    EndIf
   
  Next
 
  FlipBuffers()
 
 
  ExamineKeyboard()
 
  If KeyboardPushed(#PB_Key_Left)
    MOVEX-0.1
  EndIf
  If KeyboardPushed(#PB_Key_Right)
    MOVEX+0.1
  EndIf
  If KeyboardPushed(#PB_Key_Up)
    MOVEY-0.1
  EndIf
  If KeyboardPushed(#PB_Key_Down)
    MOVEy+0.1
  EndIf 
  If KeyboardPushed(#PB_Key_LeftBracket)
    SCALE = SCALE*1.02
  EndIf 
  If KeyboardPushed(#PB_Key_RightBracket)
    SCALE = SCALE/1.02
  EndIf
 
  If KeyboardPushed(#PB_Key_1)
    ANGLEZ-0.01
  EndIf 
  If KeyboardPushed(#PB_Key_2)
    ANGLEZ+0.01
  EndIf 
  If KeyboardPushed(#PB_Key_3)
    ANGLEY+0.1
  EndIf   
  If KeyboardPushed(#PB_Key_4)
    ANGLEY+0.1
  EndIf   
  If KeyboardPushed(#PB_Key_5)
    ANGLEX+0.1
  EndIf   
  If KeyboardPushed(#PB_Key_6)
    ANGLEX+0.1
  EndIf   
 
  If KeyboardPushed(#PB_Key_F)
    PIVX-0.1
  EndIf
  If KeyboardPushed(#PB_Key_H)
    PIVX+0.1
  EndIf
  If KeyboardPushed(#PB_Key_T)
    PIVY-0.1
  EndIf
  If KeyboardPushed(#PB_Key_G)
    PIVY+0.1
  EndIf
  If KeyboardPushed(#PB_Key_A)
    PIVZ-0.1
  EndIf
  If KeyboardPushed(#PB_Key_S)
    PIVZ+0.1
  EndIf
 
  If KeyboardPushed(#PB_Key_Pad4)
    CAMX-0.1
  EndIf
  If KeyboardPushed(#PB_Key_Pad6)
    CAMX+0.1
  EndIf
  If KeyboardPushed(#PB_Key_Pad8)
    CAMY-0.1
  EndIf
  If KeyboardPushed(#PB_Key_Pad2)
    CAMY+0.1
  EndIf 
  If KeyboardPushed(#PB_Key_Minus)
    CAMZ-0.1
  EndIf
  If KeyboardPushed(#PB_Key_Add)
    CAMZ+0.1
  EndIf
  If KeyboardPushed(#PB_Key_Space)
    If MODE=0
      MODE=1
      SCALE=SCALE /CAMZ
    Else
      MODE=0
      SCALE=SCALE * CAMZ
    EndIf
    Delay(200) 
  EndIf
 
 
  WindowEvent()
 
Until KeyboardPushed(#PB_Key_Escape)


DataSection
  img1:
  ; size : 9119 bytes
  Data.q $0A1A0A0D474E5089,$524448490D000000,$6500000067000000,$6AEBDF0000000208,$47527301000000A5
  Data.q $0000E91CCEAE0042,$0000414D41670400,$00000561FC0B8FB1,$0000735948700900,$C701C30E0000C30E
  Data.q $741900000064A86F,$7774666F53745845,$6E69615000657261,$33762054454E2E74,$5D803B37382E352E
  Data.q $544144490F230000,$D71554079DED5E78,$106CD28039F7C7BA,$1A258B958A8D44AE,$214482C01092C4B0
  Data.q $02C1898D1A8D4491,$58A8D760D60C1A31,$B1280BB1511C2890,$7BD88586C5041600,$FF7AFA68B7B1358F
  Data.q $BC1C29CC3366DF3D,$DD6FAFFBDEF26E49,$5F37E7B39999C375,$AA91FEBFFD90199D,$26A761B0D3ECECE8
  Data.q $CD66AE346A35FA4D,$F0B48080E4971744,$9B89899931310DF0,$B5594E4E4CCE2F16,$F8B45A13C1E0DE6A
  Data.q $E8074BA51E8542B4,$8715B5B073197574,$95CAD5631D20BFF8,$D7F0783D1BEBE4EB,$2F3F37BBDBEE974B
  Data.q $3EDFB7A1EC6C60EF,$DD3AC3B1987AEAEC,$F41E7A790E150AE1,$27240E0F83E6FFF7,$CDD97173CD0D0BEF
  Data.q $58C2DB1872C60ED8,$CC66337171696326,$7B2F2F1F2F57B0F8,$974BB554BFFA8E1D,$F23319DACDA6D81E
  Data.q $E3F1C8E4723BEDF7,$E2223A73D9EE4FC7,$94E760C659CB8B8C,$FAFD54EC519D85FF,$B1C4E2713EAF5727
  Data.q $7C9C9CA1FDB0C763,$F0705E64647F6183,$B2DC6E36730D86AE,$6BB5DAE666664B65,$1B5AAD5510984D97
  Data.q $631BA038D7FE5CC6,$B43E8E8E4AD56BBD,$ECFA7D3E9D48176B,$ECF62EF2F217B3D9,$1ADF6332E1C1C979
  Data.q $678B974BA9787E19,$73B9DCE170B85CCE,$BB12793C9D7B1ED8,$9D9E5F010E877C73,$B6828373B5DAAEDD
  Data.q $C975BCDE71B2190E,$1DB5B12F1B8DA9C9,$D7AF5DDDD8D6E6EA,$23632AA9C7FFAF8B,$91E8F3399BCBD5EA
  Data.q $178BC5FF9C6D3823,$6B98CC6570B85F2F,$376286EC675CCA65,$391F5DD3A27FC655,$BD5EAF576BB5DAF2
  Data.q $5D2F97CBE5CAE572,$EA73399CCEF844BA,$41E8743A3BE029D4,$8C5DB197B6300EC6,$CBE673B3AB6C676D
  Data.q $13D3C520D06BAF2F,$3359A6D1A8D4A6EC,$EA847F94B1070707,$F8F8FCDD6EB93630,$DBEB0053C38FC713
  Data.q $37E9E91B8505BF6F,$DD8A5BB18EFBD5EB,$7CFF87FF053BB02E,$EFBBFEFFBFEF98CC,$371B8DE6F379BBBE
  Data.q $FCE71C3B07761F08,$8E9D4EC9E038F3F9,$CB19FB7606320322,$2F9736F292A76C63,$2BE5F2DA6974BE9F
  Data.q $3019CC848516A2A3,$8B4BA5D2A753B820,$2728B19E556DFD65,$17889622874303A7,$FDF000EBF5FAE5FC
  Data.q $2EE800ECEDB73198,$E1F8646FBB18F763,$E77BBDDEEE4321BD,$75BADF6FB7DB9DCE,$E0EC408E1D81F08B
  Data.q $324FB5DA99E6387A,$BE58C43BB0318276,$9764A3359AB2E9CA,$29C492C964B29292,$0D46A2DB6DB6A653
  Data.q $85BC912062B3DFDD,$508595963FF7F148,$B85C2EB7DA70BC92,$0F6301EA449BE6F3,$1F43430F64647B15
  Data.q $7BBDFEFF7FBAE03E,$0877E22BB11F08F7,$818CD38D141B1B76,$631F6E00E9C531DD,$371BE9F4DC1CB3A8
  Data.q $EA6A6A5D6EB75C6E,$70689C4C16CB65B2,$2954AB50E0E91F77,$B2A954AA89BFD6B1,$4A7D6EB50F2FCBE0
  Data.q $F4BA5B7FD7AF3FAF,$D5B8D46AEFD75775,$C9C97B8888DDE9B4,$8F2E9761F4FD3E0F,$BD13D2A95C78B45A
  Data.q $F9FF0CA83F6309FE,$7E3DDF77C9F3D3C4,$721F0F47A3D1F8FC,$ABD98C9DF91D927A,$7352BCEC645FD7EB
  Data.q $92CACACAF2F3834D,$CE2E30BE5F2F96E0,$32E74D8D826EB750,$BBFFA2C46C6D6C65,$EA3C4C49C808080A
  Data.q $95576312E17681E1,$E5E7BC60850C8EBC,$278E008029D4E0F5,$A14F0FC3F0FC9E4F,$2D2CFC3E1D9FF7FB
  Data.q $9EC2C2CFE9F4D9ED,$9F9A78F0F53DF9F9,$76A761A66C214F8F,$B22F32793EBBB03A,$6354226700285D8C
  Data.q $F82DC12AA10E0163,$51B1818787832BEA,$FFE962F6F6EE4E4E,$1D454547DBDBD915,$004E038384E63318
  Data.q $8EBC8F6488CA8327,$8BC5E1FBDBC0F5E4,$40B1FB3D9ECF5E6A,$8FD85847FF88153F,$7BE9E5795ECFCECE
  Data.q $D4D487F63B1D3DEF,$E0A2B6063F8FC727,$BA857EEF77AEE9C8,$511DC02A851C0513,$81810E2F2B0A038A
  Data.q $91919743436DB6DB,$A1AC6C6A878E3941,$95AA552B8B806572,$BC2F58BF8738BBBB,$FAFD37D2525242F0
  Data.q $37D0B3E82F104621,$FDEDE524862E4F7C,$D1816125E275FAE8,$FBA749F9C9CAC6CF,$53D8C67B151FB189
  Data.q $3C9A4DC7E7675B0A,$33F769B4C1FBDDEC,$346EEC4CBE5DEE32,$85237C380677086C,$554A37E9C65C7C2A
  Data.q $ECC6E363B0E0E3DD,$A7A7A7379BCDECEC,$5D2F272725A5A5A7,$0A85430CC67134BA,$B55ADDEA55286700
  Data.q $35D56AB55112EAFE,$C5CB1DDEEC1F57AB,$0FF948644839C705,$2FF6A4BA5F1E3C3D,$A5FE3F1EB18BF5E2
  Data.q $B11C0183199FDD6E,$F721A9425547042B,$773B771E1E7BBA75,$AAF7D7CD791911BE,$3E8A9C719C792BAB
  Data.q $DD6FB7DBEDB8DC6E,$6BF5FAFD6E0915BA,$F32E2572B959ACD6,$9C1CF5E8373FCFFC,$27676769E9E61F5E
  Data.q $FA57979796CFE94E,$73234D838307F5FA,$F0D32110E87C7D75,$632BF17C5F58D5FA,$AB1ED40E0C6628BF
  Data.q $404D40341BF021C1,$136FDEEF74F5E669,$CB65BE77EBF62E12,$68282DDD68CA6533,$37703939391D8EC7
  Data.q $BC342E161951538A,$1A0DE7D8A6A716F5,$E4F3FB138B3B3B38,$1D83E6F365B3E3E3,$FF6F66472607183A
  Data.q $884644A5464B2B38,$9C9CDFD5EAE8D37E,$B824DDD8CE034D40,$A1C0949547BDEF3B,$8C86C62CE1C9A1B9
  Data.q $9DE77D1C2613138C,$DCF3EBD01CEA7583,$7AA37705DAED76DC,$C4DE2AD56AB6EE4A,$A2E092F2F06F9FCD
  Data.q $DE9C51D1D1C378DF,$F29B4DA6D978219F,$FF4C85C4AE3AF57B,$F636CF6635C19722,$E7D3EAD5DFAF3532
  Data.q $02550C9C1260C637,$9E4CEEC1BBA4D447,$886F42E4681B1EAC,$507CFA8D1B430B79,$323BBB1B17DDCDCD
  Data.q $CA0C8CEC8CC67732,$2D168B6EE016546E,$F4E015B5B389A032,$BA93FA96DB6D61FA,$C361FEF17C32E439
  Data.q $94D761285CA80810,$8F08E0C813150326,$904C8737FA42753A,$DF9B1B77F87C3A92,$3511BBA4CE046A15
  Data.q $0346A4864676EE09,$231AD685A4C35103,$6F9BF87C3E1DA82A,$EDF69EFF7FBFD9BE,$DD4B76D6CDB63077
  Data.q $62F8BEEBA1A199BA,$12DDDC6EC8A5D2CD,$C10377483A1D0D13,$132DF87FB64141C1,$8DEC562B15D75757
  Data.q $E28BD48363623989,$C40C9A197D0CE945,$2ABD5C9E552AA3E6,$6F5A948298135363,$8CDDD26A6A6405BD
  Data.q $E975B9B1B3505483,$B30D492CC61A8692,$A820F0783917DD3D,$261B74F9841A0DE5,$34B181B63236C616
  Data.q $848596753AE49B1B,$EA259ACC328A8C2C,$FF5DAEBF73B39929,$B9DCEE78018AAAC8,$74CB3B3A0E5253BB
  Data.q $8F36369B1E335B26,$D494829B10B66F37,$E66A1AF5EBBFE3F1,$D7B2BADD5A90AD7C,$4D57B186A6A09AA5
  Data.q $15CEE77B0381C0ED,$633A58C4DB184477,$4963056C654B196B,$65ADD9E07077CD8C,$3A9D5C02B2D9434B
  Data.q $2B9FFCE715B6DBED,$0681F6767B7C3C3C,$E868E08E689B100D,$745F6FB0F68ED498,$BBDD6A69808B26B3
  Data.q $B524D1C8D4CB3213,$9B6A5ACC84A1A1FB,$B19B2C65CAC06337,$D5B18EB630658CCD,$C08963096C64AD8C
  Data.q $9090C53298636364,$7C07E7E0D43A1860,$9C4753A9D43A1DF1,$C9A15AAD56A27FF6,$3472751403E0FBCE
  Data.q $CDC019C2B4640114,$864CD1942B95D1ED,$DADBBFF3F9DA96A7,$DEED494F0859906A,$04D4238CD1D2B1D8
  Data.q $9A81393B777BBDB5,$C55B186B6A0E6FBC,$04057F9016C652D8,$D311110DE3E2A418,$FE4E2B2D96CAA2A2
  Data.q $6767368EEEEEE4F9,$7534748D8DBE5C5C,$1B18B9DCC0EBC683,$93ED7D6668E93525,$88C80D4733224C4F
  Data.q $6AEA6A6334B49DDA,$EB6A6A9ACD5A8260,$116C632D8CC96A15,$A0A67330DA5D2B51,$9EE572D3F63B1A46
  Data.q $D9F6F6C9CF61BD3F,$71BC3F2F977B0E0E,$97090973D4D4C9E3,$90CDC0603ABF8FC7,$B97171DF1B8D5B90
  Data.q $D5361A456639BCDF,$F8F647106EEC66BE,$906B2F11CAE56FF1,$773ADDD3A47B4749,$D50D5079D34D4D4E
  Data.q $A14D2D434AD56B52,$59DCEB811B529CB6,$5060B9B6DB6A92F0,$6EB74760B92AF972,$E110D147A3D1C158
  Data.q $C48DD62E58956292,$1B0F56AB7EF0B18C,$0F864F3BCEFC7A35,$C7EF2F2CF4949A7F,$5BF706A6EE3577BB
  Data.q $41ED1C1664058242,$D4B97753471A6AB5,$CEE75A8451E751AF,$50D14B5128CA1A92,$8D8D8A92C04552AB
  Data.q $B3EC5F1A79EE5729,$16564F65C5C7D510,$21F5898B886B8116,$9A96A73D58C5608F,$9C43386272814BCA
  Data.q $97A7FEBD47F84E2A,$F93F9FDB6DB9FA5E,$7F73725FF8F897E4,$446A3571D89B7DBD,$EE2BE1906B2F24B0
  Data.q $6A4A3524C848EC75,$2B9750C89E503662,$7BBD5DBCBCBCB5FB,$0BC6A49AFB503553,$9F5497823198D902
  Data.q $E2B7A8928905DD3E,$C3EDF6FB5151B968,$AD416D1DF520B03A,$E249C31386A25369,$04C0580105380554
  Data.q $D7E6D36D7F95CA9A,$1F17FBDDED7F93C9,$C80B2F251D1C5F9F,$3619DD87C72A6078,$6014B29E1D4C8D4C
  Data.q $D02222D422898891,$282D4D58B6A49879,$777048484A92C048,$F8256553AC3010F7,$AE03B1DAEC7878B7
  Data.q $B0B805109AC79F0E,$53E0EDA85252D485,$85706A6A6A927281,$EE467F6C296362EC,$469F9494E7F2793B
  Data.q $351AC7F83829FA8D,$AD6E2BE19016A1E0,$524D3476A646A158,$9EF62E3E7E5513E3,$1AFD4E1F0E767B3D
  Data.q $CDCD4856BC9A1E75,$82C1AF57AB52C04D,$F0F6748A530A7587,$13405C375C62F8E1,$3139543513359AD4
  Data.q $67191C08DDC6A79C,$28541B8DF3F76767,$C86A101D2848F890,$30FCE4E69EB75BD3,$F8FB1E7D3E93D66B
  Data.q $36B860BC9474723C,$9A38D323511C8F37,$1DEEF76D4922CF0C,$FA972E806CD22713,$1309B06A5AA1AA35
  Data.q $CBE50D73B9A92C04,$CED2AB938A4810D7,$9382CACF6DB9B864,$9CCDDA868D581163,$7702DCBA9B8F711C
  Data.q $20A0BE04EC938353,$D91C5E041600AA81,$7162142190E8A7D3,$3FF7FB07BDDEFBFB,$D7DF71111FBC4C48
  Data.q $4C8D54BE1797AEF7,$5393C26873D468E3,$1B354B20A50D369B,$ECF5901AB0A3CEC8,$A8211A1A15A96029
  Data.q $3F9BD03441642714,$D44E7E17373738FE,$EF66FD2C35253170,$A6EE95CBA8D7E8DE,$AA974B7C09D92701
  Data.q $159025E1A5804149,$6ABDBA29EE86F8DC,$5E0605AF95CAB5D5,$E6DF49492BB3ECFD,$78754F564D1C6BE7
  Data.q $928626372BB5DAEE,$97435386A0A1CD1A,$099ACD6A115AFD4B,$54AA509D9ECD6A52,$5AC728CABCC60155
  Data.q $9DCEDD6EB594E4EB,$2C35F48758F5F13B,$CA37B3D9DAF91714,$C18CDDD2C187A194,$BDDE9F1D1CDC7649
  Data.q $531742AF24A4984B,$77D15775E2321178,$A578986F5DD186C3,$06E7FEFE0BC562A1,$0EC76A7090933A0D
  Data.q $4DB7FAC4F0C9A3B5,$CAD7C14A8D494E9F,$86A5A4C10A898A1C,$6C123FBDBCA4DE49,$0604376E19402BCC
  Data.q $6EAE0AD715BADD6E,$6FDD18E9F4EAED4C,$62380D377481E32A,$923123B1D0FDF127,$AC24C5DA9788B092
  Data.q $283D7DBEDF6E8A3B,$F9BE370564097888,$EEEE63EFBDCA344B,$CFE787850FFDFC47,$E13D5E56EB7FBB9D
  Data.q $7852673339B9B968,$1CC4138A02A35252,$49A4D91910AABE8A,$58C57FFBFD5A9482,$633EC2528C3EAF31
  Data.q $C4350D6CECEC94CA,$37B78AE34208F202,$E0C66EE4550C50E6,$04C278F8BE04ECD4,$3224BC92C2482911
  Data.q $4552A95D4B9E8BC9,$F920F91643D182F2,$87F37DEE80C4F2B8,$B67755AA9EDD3A06,$2323B24F93FDB76B
  Data.q $8D49D53C21D9D8B7,$5C3C2DAA87310EDA,$B5A1C1C1350B5290,$BAA56395154A63C0,$80E4E4E7A7A664B8
  Data.q $9207123F3835E51A,$D5BF7BBDA5C8F22E,$34E034DDD22F11EB,$9178BA3CD8D9B8EC,$2C24BCC658494918
  Data.q $E9D65F4FA703CF88,$34742B2119782F24,$CA79C90782C1D905,$71B3D5123F7E5123,$ACC4C664361BCDE3
  Data.q $754AB55BAFA3E8FF,$C664A02DA6A4A373,$2105CFCB65A915A3,$8EC74D6E1CA4EA53,$B205321A92999999
  Data.q $C7E38B84153AEA2C,$E0D4DDC85E239AE3,$56621EC8EC34E390,$2F31961241488955,$02929EBA09F9A2C0
  Data.q $4F2A6C48AC179258,$3CABD9643C150F42,$A075E356DCA9DF7E,$A7A7A6371B8DF379,$252D2D2D2EB75BAF
  Data.q $888D2D5F57C56525,$0A351AFCDDAED458,$69302168B593826F,$5A6652BCA0961614,$F897E5F6993494E3
  Data.q $6A255A4536435026,$C6B75BE7A414B748,$93824CDDC0BC4735,$240268E8C138C8EC,$11788CBD9E20A445
  Data.q $CD5A3D195C09392C,$8E1362191265E34B,$1D793D9A347147B6,$1B0D86C07835ED78,$2757ABD5EBFAFEBE
  Data.q $E2F17CBE5F2F2727,$E2E238E02C160BC5,$BD4310908691910C,$A4DE70FE7B7B067A,$AA137C6453074FA6
  Data.q $5A75F4E4EE5EF0A0,$52136A390A1A9A9A,$767673FCFCD20F1B,$9D9271C870630738,$5A8E895BADB71F1A
  Data.q $4E70C16307196F3C,$4960307052ED1EA2,$A4D8EA674C99125E,$D368E1A29B115117,$95CAEA6A6A5A3A46
  Data.q $C494949A5D2E972B,$31186F1F14681B9F,$0D0222218DA6D0C2,$E0B87BBB94A1F887,$DBC2BC4A954D5454
  Data.q $526D369BB5DAED7B,$9E90436A40414353,$BC4735C74B13399A,$270071CA38254E20,$F3BB95CBB77C49D9
  Data.q $35244C2208C4F7FD,$A12425A1488BC92C,$EE42F126B35F3DA7,$D9D94D89A6449987,$ED5EBF5FAD050466
  Data.q $E170B8592C964B68,$1212B50E05F3F9FC,$406F5E8F785DDDF8,$39CFF3E1A6F9BEFC,$4DEF2B66D7B5E84D
  Data.q $F47AAB052943D569,$FED1C250D49195C0,$F563BBDDA41E3510,$74E4701A6EE4ECB8,$1D1206056EC8EFD2
  Data.q $1792584914B19E29,$1C0033E69DA12261,$734C54305827AF5C,$4A9B1856409B10C8,$C1A332BBEEFE968F
  Data.q $E11347065B2D96D1,$CD271C88CA655269,$82487E7EC03789C9,$3C930B4AB1ABA626,$28CA1A868E2E2271
  Data.q $E901385E5E93B6A5,$ECD4E001950E046E,$23A244E2704E3E24,$AB9D0B0A25209845,$B57AB000F8815490
  Data.q $2B224CCB90BC4584,$5B3A0640C3059BAC,$92A9548D1D2B4E94,$CC66192F4BD91A96,$E8E48B0165F97C08
  Data.q $2BD6EB416C4180E0,$F379BA9A9F5B8DC7,$A93DEEF6C76A6366,$A71937706A23D63C,$CECC138C8EC4706A
  Data.q $5042520984523A26,$1B73082602C11738,$258268E8D9F54D09,$267486405BFD2179,$66B2190D423E5ADB
  Data.q $1C9668CA34721ACD,$74AC8BCB4753AA0D,$2F057DBEDF6FC469,$47A33EF9D5EAF552,$AB5569F5E856DDC3
  Data.q $33B0180F64040666,$BCA328ADD6DF6E2E,$29E57004E0242420,$38EC34E046EED548,$804FB4CAEBE7673E
  Data.q $02C1167B52098448,$50D0A9D269DA1226,$46449A62A8BC4582,$1F19026C519006AD,$5AAD560451A3A206
  Data.q $796B1B8D41A39565,$82D1E8F4753A9B49,$B09F7CA6D369A917,$5F0D618CEB435030,$B974EB641585CB89
  Data.q $FC7FE5F9F9E52A95,$91B9B84E2D1691F1,$9D3B5383537651BB,$61241486A5B2D7C0,$A1268BA1488B3DA9
  Data.q $82E724F4F31D2431,$24C322C519351781,$3A7D3D5CEA63F580,$45B470158AC57362,$7B791A9D2899168B
  Data.q $8B8B8C8C8B49616B,$280BD44DF998F22B,$86EF81FCC3524424,$5DB2B1F3C04D23AB,$6FE6F7D16021C6E3
  Data.q $0703E39CCE7874DA,$45CAA55738080E9E,$70F0B42B835771A5,$02F319059E448989,$69D210861083F423
  Data.q $E2305CE47676E40C,$D13C346439997D45,$15226267531ABEA0,$5AF82CB2CD1EC281,$2055D5D5DCF85EAF
  Data.q $D169F7C3E9F4FA83,$7C5C460703146502,$9B5095506AC3512B,$BD07B3D9ED252676,$F22D843B24538608
  Data.q $2F8F3B9D91EBCA1D,$3B1D73D0E87A7058,$E10D8DB2F359AC5E,$D8C81520289896E3,$AA68452C04C8D4BF
  Data.q $5E22C11482A6A44F,$0699726997D93170,$AC89070714CE4619,$2585A86C3524D8F8,$FFDFFBFF9F14342D
  Data.q $7DF0864321A0C816,$C5F171186A26D76A,$B59611EA07580D48,$F77BB59591DFAF5D,$C1271F43811BB86E
  Data.q $8E5068405CA1EB21,$A3D3F2F97270381D,$D25262F9DCEB9F47,$20B044148967B3E5,$2C1191262E54BA9E
  Data.q $8238DC7474351D08,$0B865F518B917925,$559708E94D191269,$49362AB33A52AB55,$7C7DCF88EC75A816
  Data.q $7CE1F0F86832047C,$EE512ED330954A9F,$82C08E402B29A5DB,$62E6E6E7BBBA9078,$53831A9C51BB8532
  Data.q $98FC290DB6DAE3B3,$33F5244F4F71EDAD,$3D1C2E5252E7D1D1,$E85E1A62ED4BFD2A,$845E48BA5D43A1A8
  Data.q $DE3548642ACCBC8C,$D0341AB54DD556DE,$DD6F3E2DB6D692C2,$72DA3D0C63FB755A,$D1457E018078C171
  Data.q $DBED9349B483C6D4,$DDC1C083B1D8EFB7,$FE6F0E20ECD4E034,$EB0FD194647AAA7C,$9BE6F63F57AA47F5
  Data.q $667494953D0E8627,$21BD0BCD4C895EEF,$92F03174A1B0DF94,$914566B793038CC8,$ACC8476BB69614E1
  Data.q $D2585A5AAD524D8A,$3EBF55B79F1D7F5E,$63E23A39C86E8933,$4056290478662904,$1C1D16DB6B839495
  Data.q $8702538C9C4D0DDC,$EAE7F9F42761A71C,$F9ED4CBAF32647DA,$7850EFCFD078BE2F,$80393963B8B891F8
  Data.q $3EF0F87A3A179985,$3298146422F07B7B,$335B21EC8000D3FD,$190395800A88E9BA,$674DAC3D1EE2CCF2
  Data.q $79ADA94845EEEE52,$0C812753A9DE7C73,$4E7728FBE189898A,$4DD90DDC0B8B6EE0,$C0165656686869C4
  Data.q $8E0471E34E00E3C1,$189B7EDF077C49D8,$5722B67576A4D349,$5B2D7D97173C9A02,$F763B1FCC3F0F81E
  Data.q $6A87E1D3A79CAE54,$B033EA3204D8EA64,$B33C953628015148,$B39499D36B50E868,$9F0AD56B6A521173
  Data.q $F6A710640A868687,$37701FF40B7257D5,$32571EDC1D2E3D7C,$765C0030300F83F3,$5D869D392A853676
  Data.q $CA4926121B0D7C11,$D90D085C46449798,$D65A5A502DFF7F76,$FDFCDB6161D969B4,$1731B1B5CB55AB73
  Data.q $2C3472665C34709B,$732599CCC166791E,$F349B87AF4EA0C34,$190221212126C7F7,$474E8FBE04C26134
  Data.q $28C5715BE026A05B,$4CCCCC8888B8394E,$1A6DB6DB6E04A7CC,$AE58872089663276,$4B0464520692011C
  Data.q $14F8322CE4307A13,$6757C22A36EBE148,$BD586FA7A7A46464,$A5FAFDE969B4C37A,$9D8666B3519369B7
  Data.q $CA67778D1C26C51D,$65B2B47726C41493,$323214663368EC4B,$EDF6FB49B01D0EB6,$B77C51A8D4683205
  Data.q $6EF86EC846E4A552,$7C3E1B83852C375C,$1E04CE3A580D86C3,$474C876256EB75B0,$9D98271F12B310EC
  Data.q $250FD1A4A1C85C4D,$61062191488C892F,$AD908BC4A39B945B,$C69875BADD7EBF5F,$668FD3424E625A31
  Data.q $5DF6FB2BC9E4E56C,$DA57B5DAAACDA6D9,$2CF4F3470B4AE3DB,$37D3CB87C341A399,$FDFDFC4D8DBF6F61
  Data.q $BBE33ECFB3E83205,$5948B6EC952D77C9,$DAC46237071EAE01,$064E009C6EB16BB5,$D4EFC8E990EC4AD1
  Data.q $08E2298BC5C138F8,$14925FE923E8C68D,$4CCBA74DB61E990C,$5B204CC170BC954D,$626A0B7A18ED12B9
  Data.q $BF1F8E24242567B9,$87CFDBED05DF6FA0,$92FAB4244A77C06B,$D569361EF7BDB191,$8030180D064095AA
  Data.q $0BA8EDEA0BC2F6EF,$68B172C70F86E011,$0876201701A71EAC,$D2704E3E353BF258,$5B8D31A71190B024
  Data.q $7776CC7D432A4C71,$2929641A5E48B7C7,$26B1343213903429,$8B8B859C3C94323A,$69FCFE3E542351A1
  Data.q $0ADFA93991F154EA,$8DC6E35609E53637,$B77C6EB75BA83205,$E0E382529B34552A,$757ABD5DE5C08C46
  Data.q $FC1D9A9D391A5A5A,$1090381C138F8D4E,$D0C52008AC68EF90,$5E6A96CB736DA846,$0C321005864246F8
  Data.q $91DD37EFA89518E4,$A6086E1739A8AC55,$30B08681810CF57A,$D263620909072BFE,$71B8DB57B768AF2B
  Data.q $F419022A954AA4D8,$13CD4CDDF06F1BC6,$B8700A1614545C02,$D8189C193874E4D4,$F0413E11DF22CC51
  Data.q $24C68A09FCE9B7ED,$89A8645CF442941D,$5C245220F47BD2D2,$4D6268644997B52A,$C966CACA67336477
  Data.q $7357F2EB750C1C1C,$96EE66C2BF90FC3F,$8484DCEE75B50C24,$7F94A18E0FBF2284,$370718AD6CD7F619
  Data.q $6345814101C22874,$3B83B01F3874E4E9,$E081F791EB80A150,$D0D17240893F3F26,$CE8640F74305B741
  Data.q $48B3C8A351DADA4B,$85D3323532E51792,$A56F1429CD20D072,$FCF186C32C87F34B,$FDCF22D56AACD685
  Data.q $154EA7535AABF8DC,$20EC072DE81548BC,$0588E1E1896A2BB7,$C8EC96A5C62B15AC,$465F791F1217E0EF
  Data.q $D5A0D1260A6AC6E3,$5B5081A18547A182,$C649B5C3E380C1AA,$E8CC89092606CCBC,$D4AFB14F4F318A14
  Data.q $6FBFEF16B40679BC,$8B8B8869FCC5F5F0,$2E9D3A48BC148C8C,$8F6A9FA7C32CD676,$5B5C44B1F7FDED25
  Data.q $A3B1069C3A725F64,$C3D0413E03D72598,$29F0DA8586A7CD03,$BEDAA0FD0C16AD0C,$521E5C21C1C17176
  Data.q $17F59A3A10917809,$1183829CD187746B,$C5F4FFA8DF8CDDA4,$C8690FC6968BF917,$6EB18AC56B056E94
  Data.q $C207707604A70EC9,$E82E2E698207DE47,$0C11F464221A613C,$1A52DAA0FD0C3D0D,$9601015F08230235
  Data.q $551C862BBDF1579A,$B9482C63C1AD69E3,$CBCF4205449BAA0C,$CC0B448C8E794677,$4849F72AA13AA9EB
  Data.q $50147AE93D38761A,$EBF41BE61D9DA09C,$006C309FFD4380D2,$38C1C1E5B1A83343,$E2F1F045F0913032
  Data.q $95B65CA7BD0A4BFD,$1637762B1B1F6486,$952A04E50CB95542,$85362C7F1FFED3AA,$B911A905C5E74FA6
  Data.q $D9240B0FC557D5F0,$6FBC1F120BE0C4E1,$C2C630F1682592E5,$66C3047D1B199330,$881C0D25908730D2
  Data.q $48BCB59059E09323,$5359AB4AC3891888,$178D8C1128526BEC,$4FEC2CD8CF4A8A9C,$33359B0170B1882D
  Data.q $839B5516DBC1E8F4,$7C1F0817C159C1F3,$79878B478F8C1384,$D806D19CC7118610,$3FA388A653896352
  Data.q $F7331AC44D40809F,$829EB189D9091136,$C595CAFF61FA9193,$3B3877E572211AA6,$1454537F997E5E1B
  Data.q $1383BC1F088A224F,$81716C1E2D0B359C,$A66D39FC9B55A461,$14E7C0744E4E45B6,$7E33225075BD1A6A
  Data.q $434DB0351AAD5995,$32E47F60AF48C901,$6FEA84F42C66D7BA,$43D1A28383534322,$4D27F37C023E2B68
  Data.q $2342D8A05B078B42,$9D4622B368C39FA3,$2C2BB48FA3EB73E3,$C60846105ADCD0D6,$2AD8A78FF6663266
  Data.q $A4683B1777BA1B1F,$C70FE797CAC62F20,$1536EFE1D4EBC550,$D343F934AD231CFC,$ED1F1F23CF3B2AA6
  Data.q $2B50D15FE3358B01,$A8CC8410F4DB0424,$A341D8B6BB528E3B,$ABA305997C8B2D96,$118FE68E886F1F17
  Data.q $0E0656DAB79D7F5F,$3DAA0DBCA5B9E59C,$296A40EBFC66B160,$354663C0B6A5387F,$7E6C7CC9A9041470
  Data.q $0321633F5A1AD072,$6B68FA020FCE1F0E,$94E7E4865535DDCC,$D21173999CDD2E85,$8BEBF29266D8D1E8
  Data.q $E0A6B2658E1468C5,$5FEBFD82CFBFA89A,$1DBF87339A0B1762,$C91013AF7F2BB5D6,$A1CF06C450979513
  Data.q $AD0C6B0CB22B5ED7,$804FCC62DFA10595,$ABC62CE0135E28B1,$35992D2DB7544FC7,$D9EF8D444F2234D4
  Data.q $204B9A5058B3BF93,$0D962566AFEA2784,$B6B60DB422F85BDB,$1BC1DEAFEAB31833,$D59D8A070388E0C7
  Data.q $4BED8ABABAD732B2,$487AE011C4DD6EAA,$30C779DE1B9BCD28,$280C076577558864,$636DF5FEA695805C
  Data.q $AC5414DE6D876BB5,$F28CBB64D11C3350,$7CFC94867356FEAA,$FFB7E0542A7050B2,$E2B1D8CE2DE0743A
  Data.q $D2640EBC2CB54FC5,$6B1AFB164F266170,$049CC61CC59C6CF6,$FF04030139842B12,$D9E9669B4D1A03CB
  Data.q $46B2B3E313D43497,$3B3B3399439AB528,$5119C2273C6AB543,$2C6D9A27E2A6D004,$6D88EC7505A0921B
  Data.q $836E387AA468E04A,$461379596A10E206,$39E98908D6F82BF3,$91C51E5F5F327ADA,$345BA3FFE346BC91
  Data.q $85A1A3B2CC86F377,$5EFE79F3A50A5528,$40E241A0FA38C7D6,$D0CE6F5FD4BFE852,$620F6946A3549752
  Data.q $841C86163431A1BD,$79F5FAAFE467660B,$DB16B75A717795B6,$6B83BE8BBE929498,$5DCEEEEB1633CAB5
  Data.q $4C4257E6BC042D40,$B5F7FDEA928ABA1A,$150A5659E0D2B107,$683684691A13FD13,$0104E6AEAFCC1E0E
  Data.q $CA4D42D7F6B3A75A,$99A1E8DDEE326B1F,$4B22149907DCB365,$1ACB777D4D2B1073,$0831A990D0AB3929
  Data.q $610D62019FCEAF56,$F93FE17C763BB361,$CD18306E9D7A4F4B,$8517C5F48FBE259A,$D65495BE30CE6EAE
  Data.q $4F379E1386C6B9CC,$0DD42CB9C11AC11C,$FFCE2269349A45C5,$98B869D96CB655B9,$487D72A8C7F09A4D
  Data.q $4E06F298D3EF9A13,$107340C18B9A8409,$94AC11C577DDEC6B,$F7C9D13D3CFAF785,$BB54C95A4EF669EC
  Data.q $475C7E40C0F8ED76,$581EF1FAFD9E1E47,$1633BE7966C67DFD,$676731AC11CD305A,$47B5FDFEAF59993E
  Data.q $1D1D1A9D4D438690,$DA6D76BAF9FE47FD,$70D010503BF21070,$8D0D20BC7DAB6DB6,$11CD41E44A26896E
  Data.q $4235BBB160E0B1AC,$0F0B6A411DAE69B3,$38A2B158A989898F,$5047AE9D3A443FE1,$EC050F1314399150
  Data.q $FC6396A12ABCE9F4,$08D520DF2CC29F94,$D7C70635AFBD4017,$69D0B425C20B5C24,$51E1E717171AED76
  Data.q $7D7AF495627ABFB2,$BA5D581BEA668C5F,$6FA1A5F97D493588,$E2616183E0895E5F,$4AD61E453908D687
  Data.q $7FBDCA56B7655E53,$FABCDE6F301016D3,$6B65C3FCF38BEBF5,$081AFD9550811B6B,$ABF80F83E9CCD1C2
  Data.q $73C2C8B6F13A9D28,$D565A0576F495233,$D4DCD1E6841659F4,$ABEAFF1F109DEDE1,$F9648493FC338AAF
  Data.q $B98B828D39382629,$FB90E2E17C7E35FC,$3E4F67B585E2552A,$B70A9349857A6803,$98658BE5BFACD2B4
  Data.q $FB3D9DCFEBF5674B,$B7AE3C11AC33E80F,$5896F5BDC7A15797,$E8685710BE8AB19F,$A19F3190219DD098
  Data.q $A1B2C0D9A36743FB,$B26954306A59592E,$7A6733399F1F34AD,$E2840BFAB3897979,$33BF071CA74B09D0
  Data.q $50B22BF3F2423BBE,$437704623C728673,$84C698FD5359AC70,$CCE2E3C97795B881,$B4DA663ADD6D1B3E
  Data.q $D52BF9F38BABD5EA,$95CA8F94B9D56AB2,$56B22C8E47315D33,$8FC127B621111673,$DD02C6F00603B310
  Data.q $6D705AF93D5B4235,$08AE44D164CC80B5,$D99B9BA472391C0C,$A72725EBA7F09ABF,$513977F076EFCAB1
  Data.q $49B45EAA62858D40,$C1B441E44FDDF62B,$1DCDEEF77531AEE8,$26A7C2D5FA17F8D3,$AEFF7FA131D1CCBD
  Data.q $A4B8507FF1FEBB5D,$E21C7D1DDB6B652A,$BD8BA04F134562B4,$3733BA14AD7D8BFD,$B30681E3911DC2B7
  Data.q $EE48C8EBD471A60A,$9BBBC98358AC28A1,$A351A2311CCEAB55,$727235077FDD6246,$A85382B38EEA869A
  Data.q $8550C8135730D385,$FBB597E5F6C211AD,$8330A80161781B1A,$C81F1BADDB3AF106,$3359BFD4AA54FDD1
  Data.q $2A3EFF72C5E5F297,$A7557EBAB887D7AD,$A6E73411C14F368E,$1FD79AC8D6B84C36,$C8E469CCF134B65B
  Data.q $BBFC6B13D7ABD5F1,$0268686FA5C5D5CA,$A796A2352B0A1C72,$9CCAECF908466B19,$B3445C2BBF2AECA1
  Data.q $FFEBD40BF3F6CF67,$217EBA661C8EFF31,$03F80D06BE88F121,$E3B17FDDB370F091,$F6F3CEDCC53E9F6A
  Data.q $0705A6B359A216D6,$67E3FD47FE7677B7,$59A5E97E75DF8205,$637E77773738AF28,$8B661C9DFB882823
  Data.q $EA190962121235BD,$C0B8CC4C46C9E68F,$587FAAFE1C1CD7C0,$B95AA552E9534FE4,$B2B9579DB5B10CB8
  Data.q $C3BE46CE42902CF0,$BA05D6F267DA8B54,$A1E757ABDAB70B07,$E075379BCE1F9F2D,$FF65FDAA7C7C77C0
  Data.q $EC7CC647265FCB0E,$AABFC8C50504FAEC,$2C447F00A08BA5D7,$F8C361B1DBC76BB7,$A349190BE5F2CE23
  Data.q $FC43065F5BF4A2DB,$D7D77A0D06A3399C,$F772FFF9F9D9D3D7,$F6572A97C338453F,$C608D6AB55EDF5F5
  Data.q $A000310C20B2D162,$101C130310080E25,$CBA8084C5B3A05A3,$341A0EE77D7C3F18,$6ADFFDFE93EA2A3E
  Data.q $F73FC38787BEAED7,$FF6F68E443FCBC5F,$9B4D9E9E9E8AC562,$BEAF0EF5FD7FF536,$F3D5EA025795FEDA
  Data.q $194D74EB5ABFD7FD,$121F7FED24FE54F3,$C5C15D757203FF63,$4900000000100242
  Data.b $45,$4E,$44,$AE,$42,$60,$82
  img1e:
EndDataSection
----

R Tape loading error, 0:1

Offline ninogenio

  • Pentium
  • *****
  • Posts: 1668
  • Karma: 133
    • View Profile
Re: Help with 3D cube code
« Reply #1 on: January 23, 2014 »
hi mate,

ideally what you want too do is assuming z=0 equals screen is draw the sprites closest too this point first. you will probably have too separate your drawing code from the transformations. then you will want too create an index buffer the same size as the number of spheres you have.

this index buffer will constantly change depending on what spheres are closest too the screen so initially your buffer might look like this.

Code: [Select]
SphereIndbuffer(0-4) = (1,2,3,4)

this buffer is handy too have as you can see here if we were too draw the spheres using this buffer.

Code: [Select]
for x=1 to 4
          DrawSphere(BallX(SphereIndBuffer(N)),BallY(SphereIndBuffer(N)),Rad)
Next

you can see that the spheres would be drawn in the order of 1,2,3,4 but if the Numbers in the SphereIndBuffer equaled 2,1,4,3 this would change the order the spheres were drawn in.
its really just a cheap and easy way we use too give us control over how the spheres are drawn.

now as too changing the order in the index buffer you would do something like this in the transforms, probably just after rotations. by checking if this z is higher than the previous z then swap them so SphereIndBuffer(N-1) = N and SphereIndBuffer(N) = N - 1 Else SphereIndBuffer(N) = N

and then later on, near you flipbuffer/clear screen you would reset your sphereIndBuffer to 1,2,3,4

by doing this when it comes time too draw they should draw from highest too lowest.

sorry its all pseudo but hopefully it gives you a rough idea as too how too go about things. as for making the points join.. lets get the z order thing working first then we will come back too this.  :cheers:
« Last Edit: January 23, 2014 by ninogenio »
Challenge Trophies Won:

Offline emook

  • C= 64
  • **
  • Posts: 94
  • Karma: 12
    • View Profile
Re: Help with 3D cube code
« Reply #2 on: January 23, 2014 »
Yes - I tried doing it with a structure array order(x,y,z) then trying to sort on the z offset, but the results wouldn't work.

Thats the way to go, thank :)
----

R Tape loading error, 0:1

Offline ninogenio

  • Pentium
  • *****
  • Posts: 1668
  • Karma: 133
    • View Profile
Re: Help with 3D cube code
« Reply #3 on: January 23, 2014 »
yep if you follow those instructions. this will work as you want.. obviously it was only pseudo so you will have too tweek it here and there slightly.

i know because i have faced this exact same thing many many times in the past and this method always fixed the problem for me.

remeber too split your rendering code out away from the transformations. its very important, as you always want too fully complete you z index list before doing any drawing. if you try and draw things at the same time as sorting it wont work.

ideally you would normally just use framebuffers that way you can use a proper zbuffer and completely occlude the hidden parts of the sprite. but at this point thats overkill
« Last Edit: January 23, 2014 by ninogenio »
Challenge Trophies Won: