[B3D] Animation stoppt nicht
Übersicht

![]() |
N0XBetreff: [B3D] Animation stoppt nicht |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo, liebe Community!
Ich habe eine Animation in 3D (mit ExtractAnimSeq) die in der Hauptschleife (in einer Funktion) gestartet wird sobald der Player läuft (KeyDown 17). Allerdings stoppt die Animation nicht wenn die Taste losgelassen wird! Wie kann ich das beheben ? Hier der entsprechende Code: [AUSKLAPPEN] Global player = LoadAnimMesh("mesh\dwarf1.b3d") Repeat If Not Animating(player) Animate player,1,.2,seq,1 EndIf PlayerBewegen() UpdateWorld() RenderWorld() Flip Cls Until KeyHit(1) End Function PlayerBewegen() If KeyDown(17) Then ExtractAnimSeq player,2,14 If AnimSeq(player) <> 14 Then ExtractAnimSeq player,2,14 ;MoveEntity player,0,0,1 EndIf EndIf End Function |
||
- Zuletzt bearbeitet von N0X am Fr, Jan 02, 2009 16:06, insgesamt einmal bearbeitet
![]() |
sheldon |
![]() Antworten mit Zitat ![]() |
---|---|---|
Neue Variable: JumpPossible
Wenn der Spieler mit dem Boden kollidiert dann JumpPossible = True Wenn man springen will checken ob JumpPossible = True. Wenn ja, dann: Springen und JumpPossible = False |
||
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm...
habs getestet hat aber irgendwie trotzdem nicht geklappt ... Hier mal der gesamte Code: [AUSKLAPPEN] Global level=1
Global sprung=0 Global unten=0 Global jumpcount=0 entity# = 0 Global jumpPossible=0 Global gx=2,gy=0,gz=0 ;--------------------------------------------------------------------------------------------| timer=CreateTimer(60) Graphics3D 1680,1050,32,2 ;--------------------------------------------------------------------------------------------| Global player = LoadMesh("mesh\cube.3ds") Global cam = CreateCamera(player) Global licht = CreateLight() Global land = LoadMesh("mesh\plane.3ds") Global testObjekt = LoadMesh("mesh\cube.3ds") Global bgDing = LoadImage("gfx\bgGegenstände.png") ;--------------------------------------------------------------------------------------------| PositionEntity cam,0,5,-10 PositionEntity land,0,-5,0 PositionEntity player,0,0,0 MaskImage bgDing,255,255,255 EntityType player,PLYTYPE EntityType land,TERTYPE EntityPickMode testObjekt,2,1 ;--------------------------------------------------------------------------------------------| Collisions PLYTYPE,TERTYPE,2,2 Repeat TranslateEntity player,0,-0.2,0 If EntityCollided(player,land) Then jumpPossible=1 PlayerBewegen() Sprung() UpdateWorld() RenderWorld() Pick() Flip Cls Until KeyHit(1) End ;--------------------------------------------------------------------------------------------| Function PlayerBewegen() If KeyDown(17) Then MoveEntity player,0,0,0.1 If KeyDown(31) Then MoveEntity player,0,0,-0.1 If KeyDown(30) Then TurnEntity player,0,1,0 If KeyDown(32) Then TurnEntity player,0,-1,0 If KeyDown(16) Then MoveEntity player,-0.1,0,0 If KeyDown(18) Then MoveEntity player,0.1,0,0 If KeyDown(200) Then TurnEntity cam,1,0,0 If KeyDown(208) Then TurnEntity cam,-1,0,0 If KeyHit(57) Then sprung=1 End Function Function Sprung() If sprung = 1 And jumpPossible=1 Then jumpcount = jumpcount + 1 TranslateEntity player, 0, 1, 0 If jumpcount = 10 Then sprung = 0 : jumpcount = 0 : jumpPossible=0 EndIf End Function Function Pick() CameraProject cam,EntityX(testObjekt),EntityY(testObjekt),EntityZ(testObjekt) If entity#=0 EntityColor testObjekt,255,255,255 EndIf pick = CameraPick (cam, MouseX(), MouseY()) If pick<>entity# If testObjekt Then EntityColor testObjekt,220,255,0 entity#=pick EndIf If MouseHit(1) And entity#=pick ;And ProjectedX() ;And ProjectedY() ShowClicked() EndIf End Function Function ShowClicked() DrawImage bgDing,ProjectedX()-60,ProjectedY()-120 DrawImage bgDing,ProjectedX()+60,ProjectedY()-120 Text ProjectedX()-40,ProjectedY()-120,"Test Objekt" End Function Mfg, N0X |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wo kontrollierst du denn die Variable JumpPossible?
EDIT: Ah gefunden in der Hauptschleife |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
hey, hab schon wieder n neues problem ^^
Diesmal mit der Animation eines Objektes: Ich hab einen Player der (per ExtractAnimSeq) animiert wird, wenn er geht. Allerdings stoppt die Animation nicht weil sie in der Hauptschleife gestartet wird ! Hier der Code ausschnitt Code: [AUSKLAPPEN] seq=1 Repeat If Not Animating(player) Animate player,1,.2,seq,1 EndIf PlayerBewegen() UpdateWorld() RenderWorld() until KeyHit(1) end freeentity player Function PlayerBewegen() If KeyDown(17) Then MoveEntity player,0,0,0.1 : ExtractAnimSeq player, 2, 14 If KeyDown(31) Then MoveEntity player,0,0,-0.1 If KeyDown(30) Then TurnEntity player,0,1,0 If KeyDown(32) Then TurnEntity player,0,-1,0 If KeyDown(16) Then MoveEntity player,-0.1,0,0 If KeyDown(18) Then MoveEntity player,0.1,0,0 If KeyDown(200) Then TurnEntity cam,1,0,0 If KeyDown(208) Then TurnEntity cam,-1,0,0 If KeyHit(57) Then Sprung() End Function Mfg, N0X P.S.: Bei dem Lerm ist es ja kaum möglich zu Coden ! |
||
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kann mir denn hier niemand helfen ?
Will ja nicht ungeduldig erscheinen, aber es ist etwas dringend ! Mfg, N0X |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
~GESCHLOSSEN~ Doppelposts zum Pushen sind nicht gestattet. Hätte dir wer helfen wollen/können hättest Du eine Antwort erhalten. |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group