[B3D] Animationsproblem
Übersicht

![]() |
N0XBetreff: [B3D] Animationsproblem |
![]() Antworten mit Zitat ![]() |
---|---|---|
*Scroll Down* | ||
- Zuletzt bearbeitet von N0X am So, Jan 04, 2009 20:51, insgesamt 2-mal bearbeitet
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube bei dem Blitz Font sind alle Zeichen normalerweise 8, 10 oder 12 Pixel breit, d.h. du kannst dir die Länge des Strings in Pixeln leicht ausrechnen. Wenn das nicht so ist, nimm einen Bitmapfont. | ||
Starfare: Worklog, Website (download) |
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
StringWidth sollte da helfen oder? | ||
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist bei dem Code etwas kompiziert ![]() Code: [AUSKLAPPEN] Graphics3D 1024,768 Repeat CameraProject cam,EntityX(testObjekt),EntityY(testObjekt),EntityZ(testObjekt) ShowClicked() UpdateWorld() RenderWorld() Flip Cls Until KeyHit(1) End Function ShowClicked() Text ProjectedX()-40,ProjectedY()-120,"Test Objekt" DrawImage bgDing,ProjectedX()-60,ProjectedY()-120 DrawImage bgDing,ProjectedX()+60,ProjectedY()-120 End Function |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nö, ist überhaupt nicht schwierig;)
Code: [AUSKLAPPEN] Function ShowClicked() px = projectedx() ;x-Koordinate vom Objekt py = projectedy()-120 ;y-Koordinate vom Objekt txt$ = "Test Object" ;Text für die Anzeige size = stringwidth(txt$) ;Textlänge Text px, py, txt$, 1, 1 ;Text mittig über dem Objekt zeichnen DrawImage bgDing,px-size/2-50, py ;Bild links vom text DrawImage bgDing,px+size/2+50,py ;Bild rechts vom Text End Function schau mal, sollte funktioneren Außerdem solltest du Befehle, die einen Rückgabewert haben und sich zB. in einer Funktion, nicht ändern, in eine Variable packen, wenn du diese Mehrmals benötigst. Das hat 2 Vorteile, es ist übersichtlicher und verbraucht weniger rechenzeit |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hat bestens geklappt !
Vielen Dank ! Hab schon weder n neues Problem (darf ich das hier posten ?) Und zwar gehts um Animation: Ich hab nen Player der auf Tastendruck "W" vorwärts geht (mit entsprechender Animation. Jetzt soll er mit "S" rückwärtslaufen und die Animation soll einfach rückwärts abgespielt werden ! Wie mach ich das ? Hier der entsprechende Code: [AUSKLAPPEN] ;Variablen
Global seq=1 Global plySpeed=1 ;--------------------------------------------------------------------------------------------| Repeat PlayerBewegen() UpdateWorld() RenderWorld() Flip Cls Until KeyHit(1) End ;--------------------------------------------------------------------------------------------| Function PlayerBewegen() If KeyDown(17) Then MoveEntity player,0,0,plySpeed If Not Animating(player) ExtractAnimSeq player,2,14 Animate player,1,.2,seq,1 EndIf EndIf If KeyDown(31) Then MoveEntity player,0,0,-plyspeed If Not Animating(player) ExtractAnimSeq player,2,14 Animate player,1,-0.2,seq,1 EndIf EndIf If Not KeyDown(17) Or KeyDown(31) Then Animate player,0 End Function Ich hoffe ich durfte das Thema weiterführen und hoffe das ihr mir helfen könnt ![]() Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaub einfach Animationsspeed auf -1 stellen... | ||
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab' ich ja schon !
Bei der 2. "if not animating" Schleife. plySpeed ist nur zum Bewegen mit "MoveEntity" ! Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If Not KeyDown(17) Or KeyDown(31) Then Animate player,0
Da wird der Fehler liegen! Müsste wohl eher so lauten: Code: [AUSKLAPPEN] If Not ( KeyDown(17) Or KeyDown(31) ) Then Animate player,0
Da du die Animation ja stoppen willst, wenn keine der Beiden Tasten gedrückt ist. Deine Variante der If-Prüfung schaut allerdings, ob Taste 17 nicht gedrückt, oder ob Taste 31 gedrückt wird und stoppt demnach die Animation. Es gibt noch weitere Möglichkeiten, dass zu Prüffen, zB Code: [AUSKLAPPEN] If KeyDown(17) +KeyDown(31) = 0 Then
|
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das verstehe ich!
Hat leider trotzdem nicht geklappt ... ![]() Im Moment spielt das Programm nur die Animation ab, die als erstes gedrückt wurde. (Ist ja nur eine Animation, ich meine aber die Geschwindigkeit (1 oder -1)) Mfg, N0X Edit: Jetzt hab' ich es schon soweit hinbekommen das ich wenn ich "W" gedrückt habe er die Animation nach vorne abspielt und wenn man "S" gedrückt hat nach hinten. Aber jetzt geht es nicht wenn ich "W" oder "S" gedrückt halte weil "Animate" ja in der Schleife steht ! Kann mir da jemand helfen ? Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group