Abprallen extrem
Übersicht

![]() |
Terror-StateBetreff: Abprallen extrem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Yeah endlich mal ein peppiger name xD Ich hab hier ein kleines proggi geschrieben, das an sich eigentlich sehr gut funktioniert.. eigentlich...
denn wenn die spielfigur das hindernis berührt, weiter will und dazu rotiert, schafft man es irgendwie, den körper über die linie zu drehen... erfordert ein klein wenig übung... ich kann ja bei bedarf mal ein screenshot machen... meine frage wär einfach wie ich das umgehn kann... hier mal der code BlitzBasic: [AUSKLAPPEN] Graphics 800,600,16,2 |
||
Ob friedlich oder militant, wichtig ist der Widerstand |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dazu zwei kleine Tipps:
1.) Wenn eine Kollision statt gefunden hat, dann berechne nicht die alte Position, sondern speichere sie noch vor der Änderung ab! Dann kopierst du also die Position zurrück, wo noch keine Kollision statt gefunden hatte. Dies ist deshlalb wichtig, da es zu Rundungsfehlern kommen kann, und manchmal halt zu deinen Ungunsten... 2.) Setze nach einer Kollision auch die Drehposition zurück. Allerdings werden die beiden Tipps auch nicht 100% aller Fälle abdecken können. Es wird aber schon wesentlich besser sein... Ansonsten, wenn du B3D haben solltest... Da gehts ganz einfach... |
||
![]() |
Terror-State |
![]() Antworten mit Zitat ![]() |
---|---|---|
he danke ich glaub das hilft mir wirklich weiter! danke schön!
und eigentlich könnte ich wirklich auf B3D umrüsten... |
||
Ob friedlich oder militant, wichtig ist der Widerstand |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier mal ein 'quick&dirty' Beispiel, für eine mögliche 3D-Anwendung. Die Kollision sollte eventuell noch optimiert werden.
Es simuliert ein Ballverlauf wie bei einem Flipper... Code: [AUSKLAPPEN] Graphics3D 800,800,0,2
SetBuffer BackBuffer() camera=CreateCamera() PositionEntity camera,0,0,-10 CameraProjMode camera,2 CameraZoom camera,.05 light=CreateLight() AmbientLight 120,0,0 RotateEntity light,40,0,0 LightColor light,255,255,0 object1=CreateSphere(24) RotateEntity object1,0,0,20 PositionEntity object1,8,-3,0 ScaleEntity object1,8,2,2 EntityType object1,2 object2=CreateSphere(24) RotateEntity object2,0,0,-20 PositionEntity object2,-8,-3,0 ScaleEntity object2,8,2,2 EntityType object2,2 object3=CreateCube() RotateEntity object3,0,0,26.5 PositionEntity object3,16,-17.5,0 ScaleEntity object3,4,.5,2 EntityType object3,2 object4=CreateCube() RotateEntity object4,0,0,-26.5 PositionEntity Object4,-16,-17.5,0 ScaleEntity object4,4,.5,2 EntityType object4,2 ball=CreateSphere(24) PositionEntity ball,1,0,0 EntityType ball,1 ScaleEntity ball,.7,.7,.7 EntityRadius ball,.7 Collisions 1,2,2,2 SeedRnd MilliSecs() xpa#=0 ypa#=0 xp#=0 yp#=0 xg#=0 yg#=Rnd(.5) While Not KeyHit(1) xpa=xp ypa=yp yg=yg-0.004 xg=xg/1.002 yg=yg/1.002 xp=xp+xg yp=yp+yg col=0 If xp<-20 xp=xp+40:col=1 If xp>+20 xp=xp-40:col=1 If yp<-20 yp=yp+40:col=1 If yp>+20 yp=yp-40:col=1 TurnEntity object1,0,0,-.08 TurnEntity object2,0,0,+.08 UpdateWorld If CountCollisions(ball)>0 Then nx#=CollisionNX(ball,1) ny#=CollisionNY(ball,1) w1#=ATan2(yg,xg) w2#=ATan2(ny,nx) w3#=180+(w2*2)-w1 speed#=Sqr(xg^2+yg^2) xg=Cos(w3)*speed/1.2 yg=Sin(w3)*speed/1.2 xp=xpa+Cos(w2)*.10 yp=ypa+Sin(w2)*.10 yg=yg-0.002 xg=xg/1.001 yg=yg/1.001 xp=xp+xg yp=yp+yg End If If col=1 HideEntity ball Else ShowEntity ball PositionEntity ball,xp,yp,0 RenderWorld Flip Wend End EDIT: Code überarbeitet. |
||
Liliput |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn man nun keine Schwerkraft haben möchte und eine konstante Ballgeschwindigkeit, was muß man dann ändern? Ich hab schon alles mögliche rumgefummelt, aber ich ralls mal wieder nicht *g* bei mir springt er irgendwie nur noch doller wenn ich etwas änder... | ||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Öhm ... nach 15 Sekunden Code anschauen würd ich mal spontan sagen ...
du nimmst die Zeilen Code: [AUSKLAPPEN] yg=yg-0.004
xg=xg/1.002 yg=yg/1.002 raus ![]() Oder? |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
Liliput |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() ![]() (geile smilies lol) |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group