[B3D] Physik 4WD Buggy in 2D
Übersicht

![]() |
hecticSieger des IS Talentwettbewerb 2006Betreff: [B3D] Physik 4WD Buggy in 2D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier ein Beispiel für ein physikalisch korrektes 2D-Game. Mit Cursor links/rechts kann man vor oder zurück fahren. Mit Cursor hoch/runter lässt sich das Fahrzeug nach hinten oder vorne kippen.
Beschreibung: Ein Type erstellt KnotenPunkte (KP) welche Positionen und Geschwindigkeit einzelner KnotenPunkte angibt. Ein weiteres Type erstellt VerKlinkungen (VK) welches Verbindungen zweier KP angibt. Dabei speichert das VK auch die Solllänge einzelner VK ab. Wird die Solllänge im Spielverlauf durch zB äussere Einwirkung beeinflusst, so wird mit Umpositionierungen und Geschwidigkeitsänderungen einzelner KP dem entgegengesetzt. Fertig. Hier das Typebeispiel. In den ersten Versuchen hatte ich die KP und VK in Dims gespeichert gehabt. Was nun besser ist, sei dahingestellt... Code: [AUSKLAPPEN] gfx=1280
gfy=960 ghx=gfx/2 ghy=gfy/2 Graphics3D gfx,gfy,0,1 SetBuffer BackBuffer() ;Kamera erstellen camera=CreateCamera() CameraClsColor camera,64,64,96 PositionEntity camera,0,0,-100 CameraRange camera,1,200 CameraProjMode camera,2 CameraZoom camera,.012 ;Licht erstellen light=CreateLight() RotateEntity light,40,-40,0 ;Meshes, a-Auto, l-Level Global amesh=CreateMesh() Global lmesh=CreateMesh() Global brush=CreateBrush() BrushFX brush,35;2 Global aface=CreateSurface(amesh,brush) Global lface=CreateSurface(lmesh,brush) EntityType lmesh,2 Collisions 1,2,2,2 dx#=0 dy#=0 wk#=0 Global xn%=0 Global yn%=0 Global xa%=0 Global ya%=0 Type kp Field xg# ;X-Speed Field yg# ;Y-Speed Field pv% ;Pivot End Type Type vk Field k1% ;KP-1 Field k2% ;KP-2 Field fd% ;Federung Field df% ;Dämpfung Field ln# ;Solllänge End Type ;Add-KP Restore KP While pv<>-1 Read dx,dy,pv If pv<>-1 new_kp(dx,dy,pv) Wend ;Add-VK Restore VK While df<>-1 Read v1,v2,fd,df If df<>-1 new_vk(v1,v2,fd,df) Wend ;Add-LV Restore LV While yn<>-1 Read xn,yn If yn<>-1 new_lv(xn,yn) Wend ;Karosserietriangles AddTriangle aface,0,6,2 AddTriangle aface,5,6,7 AddTriangle aface,5,2,6 AddTriangle aface,3,4,0 ;Radtriangles AddTriangle aface,8,11,10 AddTriangle aface,8,12,11 AddTriangle aface,8,13,12 AddTriangle aface,8,14,13 AddTriangle aface,8,15,14 AddTriangle aface,8,16,15 AddTriangle aface,8,17,16 AddTriangle aface,8,10,17 AddTriangle aface,9,19,18 AddTriangle aface,9,20,19 AddTriangle aface,9,21,20 AddTriangle aface,9,22,21 AddTriangle aface,9,23,22 AddTriangle aface,9,24,23 AddTriangle aface,9,25,24 AddTriangle aface,9,18,25 ;====-===-==-=-=--=---=----=---- --- -- - - - - - ;HAUPTSCHLEIFE While Not KeyHit(1) ;Extrahärte For w=1 To 8 ;VerKlinkungen For vk.vk=Each vk k1.kp=Object.kp(vk\k1) k2.kp=Object.kp(vk\k2) wk=(ATan2(EntityY(k2\pv)-EntityY(k1\pv),EntityX(k2\pv)-EntityX(k1\pv)))Mod 360 dx=((EntityX(k1\pv)+Cos(wk)*vk\ln)-EntityX(k2\pv)) dy=((EntityY(k1\pv)+Sin(wk)*vk\ln)-EntityY(k2\pv)) MoveEntity k1\pv,-dx/vk\fd,-dy/vk\fd,0 k1\xg=k1\xg-dx/vk\df k1\yg=k1\yg-dy/vk\df MoveEntity k2\pv,+dx/vk\fd,+dy/vk\fd,0 k2\xg=k2\xg+dx/vk\df k2\yg=k2\yg+dy/vk\df Next Next ;KnotenPunkte vertexcounter=0 For kp.kp=Each kp kp\yg=kp\yg-.005 MoveEntity kp\pv,kp\xg,kp\yg,-EntityZ(kp\pv) If CountCollisions(kp\pv)>0 kp\xg=0:kp\yg=0 VertexCoords aface,vertexcounter,EntityX(kp\pv),EntityY(kp\pv),0 vertexcounter=vertexcounter+1 Next ;Vorwärts If KeyDown(203) For q=0 To 7 Step 2 k1.kp=Object.kp(12+q) k2.kp=Object.kp(11+q) k3.kp=Object.kp(20+q) k4.kp=Object.kp(19+q) k1\xg=k1\xg+(EntityY(k2\pv)-EntityY(k1\pv))/20 k1\yg=k1\yg-(EntityX(k2\pv)-EntityX(k1\pv))/20 k3\xg=k3\xg+(EntityY(k4\pv)-EntityY(k3\pv))/20 k3\yg=k3\yg-(EntityX(k4\pv)-EntityX(k3\pv))/20 Next End If ;Rückwärts If KeyDown(205) For q=0 To 7 Step 2 k1.kp=Object.kp(12+q) k2.kp=Object.kp(11+q) k3.kp=Object.kp(20+q) k4.kp=Object.kp(19+q) k1\xg=k1\xg-(EntityY(k2\pv)-EntityY(k1\pv))/24 k1\yg=k1\yg+(EntityX(k2\pv)-EntityX(k1\pv))/24 k3\xg=k3\xg-(EntityY(k4\pv)-EntityY(k3\pv))/24 k3\yg=k3\yg+(EntityX(k4\pv)-EntityX(k3\pv))/24 Next End If ;Kippen Hinten If KeyDown(200) k1.kp=Object.kp(9) k2.kp=Object.kp(10) k1\xg=k1\xg-(EntityY(k2\pv)-EntityY(k1\pv))/200 k1\yg=k1\yg+(EntityX(k2\pv)-EntityX(k1\pv))/200 k2\xg=k2\xg-(EntityY(k1\pv)-EntityY(k2\pv))/200 k2\yg=k2\yg+(EntityX(k1\pv)-EntityX(k2\pv))/200 End If ;Kippen Vorn If KeyDown(208) k1.kp=Object.kp(9) k2.kp=Object.kp(10) k1\xg=k1\xg+(EntityY(k2\pv)-EntityY(k1\pv))/200 k1\yg=k1\yg-(EntityX(k2\pv)-EntityX(k1\pv))/200 k2\xg=k2\xg+(EntityY(k1\pv)-EntityY(k2\pv))/200 k2\yg=k2\yg-(EntityX(k1\pv)-EntityX(k2\pv))/200 End If k1.kp=Object.kp(2) MoveEntity camera,(EntityX(k1\pv)-EntityX(camera))/30,(EntityY(k1\pv)-EntityY(camera))/20,0 UpdateWorld RenderWorld Flip Wend End ;====-===-==-=-=--=---=----=---- --- -- - - - - - ;KnotenPunkt erstellen Function new_kp(xp#,yp#,sw%) kp.kp=New kp If sw=0 kp\pv=CreatePivot() If sw=1 kp\pv=CreateSphere(8) PositionEntity kp\pv,xp,yp,0 EntityRadius kp\pv,sw+.1 EntityType kp\pv,1 ;Vertexspezial f1=120-sw*120 f2=140-sw*140 v0=AddVertex(aface,0,0,0) VertexColor aface,v0,f1,f1,f2,1 Return Handle(kp) End Function ;VerKlinkung erstellen Function new_vk(k1%,k2%,fd%,df%) p1.kp=Object.kp(k1) p2.kp=Object.kp(k2) vk.vk=New vk vk\k1=k1 vk\k2=k2 If fd<1 fd=1 If df<1 df=1 vk\fd=(fd+1)^2 vk\df=(df+1)^2 vk\ln=EntityDistance(p1\pv,p2\pv) End Function ;LeVeldaten erstellen Function new_lv(xn,yn) xn=-(xn*2)+60 yn=-(yn*2)+30 v0=AddVertex(lface,xa,ya,-20) v1=AddVertex(lface,xn,yn,-20) v2=AddVertex(lface,xn,yn-80,-20) v3=AddVertex(lface,xa,ya-80,-20) w0=AddVertex(lface,xa,ya,20) w1=AddVertex(lface,xn,yn,20) VertexColor lface,v0,240,200,120,1 VertexColor lface,v1,240,200,120,1 VertexColor lface,v2,120,100,60,0 VertexColor lface,v3,120,100,60,0 VertexColor lface,w0,0,0,0,1 VertexColor lface,w1,0,0,0,1 AddTriangle lface,v0,v1,w1 AddTriangle lface,w1,w0,v0 AddTriangle lface,v1,v0,v3 AddTriangle lface,v3,v2,v1 ;v0=AddVertex(lface,xn+1,yn+1,0) ;v1=AddVertex(lface,xn,yn-1,0) ;v2=AddVertex(lface,xn-1,yn+1,0) ;AddTriangle lface,v0,v1,v2 xa=xn ya=yn End Function .KP ;Positionierung der KnotenPunkte;X,Y,0/1-(un)sichtbar, Data -8,-1,0, 0,-1,0, 8,-1,0, -9,5,0, 0,6,0 ;01-05, Karosserie Data 9,5,0, 0,8,0, 7,8,0, -6,0,0, 6,0,0 ;06-10, Karosserie +Achsen Data -2.538,0.0,1, -3.552,2.448,1, -6.0,3.462,1, -8.448,2.448,1 ;11-14, Vorderrad Data -9.462,-0.0,1, -8.448,-2.448,1, -6.0,-3.462,1, -3.552,-2.448,1 ;15-18, Vorderrad Data 9.462,0.0,1, 8.448,2.448,1, 6.0,3.462,1, 3.552,2.448,1 ;19-22, Hinterrad Data 2.538,0.0,1, 3.552,-2.448,1, 6.0,-3.462,1, 8.448,-2.448,1 ;23-26, Hinterrad Data 0,0,-1 ;KP-Ende .VK ;Verweise der VerKlinkungen;Vom KP,Zum KP,Federung,Dämpfung, Data 01,02,1,1, 02,03,1,1, 04,05,1,1, 05,06,1,1, 07,08,1,1, 01,04,1,1 ;Karosserie Data 02,05,1,1, 03,06,1,1, 02,07,1,1, 03,08,1,1, 01,05,1,1, 03,05,1,1 ;Karosserie Data 01,07,1,1, 03,07,1,1, 02,04,1,1, 02,06,1,1, 04,07,1,1, 06,07,1,1 ;Karosserie Data 02,08,1,1, 05,07,1,1, 01,06,1,1, 03,04,1,1, 01,08,1,1, 06,08,1,1 ;Karosserie Data 11,12,1,1, 12,13,1,1, 13,14,1,1, 14,15,1,1 ;Vorderrad Umfang Data 15,16,1,1, 16,17,1,1, 17,18,1,1, 18,11,1,1 ;Vorderrad Umfang Data 09,11,1,1, 09,12,1,1, 09,13,1,1, 09,14,1,1 ;Vorderrad Speichen Data 09,15,1,1, 09,16,1,1, 09,17,1,1, 09,18,1,1 ;Vorderrad Speichen Data 11,14,1,1, 14,17,1,1, 17,12,1,1, 12,15,1,1 ;Vorderrad Stabilität Data 15,18,1,1, 18,13,1,1, 13,16,1,1, 16,11,1,1 ;Vorderrad Stabilität Data 19,20,1,1, 20,21,1,1, 21,22,1,1, 22,23,1,1 ;Hinterrad Umfang Data 23,24,1,1, 24,25,1,1, 25,26,1,1, 26,19,1,1 ;Hinterrad Umfang Data 10,19,1,1, 10,20,1,1, 10,21,1,1, 10,22,1,1 ;Hinterrad Speichen Data 10,23,1,1, 10,24,1,1, 10,25,1,1, 10,26,1,1 ;Hinterrad Speichen Data 19,22,1,1, 22,25,1,1, 25,20,1,1, 20,23,1,1 ;Hinterrad Stabilität Data 23,26,1,1, 26,21,1,1, 21,24,1,1, 24,19,1,1 ;Hinterrad Stabilität ;Data 07,09,4,6, 07,10,4,6, 09,04,4,6, 10,06,4,6 ;Stossdämpfer Data 07,09,6,9, 07,10,6,9, 09,04,6,9, 10,06,6,9 ;Stossdämpfer Data 03,09,1,1, 01,10,1,1, 0,0,0,-1 ;Radaufhängung, VK-Ende .LV ;Leveldaten Data 0000,00,0024,00,0024,24,0068,24,0071,23,0074,24,0077,23,0080,24 Data 0083,23,0086,24,0089,23,0092,25,0095,24,0098,26,0101,25,0104,27 Data 0107,26,0110,27,0113,26,0116,27,0119,26,0122,27,0125,26,0128,27 Data 0149,27,0168,26,0179,25,0187,24,0194,23,0200,22,0205,21,0209,20 Data 0214,21,0219,23,0224,26,0229,30,0251,52,0256,56,0261,59,0266,61 Data 0271,62,0276,62,0281,61,0286,59,0291,56,0296,52,0301,47,0304,45 Data 0307,44,0310,46,0313,47,0342,47,0345,46,0349,48,0352,47,0355,47 Data 0357,46,0359,47,0363,46,0365,47,0368,46,0370,45,0373,46,0375,45 Data 0379,47,0380,46,0383,46,0385,45,0388,46,0391,48,0394,47,0396,45 Data 0399,45,0401,47,0404,49,0407,48,0411,49,0414,47,0432,47,0435,46 Data 0439,42,0442,41,0448,41,0451,40,0455,36,0458,35,0464,35,0467,34 Data 0471,30,0474,29,0480,29,0483,28,0487,24,0490,23,0509,23,0513,22 Data 0517,20,0521,24,0525,29,0529,35,0533,40,0537,44,0541,47,0545,49 Data 0549,50,0553,50,0559,56,0565,61,0571,65,0577,68,0583,70,0589,71 Data 0595,71,0601,70,0607,68,0613,65,0619,61,0625,56,0631,50,0634,49 Data 0657,49,0659,48,0661,44,0663,43,0667,43,0669,42,0671,38,0673,37 Data 0677,37,0679,36,0681,32,0683,31,0687,31,0689,32,0691,36,0693,37 Data 0697,37,0699,38,0701,42,0703,43,0707,43,0709,44,0711,48,0713,49 Data 0730,49,0733,50,0741,58,0744,59,0752,67,0755,68,0763,76,0766,77 Data 0769,77,0772,76,0780,68,0783,67,0791,59,0794,58,0812,58,0814,57 Data 0820,57,0822,56,0834,56,0836,55,0841,55,0843,54,0846,54,0847,53 Data 0849,53,0851,52,0853,52,0855,50,0857,50,0859,48,0862,48,0863,46 Data 0866,46,0868,44,0870,44,0872,42,0874,42,0876,39,0878,39,0879,37 Data 0881,36,0882,34,0886,32,0887,30,0890,29,0891,27,0894,27,0895,25 Data 0897,24,0898,22,0902,21,0903,19,0906,19,0908,17,0911,17,0913,15 Data 0917,15,0919,13,0923,13,0925,12,0929,12,0932,11,0939,11,0943,10 Data 0978,10,0980,12,1000,13,1020,15,1040,18,1060,22,1080,27,1100,33 Data 1120,40,1140,48,1142,50,1145,62,1147,69,1149,75,1151,80,1153,84 Data 1155,87,1157,89,1159,90,1161,90,1163,89,1165,87,1167,84,1169,80 Data 1171,79,1173,79,1175,80,1180,85,1185,89,1190,92,1195,94,1200,95 Data 1205,95,1210,94,1215,92,1220,89,1262,56,1272,49,1282,43,1292,38 Data 1302,34,1312,31,1322,29,1332,28,1342,28,1352,29,1355,35,1358,40 Data 1361,44,1364,47,1367,49,1370,50,1373,50,1376,49,1379,47,1381,47 Data 1384,49,1387,52,1390,56,1396,66,1399,70,1402,73,1405,75,1408,76 Data 1414,76,1420,75,1426,73,1432,70,1438,66,1441,63,1444,59,1447,54 Data 1450,48,1453,43,1456,39,1459,36,1462,34,1465,33,1490,33,1492,32 Data 1495,26,1497,25,1504,25,1505,26,1508,26,1509,25,1510,25,1511,26 Data 1514,26,1515,25,1516,25,1517,26,1520,26,1521,25,1522,25,1523,26 Data 1526,26,1527,25,1530,25,1531,26,1532,26,1533,25,1536,25,1537,26 Data 1538,26,1539,25,1542,25,1543,26,1546,26,1547,25,1548,25,1549,26 Data 1552,26,1553,25,1554,25,1555,26,1558,26,1559,25,1560,25,1561,26 Data 1564,26,1565,25,1572,25,1574,26,1577,32,1579,33,1583,33,1585,32 Data 1587,28,1589,27,1626,27,1629,28,1632,28,1635,27,1638,25,1641,24 Data 1644,24,1647,25,1650,27,1653,30,1656,32,1659,33,1662,33,1665,32 Data 1668,30,1671,27,1674,23,1677,20,1680,18,1683,17,1686,17,1689,18 Data 1692,20,1695,23,1698,27,1701,30,1704,32,1707,33,1710,33,1713,32 Data 1716,30,1719,27,1722,25,1725,24,1728,24,1731,25,1734,27,1737,28 Data 1740,28,1743,27,1756,27,1757,29,1760,29,1761,31,1764,31,1765,33 Data 1768,33,1769,35,1772,35,1773,37,1776,37,1777,39,1780,39,1781,41 Data 1784,41,1785,43,1789,43,1790,45,1795,45,1796,47,1802,47,1803,46 Data 1804,46,1805,47,1811,47,1812,45,1817,45,1818,43,1822,43,1823,41 Data 1826,41,1827,39,1830,39,1831,37,1834,37,1835,35,1838,35,1839,33 Data 1842,33,1843,31,1846,31,1847,29,1850,29,1851,27,1872,27,1872,24 Data 1900,24,1900,00,1924,00,0000,-1 In den nächsten tagen stelle ich mal das ganze noch in 3D vor. Das 3D-Game ist fertig, ich möchte aber dazu noch ein wenig mehr Beschreibung zu liefern. |
||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schick Schick. Wenn das in 3D gut klappt, und dann noch eine anständige Physik für die seiten Kollisionen, dann kannst du trackmania nachproggen ![]() MfG Blitzcoder |
||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
![]() |
aMulSieger des Minimalist Compo 01/13 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ziemlich gut! Sowas muss man erstmal können!
(ich kanns (noch) nicht) |
||
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans! Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver |
![]() |
PSY |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sieht sehr gut aus!
Macht richtig Spass zu heizen ![]() Keep it up, psy |
||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ihr müsst den Code etwas anpassen. Ich hab das Auto etwas "getuned".
z.B. einfach mal bei ;Vorwärts statt /20 einfach 4x /3 schreiben. Dann geht er ab. Nochwas, das Autu fällt zu langsam |
||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Gefällt mir auch sehr gut! Ist das nur bei diesem "Polygramm" möglich oder ist jede Form möglich zu benutzen? | ||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
PSY |
![]() Antworten mit Zitat ![]() |
---|---|---|
man kann jede Form benutzen, man muss halt die Knotenpunkte anpassen...behaupte ich jetzt mal so ![]() |
||
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sehr schön. Richtige Grafiken, paar Level und eine Zeitmessung und fertig ist ein tolles Spiel ![]() Ein recht berühmter Vertreter dieser Art Spiel wäre hier: http://www.elastomania.com/ |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sorry wegen verspäteter Antwort, hab zZ kein Internet zuhause, so muß ich mich des der Arbeit begnügen.
@BlitzCoder, die Kollision funktioniert bei 3D wunderbar. Ein manko gibt es lediglich, daß nur Knotenpunkte eine Kollision hervorrufen können. Das bedeutet, daß eine Fahrerkabine mit wenigen Knotenpunkten auch nur diese zur Kollision hat. Die Physik in 3D beläuft sich zB auf folgende: - Massenträgheit (Energieerhaltungssatz) - Fliehkraft - Kreiselstabilität etc... @aMul, @PSY, danke! Freud mich sowas zu hören. ![]() @StepTiger, es sind alle zu erträumenden Formen möglich. Mit Leichtigkeit liesse sich an diesem Fahrzeug zB auch ein Anhänger ranbabsen, der sich auch physikalisch korrekt verhält. Oder auch andere Fahrzeuge mit mehrrädrigem Antrieb. Fahrzeuge mit mehreren Kabinen (Raupenähnlich), wo jede kabine ihre Federung und Maximalkippbelastung beibehält... |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist schön anzusehen, meinen vollen Respekt. Bin jetzt eine halbe Stunde rumgefahren und habe keine Möglichkeit ausgelassen die Federung bis unters Dach zu drücken ![]() ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Hubsi, die Federung lässt sich auf modifizieren. ![]() In den zweiten Datazeilenblock gibt es eine Zeile die so aussieht: Code: [AUSKLAPPEN] Data 07,09,6,9, 07,10,6,9, 09,04,6,9, 10,06,6,9 ;Stossdämpfer
die xx,xx,6,9 geben ab wie sich jeweils die Stossdämpfer verhalten sollen. Die dritte Zahl 6 gibt die Federstärke an Die vierte Zahl 9 gibt den Dämpfungsgrad an Viel Spaß |
||
![]() |
TheMatrix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Geiles Teil. Top Spitze.
Bringt richtig Bock das Teil bis zum Durchdrehen zu zwingen. Mach ein paar Levels, Upgrades, Gegner. Und fertig is das Game. Ich wär der erste ders mir sofort loaden würde ![]() Weiter so! |
||
°_° °.° °~° °v° .. -.- |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich war von dem Spiel jetzt so fasziniert, dass ich einen Leveleditor dafür geschrieben habe.
Also macht mal fleißig Level! ^^ Code: [AUSKLAPPEN] Graphics 1024,768,0,2
SetBuffer BackBuffer() Type knot Field x,y End Type xplus=0 yplus=0 ox=0 oy=0 speed#=1 While Not KeyDown(1) Cls xplus=xplus+(KeyDown(205)-KeyDown(203))*speed# yplus=yplus+(KeyDown(208)-KeyDown(200))*speed# speed#=speed#+(KeyDown(205) Or KeyDown(203) Or KeyDown(200) Or KeyDown(208))*.1 If ((KeyDown(205) Xor KeyDown(203)) Or (KeyDown(200) Xor KeyDown(208)))=0 Then speed#=1 a.knot=First knot While a.knot<>Null ox=a\x oy=a\y a.knot=After a If a<>Null x1=GraphicsWidth()-ox*(GraphicsWidth()/100)-xplus y1=oy*GraphicsHeight()/50-yplus x2=GraphicsWidth()-a\x*(GraphicsWidth()/100)-xplus y2=a\y*GraphicsHeight()/50-yplus Line x1,y1,x2,y2 Line x1,y1,x1,GraphicsWidth() EndIf Wend If MouseHit(1) r.knot=New knot r\x=(GraphicsWidth()-MouseX()-xplus)/(GraphicsWidth()/100) r\y=(MouseY()+yplus)*50/GraphicsHeight() EndIf If MouseHit(2) r.knot=Last knot Delete r EndIf If KeyHit(57) Then LoadLevel("datas.txt") If KeyHit(211) For a.knot=Each knot Delete a Next EndIf If KeyHit(28) SaveThem("datas.txt") EndIf Flip Wend End Function LoadLevel(path$) For r.knot=Each knot Delete r Next file=OpenFile(path$) While Not Eof(file) d$=ReadLine(file) d$=Right(d$,Len(d$)-Instr(d$," ")) While Instr(d$,",") x=Left(d$,Instr(d$,",")-1) d$=Right$(d$,Len(d$)-Instr(d$,",")) If Instr(d$,",") y=Left(d$,Instr(d$,",")) Else y=d$ EndIf d$=Right$(d$,Len(d$)-Instr(d$,",")) If x<>-1 And y<>-1 r.knot=New knot r\x=x r\y=y EndIf Wend Wend CloseFile file End Function Function SaveThem(file$) num=0 tHandle=WriteFile(file$) tstr$="Data " For sa.knot=Each knot If num>0 Then tstr$=tstr$+"," xs$=format$(sa\x) ys$=Str$(sa\y) tstr$=tstr$+xs$+","+ys$ num=num+1 If num>7 WriteLine tHandle,tstr$ tstr$="Data " num=0 EndIf Next If num>0 tstr$=tstr$+",-1,-1" Else tstr$=tstr$+"-1,-1" EndIf WriteLine tHandle,tstr$ CloseFile tHandle End Function Function Format$(zahl,nums=4,fill$="0") lens=Len(Str$(zahl)) newstr$="" If nums>lens For x=1 To nums-lens newstr$=newstr$+fill$ Next newstr$=newstr$+Str$(zahl) Else newstr$=Str$(zahl) EndIf Return newstr$ End Function ich denke mal,hectic hat seins auch mit leveleditor gemacht, oder? |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
- Zuletzt bearbeitet von StepTiger am Sa, Okt 14, 2006 17:10, insgesamt einmal bearbeitet
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Manche machen so was ins Showcase. Für dich ist es nur Codearchiv. ![]() Tolle Leistung ![]() |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@StepTiger, schön das es dir gefällt. Dein Editor ist übrigens auch gut. Natürlich habe ich auch einen zur Levelerstellung programmiert (was in der ersten Programmausführung vom Buggyspiel nicht der Fall war). Hätte ich mal gleich veröffentlichen können. ![]() @All, damit keine Langeweile aufkommt, habe ich mal zwei kleine Levels erstellt. Es empfiehlt sich die Stoßdämpfer zu optimieren: ursprünglich: Code: [AUSKLAPPEN] Data 07,09,6,9, 07,10,6,9, 09,04,6,9, 10,06,6,9 ;Stossdämpfer
umändern zu: Code: [AUSKLAPPEN] Data 07,09,4,9, 07,10,4,9, 09,04,4,9, 10,06,4,9 ;Stossdämpfer
Naiv erstellter Level: Code: [AUSKLAPPEN] .LV ;Leveldaten
Data 0000,00,0012,00,0012,24,0040,24,0050,23,0059,20,0066,15,0073,11 Data 0081,09,0090,09,0091,13,0093,17,0096,21,0101,24,0108,26,0117,27 Data 0128,27,0135,32,0141,38,0147,45,0151,52,0157,68,0160,75,0164,81 Data 0169,85,0174,88,0180,91,0188,93,0197,95,0208,96,0219,96,0228,95 Data 0234,92,0238,88,0241,83,0245,74,0250,62,0255,51,0260,42,0267,41 Data 0272,33,0278,24,0286,23,0292,17,0299,12,0307,09,0317,07,0327,06 Data 0337,06,0348,07,0352,11,0368,12,0371,18,0387,20,0389,24,0399,26 Data 0401,30,0416,33,0418,39,0437,43,0438,48,0446,50,0447,55,0455,58 Data 0457,64,0467,67,0469,72,0482,78,0484,83,0496,88,0507,91,0518,92 Data 0529,91,0539,87,0546,81,0552,74,0553,69,0558,62,0566,53,0571,52 Data 0575,46,0579,38,0583,29,0585,26,0588,24,0592,23,0596,23,0600,24 Data 0604,26,0609,30,0616,37,0626,48,0632,54,0636,57,0641,58,0647,58 Data 0660,55,0673,51,0685,46,0691,42,0696,37,0699,32,0702,25,0705,18 Data 0708,13,0711,09,0715,06,0720,04,0725,03,0730,03,0736,04,0742,06 Data 0750,10,0763,18,0777,28,0791,39,0801,46,0809,51,0815,54,0823,57 Data 0836,60,0858,64,0880,67,0883,66,0886,64,0889,61,0893,59,0898,59 Data 0902,60,0906,62,0910,64,0915,65,0920,64,0923,61,0925,57,0927,52 Data 0929,48,0932,44,0936,41,0941,39,0947,38,0949,42,0951,46,0954,51 Data 0957,54,0962,56,0967,56,0972,55,0976,53,0981,56,0986,60,0990,65 Data 0994,71,0998,76,1003,80,1008,83,1014,86,1022,89,1030,91,1033,90 Data 1035,88,1038,86,1042,85,1046,86,1049,88,1052,90,1055,92,1060,93 Data 1069,93,1082,92,1090,90,1098,86,1105,81,1110,75,1114,69,1117,67 Data 1121,66,1124,64,1127,61,1129,57,1131,52,1134,46,1138,41,1143,37 Data 1149,33,1151,34,1154,34,1157,32,1158,29,1159,27,1165,23,1173,19 Data 1181,16,1183,17,1186,17,1188,16,1189,14,1197,12,1205,11,1207,12 Data 1209,13,1212,13,1214,11,1216,10,1225,10,1235,11,1245,13,1255,16 Data 1265,20,1266,22,1268,24,1271,26,1274,27,1277,27,1284,32,1291,38 Data 1294,41,1297,43,1301,44,1304,44,1307,43,1309,41,1311,39,1314,38 Data 1317,39,1319,41,1321,43,1324,44,1327,43,1329,41,1332,39,1336,38 Data 1340,38,1342,37,1344,34,1345,31,1347,28,1349,26,1352,25,1356,25 Data 1360,26,1363,28,1366,31,1368,34,1370,37,1373,40,1377,43,1381,45 Data 1385,45,1390,44,1395,41,1399,38,1403,34,1405,31,1406,28,1407,25 Data 1409,22,1413,20,1418,19,1424,19,1430,20,1436,22,1442,25,1447,28 Data 1451,30,1456,31,1460,31,1464,30,1468,30,1472,32,1474,35,1475,39 Data 1477,43,1480,47,1484,50,1488,52,1493,53,1497,53,1501,52,1504,50 Data 1507,47,1509,44,1511,40,1513,35,1516,29,1520,23,1525,17,1531,11 Data 1533,10,1536,09,1540,09,1544,10,1549,12,1555,14,1562,16,1569,17 Data 1577,17,1584,16,1588,14,1590,12,1592,09,1594,07,1597,05,1601,04 Data 1606,04,1609,05,1611,07,1613,09,1616,11,1619,12,1622,12,1625,11 Data 1627,09,1629,07,1632,06,1635,06,1638,07,1641,09,1644,12,1647,16 Data 1650,21,1653,27,1656,34,1659,42,1662,49,1665,54,1668,58,1672,62 Data 1677,65,1683,68,1693,72,1705,76,1720,80,1725,81,1729,81,1732,80 Data 1735,78,1738,75,1741,71,1743,70,1745,70,1748,71,1752,73,1757,76 Data 1765,82,1771,86,1778,89,1785,91,1793,92,1801,92,1810,91,1819,89 Data 1823,87,1826,84,1828,81,1830,77,1832,72,1833,71,1835,70,1838,68 Data 1840,65,1843,59,1846,52,1847,50,1849,48,1851,47,1854,46,1857,45 Data 1860,43,1863,40,1866,36,1869,31,1871,28,1873,26,1876,24,1880,22 Data 1884,21,1888,21,1892,22,1896,24,1900,27,1904,31,1906,33,1908,34 Data 1910,34,1912,33,1915,30,1918,26,1921,21,1925,16,1927,14,1930,13 Data 1933,13,1936,14,1940,16,1945,19,1946,24,1952,28,1959,33,1960,38 Data 1966,43,1972,49,1973,56,1977,61,1982,66,1988,70,1994,73,2000,75 Data 2004,76,2008,76,2011,75,2013,73,2015,70,2017,66,2021,56,2023,51 Data 2025,47,2028,42,2032,37,2036,33,2041,29,2048,24,2055,20,2057,20 Data 2059,21,2060,23,2061,26,2063,29,2066,31,2071,33,2079,35,2088,36 Data 2089,38,2092,38,2093,36,2104,36,2107,35,2110,33,2112,31,2114,30 Data 2116,30,2118,31,2120,33,2123,35,2128,36,2135,36,2142,35,2148,33 Data 2153,30,2157,27,2160,25,2163,24,2192,24,2192,00,2206,00,0000,-1 Kleiner Spaßlevel: Code: [AUSKLAPPEN] .LV ;Leveldaten
Data 0000,00,0012,00,0012,24,0040,24,0045,25,0050,27,0055,30,0060,34 Data 0065,39,0070,45,0080,58,0085,64,0090,69,0095,73,0100,76,0105,78 Data 0110,79,0115,79,0120,78,0125,76,0130,73,0135,69,0140,64,0143,62 Data 0146,61,0158,61,0160,60,0162,58,0164,57,0171,57,0173,56,0175,54 Data 0177,53,0184,53,0186,52,0188,50,0190,49,0197,49,0199,50,0201,52 Data 0203,53,0217,53,0218,54,0222,54,0223,53,0227,53,0228,54,0232,54 Data 0233,53,0237,53,0238,54,0242,54,0243,53,0247,53,0248,54,0252,54 Data 0253,53,0257,53,0258,54,0262,54,0263,53,0281,53,0283,52,0285,48 Data 0287,47,0289,47,0291,46,0293,42,0295,41,0297,41,0299,40,0301,36 Data 0303,35,0305,35,0307,34,0309,30,0311,29,0313,29,0315,28,0317,24 Data 0319,23,0338,23,0340,24,0342,28,0344,29,0346,29,0348,30,0350,34 Data 0352,35,0354,35,0356,36,0358,40,0360,41,0365,41,0367,40,0369,36 Data 0371,35,0376,35,0378,36,0380,40,0382,41,0384,41,0386,42,0388,46 Data 0390,47,0392,47,0394,48,0396,52,0398,53,0420,53,0423,52,0426,50 Data 0429,47,0432,43,0435,38,0441,26,0444,21,0447,17,0450,14,0453,12 Data 0456,11,0458,13,0460,14,0475,14,0479,15,0483,17,0487,20,0491,24 Data 0495,29,0503,41,0507,46,0511,50,0515,53,0519,55,0523,56,0527,56 Data 0529,59,0531,61,0533,62,0546,62,0551,63,0556,65,0561,68,0566,72 Data 0571,77,0576,81,0581,84,0586,86,0591,87,0596,87,0601,86,0606,84 Data 0611,81,0616,77,0621,72,0626,66,0631,59,0636,51,0641,42,0651,22 Data 0655,15,0659,09,0663,04,0667,00,0676,00,0679,03,0682,00,0684,00 Data 0687,03,0690,00,0692,00,0695,03,0698,00,0700,00,0709,00,0714,05 Data 0719,09,0724,12,0729,14,0734,15,0751,15,0752,18,0765,18,0766,21 Data 0772,21,0773,24,0797,24,0798,27,0802,27,0803,30,0817,30,0818,33 Data 0833,33,0834,36,0842,36,0843,39,0853,39,0854,42,0872,42,0873,45 Data 0878,45,0879,48,0890,48,0891,51,0899,51,0900,54,0907,54,0908,57 Data 0911,57,0912,60,0921,60,0922,63,0929,63,0930,66,0948,66,0949,69 Data 0982,69,0988,68,0994,66,1000,63,1006,59,1012,54,1024,42,1030,37 Data 1036,33,1042,30,1048,28,1054,27,1070,27,1072,26,1073,24,1075,23 Data 1083,23,1085,24,1086,26,1088,27,1099,27,1101,28,1102,30,1104,31 Data 1116,31,1118,30,1120,25,1122,24,1150,24,1150,00,1164,00,0000,-1 |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab meinen code mal ein bissl verändert.
siehe oben ab nun: Enter - Speichern Space - Laden Linke Maustaste - Knotenpunkt setzen Rechte Maustaste - Letzten Knotenpunkt löschen |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
biggicekeyBetreff: Re: [B3D] Physik 4WD Buggy in 2D |
![]() Antworten mit Zitat ![]() |
---|---|---|
hectic hat Folgendes geschrieben: In den nächsten tagen stelle ich mal das ganze noch in 3D vor. Das 3D-Game ist fertig, ich möchte aber dazu noch ein wenig mehr Beschreibung zu liefern. wann sind denn die nächsten tage? oder hab ichs schon verpasst? find das auf jeden fall hammerlustig bringt fun da rumzuheizen |
||
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller Nothing more to register - you've cleaned us out![/size] |
![]() |
Te(Y)House |
![]() Antworten mit Zitat ![]() |
---|---|---|
wow!
Mach doch nen Game draus mit richtigen Grafiken!? Ich meine das wird locker Game des Monats! Wie kommt man bloss auf so geile Ideen? ^^ |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@biggicekey, ne verpasst hast du noch nichts. Die 3D-Version davon funktioniert ja bereits seit geraumer Zeit. Nur möchte ich es noch in Types umschreiben, bisher alles auf Dims verlegt und ganz schön blöd somit. Nur komme ich nich wirklich dazu, da ich jeden Tag beim rumheizen der 2D-Version bin. ![]() @Te(Y)House, ja wie kommt man darauf??? Wenn man ein Freund der Physik ist, hat man Spaß daran, sich mit sowas zu beschäftigen. ![]() Naja, aber auch das Buggy-Beispiel hat einen endscheidenden Nachteil der reelen Physik. Jeder Knotenpunkt hat eine Gewichtseinheit. Das bedeutet: Da die Reifen aus jeweils 9 Knotenpunkten (8 Umfang, 1 Achse) bestehen und das Chassis aus 8 Knotenpunkten, sind die Reifen mehr als doppelt so schwer die des restlichen Fahrzeugs. Das macht sich beim spielen u.a. auf folgende negative Eigenschaften bemerkbar: 1) Die Räder werden bei Bodenkontakt kaum eingedrückt, da das Fahrzeug ja kaum was wiegt! Jedoch stark in Schwankung gebracht wenn, das Fahrzeug Bodenkontakt hat und die Räder nur ihr Eigengewicht ausgleichen müssen. 2) Da der Schwerpunkt auf den Rädern liegt, kippt das Fahrzeug bei Steilfahrten erst viel zu spät nach hinten. Es kann eine Steigung von etwa 300% befahren! 3) Andere nicht so wichtige Nachteile, die aber nicht auf die Knotenpunktverteilung zurück zu führen sind. Ein erster Versuch das Knotenpunktproblem in den Griff zu bekommen, ist gescheitert. Es handelte sich aber um eine Umsetzung in 3D wo dann per Matritzen berechnet werden müsste. Das kann ich leider nicht. ![]() Ich bin übrigens bereits an einem solchem Spiel dran. Mit schöner Grafik etc. Problem hier ist aber, dass ich endlich mal ein richtigen Vektoreditor programmieren möchte, und nicht immer nur mal kurz auf ein bestimmtes Spiel zugeschnitten. So werde ich erst an dem Editor schreiben und dann wenn dieser fertig ist, mich an das Spiel weiter machen. Viel zum Spiel gehört ja nicht, wie man sieht. ![]() |
||
![]() |
Pdd |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich muss auch sagen: Ich bin begeistert! Das ding is Saugeil!! Macht richtig Spass damit rumzuheizen! Ich bin schon auf weiteres damit gespannt! | ||
Lieber Apfel als Birne. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group