[B3D] Animation stoppt nicht

Übersicht BlitzBasic Beginners-Corner

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

N0X

Betreff: [B3D] Animation stoppt nicht

BeitragMi, Dez 31, 2008 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Dez 31, 2008 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Dez 31, 2008 23:30
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Dez 31, 2008 23:37
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDo, Jan 01, 2009 0:30
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Jan 02, 2009 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann mir denn hier niemand helfen ?
Will ja nicht ungeduldig erscheinen, aber es ist etwas dringend !

Mfg,
N0X

BladeRunner

Moderator

BeitragFr, Jan 02, 2009 16:55
Antworten mit Zitat
Benutzer-Profile anzeigen
~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

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group