NooNooPhysics import oder export physics problem

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Broken Arrow

Betreff: NooNooPhysics import oder export physics problem

BeitragMo, Sep 14, 2009 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich hab mir ein programm gesschrieben in dem man die Vertex und Edge zeichnen kann.
Damit man das speichern kann bediene ich mich der Exportphysics Funktion

in einem anderen Spiel bzw kleiner Anfang (reibungs Beispiel) versuche ich es zu laden
nur fliegt das geladene Entity einfach nach unten obwohl ich es im Editor auf locked gestellt habe
weiß jemand was ich falsch mache

Code Beispiel
Danke im vorraus

Code Editor
BlitzBasic: [AUSKLAPPEN]

.Start
Cls
Graphics 800, 600, 0, 2
SetBuffer BackBuffer()
Zeiter = CreateTimer(50) ;Timer initiallisieren
Include "NooNooPhysics.bb"




NNP_CreatePhysics 512, 1024, 1024 ;Physik initialisieren

NNP_SetGravity 0, 0.5 ;Gravitation setzen

Strecke.TEntity = NNP_CreateEntity( 1 ) ;Rampe erstellen
Strecke\Locked = True ;Befestigen und in die gleiche Kollisionsgruppe wie die Wände stecken



Global genauigkeit = 2 ;wie viele Pixel die MAus von der Vertice oder einem anderen Punkt entfernt sein muss; Edit Modus 1 => Vertex Zeichnen usw...
Global abstand ;klein Variable um den mit Sqr berechneten Abstand kurz aufzubewahren.
Global help = 1
Global Maustaste
Global Modus = 1
Global Mousehitcount
Global Mouse_old_X
Global Mouse_old_Y
Global Mouse_old_Fokus
Global Mouse_Fokus



Type ob

End Type

Type ob2

End Type


Repeat
Cls

Showhelp()
Maus()

If Modus = 1
If Maustaste=1
ob.TVertex = NNP_CreateVertex( Strecke, MouseX(), MouseY() ) ;Vertex erzeugen
EndIf
EndIf


For ob.TVertex = Each TVertex
abstand = Sqr((MouseX()-ob.TVertex\X#)^2+(MouseY()-ob.TVertex\Y#)^2)


If abstand < genauigkeit
Color 255,0,0
Oval ob.TVertex\X#-3,ob.TVertex\Y#-3,6,6,1
Color 255,255,255

If Modus = 2 ;EDGE erstellen

If Mousehitcount = 1 And Maustaste = 1
Mousehitcount = 0
Mouse_Fokus = Handle (ob.TVertex)
ob2.TEdge = NNP_CreateEdge(Strecke,Object.TVertex (Mouse_old_Fokus),Object.TVertex (Mouse_Fokus),1,1)
Mouse_Fokus = 0
Mouse_old_Fokus = 0
EndIf

If Maustaste = 1
Mousehitcount = 1
Mouse_old_X = MouseX()
Mouse_old_Y = MouseY()
Mouse_old_Fokus = Handle (ob.TVertex)
EndIf





EndIf
EndIf

If Modus = 4 And Maustaste=1
If abstand < genauigkeit

NNP_DeleteVertex( ob.TVertex)

EndIf
EndIf


Next


For ob.TVertex = Each TVertex

Next

If Modus = 5

NNP_ExportPhysics("strecke.dat")
RuntimeError "wurde als bab .dat im selben ordner gespeichert"

EndIf


NNP_UpdateForces ;Kräfte berechnen
NNP_UpdatePhysics ;Physik berechnen lassen
NNP_DebugRender DEBUG_EDGES + DEBUG_VERTICES ;Zeichnen

Flip
WaitTimer (Zeiter)
Until KeyDown (1)


Function Showhelp()

If KeyHit(59)
Select help
Case 0 help = 1
Case 1 help = 0

End Select
EndIf


If help = 1
Color 255,255,255
Text 20,20,"1 => Vertex Zeichnen"
Text 20,40,"2 => Edge Zeichnen"
Text 20,60,"3 => Edge Loeschen"
Text 20,80,"4 => Vertex Loeschen"
Text 20,100,"5 => Physic Speichern"
Text 20,140,"Derzeit Modus " + Modus
EndIf
End Function

Function Maus()
Maustaste=0


If MouseHit(1)
Maustaste = 1
EndIf

If MouseHit(2)
Maustaste=2
EndIf
If MouseHit(3)
Maustaste=3
EndIf

If KeyHit(2)
Modus = 1
EndIf

If KeyHit(3)
Modus = 2
EndIf

If KeyHit(4)
Modus = 3
EndIf

If KeyHit(5)
Modus = 4
EndIf

If KeyHit(6)
Modus = 5
EndIf

End Function



Code Beispiel
BlitzBasic: [AUSKLAPPEN]

Graphics3D 800, 600, 0, 2
SetBuffer BackBuffer()


Include "NooNooPhysics.bb"

NNP_CreatePhysics 512, 1024, 1024 ;Physik initialisieren
NNP_SetGravity 0, 0.5 ;Gravitation setzen
NNP_ImportPhysics("bab.dat")

Global scroll_x
Global scroll_y


Global Wheel.TEntity = NNP_CreateCircle( 400, 300, 60, 60, 1 )

CreateLevel()

Timer = CreateTimer( 60 )

While Not KeyHit( 1 )
Cls

dreh# = KeyDown( 205 ) - KeyDown( 203 )
NNP_TurnEntity Wheel,dreh#, Wheel\CenterX#, Wheel\CenterY#, False ;Das Rad wird um das Zentrum gedreht und so beschleunigt
scroll_x=1024/2-Wheel\CenterX#
scroll_y=768/2-Wheel\CenterY#


NNP_UpdateForces ;Kräfte berechnen
NNP_UpdatePhysics ;Physik berechnen lassen
NNP_DebugRender DEBUG_EDGES + DEBUG_VERTICES ;Zeichnen

Color 255, 255, 255
Text 400, 0, "Pfeiltasten links/rechts, um das Rad zu drehen", True
; RenderWorld
Flip 0
WaitTimer Timer
Wend
End

Function Sprite_positionieren(entity,x,y,angle#)
PositionEntity entity,((0)*2)-800+x,-((0)*2)+600+y,800
TurnEntity entity, 0, 0, angle#



End Function

Function CreateLevel()
WallBottom.TEntity = NNP_CreateBox( 400, 600, 800, 10, 1 ) ;Die Wände unten, links und rechts erstellen
WallLeft.TEntity = NNP_CreateBox( 0, 300, 10, 600, 1 )
WallRight.TEntity = NNP_CreateBox( 800, 300, 10, 600, 1 )

WallBottom\Locked = True ;Die Wände befestigen
WallLeft\Locked = True
WallRight\Locked = True

WallBottom\CollisionGroup = -1 ;Die Wände in die gleiche Gruppe stecken, damit die Kollision untereinander nicht berechnet wird
WallLeft\CollisionGroup = -1
WallRight\CollisionGroup = -1

Ramp.TEntity = NNP_CreateEntity( 1 ) ;Rampe erstellen
Ramp\Locked = True ;Befestigen und in die gleiche Kollisionsgruppe wie die Wände stecken
Ramp\CollisionGroup = -1

V1.TVertex = NNP_CreateVertex( Ramp, 300, 600 ) ;Die drei Vertices der Rampe erstellen
V2.TVertex = NNP_CreateVertex( Ramp, 600, 400 )
V3.TVertex = NNP_CreateVertex( Ramp, 800, 600 )

NNP_CreateEdge Ramp, V1, V2 ;...und sie verbinden
NNP_CreateEdge Ramp, V2, V3
NNP_CreateEdge Ramp, V3, V1
End Function

Function UserInput()


End Function


Menschen sind Menschshlich
und machen Feller

BladeRunner

Moderator

BeitragMo, Sep 14, 2009 21:17
Antworten mit Zitat
Benutzer-Profile anzeigen
~VERSCHOBEN~
Dieser Thread passte nicht in das Forum, in dem er ursprünglich gepostet wurde.

Zitat:
Menschen sind Menschshlich
und machen Feller
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Noobody

BeitragDi, Sep 15, 2009 12:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für den Hinweis, lag an einem Tippfehler in NNP_ExportPhysics (wäre mit SuperStrict nicht passiert Razz ).

Bug ist gefixt, die neue Version kann im Thread bezogen werden.
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group