beine bewegen

Anfängerfragen zum Programmieren mit PureBasic.
spongebob
Beiträge: 13
Registriert: 26.03.2005 11:21

beine bewegen

Beitrag von spongebob »

wenn ich jetzt ein jump n' run spiel mache und dann habe ich eine figur. die soll wenn ich nach rechts drücke auch nach rechts gehen und dabei ihre beine bewegen(damit es auch echt aussieht). ich weiß das kann man mit mehreren sprites machen, aber wie lautet der code für eine animation(ich habe das noch nie in einem tutorial gesehen?)

kann mir einer sagen wo es ein gutes tutorial dazu gibt?

das wäre nett :allright:
If you go me on the nerven, I steck you in a gulli, make a deckel drauf and you see never the tageslicht.....
GOD BLESS YOU.....
GOTT SEGNE DICH!!!!!!!
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag von Rubiko »

im tut auf purebasic.de gibts das
ich glaube es war

Code: Alles auswählen

for ani=1 to 2
   displaysprite(#sprite,playerx,playery)
next
bin mir nun nicht sicher aber probiers mal aus
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Benutzeravatar
MUDHead
Beiträge: 107
Registriert: 08.09.2004 11:00
Wohnort: Berlin

Beitrag von MUDHead »

Hi,

ist doch völlig egal, wie genau der Code auf purebasic.de ist. :wink:

Du musst nur die Sprites der Bewegungen der Figur durch eine For-Next-
Schleife erhöhen, wenn du weißt, wie das funktioniert.
Die Figur bewegst du nach rechts, indem du die Variable für die X-Koordi-
nate erhöhst.

Für Animationen gab es irgendwo ein Tut, das Fighter (oder so) hieß.
Und auch in Danilos PureTools war, glaube ich, was drin.


[gelöscht von freedimension, siehe Forenregeln]
Malus, qui potest rerum cognoscere.
spongebob
Beiträge: 13
Registriert: 26.03.2005 11:21

Beitrag von spongebob »

aber wenn ich eine for-next schleife mache dann macht der das doch nur einmal. ich glaube ich habe eine lösung gefunden aber noch nicht ausprobiert...

Code: Alles auswählen

while keyboardpushed(#PB_KEY_Right)
beispiel\X=beispiel\X+3
for bsp= 0 to 1
Displaytransparentsprite(bsp,beispiel\X,beispiel\Y)
next
wend 
meint ihr das geht?
If you go me on the nerven, I steck you in a gulli, make a deckel drauf and you see never the tageslicht.....
GOD BLESS YOU.....
GOTT SEGNE DICH!!!!!!!
Benutzeravatar
FISCHAUGE
Beiträge: 108
Registriert: 25.03.2005 21:07
Wohnort: Karlsruhe
Kontaktdaten:

Beitrag von FISCHAUGE »

Hi, also es gib eine Super Beispiel Datei mit Fässern wo du mit der Maus abschießen musst sobald du dann ein fass erwischt beginnt die animation und das fass scheint zu explodieren!

Leider weiss ich nicht mehr genau wo es war aber so musst du den code eingeben!

Code: Alles auswählen

 For k=0 To 7
    LoadSprite(k+20, Path$+"Explosion_"+Str(k+1)+".bmp", 0)
  Next
Salami
Beiträge: 41
Registriert: 18.02.2005 09:42
Kontaktdaten:

Salami

Beitrag von Salami »

Das Tutorial dazu gibts auf der Originalseite: www.purebasic.de ;)
Benutzeravatar
MUDHead
Beiträge: 107
Registriert: 08.09.2004 11:00
Wohnort: Berlin

Beitrag von MUDHead »

Wenn das letzte Sprite erreicht ist, lässt du einfach wieder das erste anzei-gen. (zb durch eine If-Abfrage)
Ich hab mir dein Beispiel nicht so richtig angeguckt, aber mit While-Wend
solltest du gerade als Anfänger vorsichtig sein.
Hi, also es gib eine Super Beispiel Datei mit Fässern wo du mit der Maus abschießen musst
Jo stimmt, das hab ich mir auch damals durchgelesen.
Malus, qui potest rerum cognoscere.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

mit ner for-next schleife habt ihr das problem, dass der komplette bildaufbau,
das buffer-flippen, einfach ALLES innerhalb der for-next schleife sein muss.

aber normalerweise hat man ja alles innerhalb einer hauptschleife,
die erst am ende des spiels (oder mit ESC) beendet wird.

eine permanente anim weist du mit so etwas zu:

Code: Alles auswählen

AnimFrame +1
If AnimFrame > LastFrame
    AnimFrame = FirstFrame
EndIf
natürlich anzeigen mit

Code: Alles auswählen

DisplayTransparentSprite(AnimFRame,X,Y)
wenn es dir um eine animation beim laufen geht, muss das verändern des animationsframes
an die gleiche stelle wie das verändern der koordinaten, also, in die tastaturabfrage.

aber mal generell an alle Anfänger:

ein Jump&Run gehört nicht gerade zu den einfachsten aufgaben.

probierts erstmal mit was billigerem....

------------------------------------------------------------

wenn das proggem der anim zweitrangig für euch ist, könnt ihr euch auch hiermit behelfen:

http://forums.purebasic.com/german/view ... 3707#23707
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag von Rubiko »

sorry das ich den alten thread wieder hochhole, ja das prinzip vom laufen hab ich verstanden, aber welche werte muss man den variablen zuweisen?
codeschnipsel wären fein ;)

EDIT: Dazu ist noch zusagen, nicht das ihr denkt ich bump nur alles hoch und warte auf hilfe: ich hab viele stellen probiert und LETZENDLICH: drück ich wirklich nur einmal! wird es ja um 1 erhöht... (die ani) ... drück ich ein zweites mal gibt der debugger "#sprite object not initialized"
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

naja, du willst halt ein sprite anzeigen, dass du nich geladen hast...

also, nehmen wir mal an, du hast ne anim mit 8 frames,
und die lädst du in die Sprites Nr. 100-107.

damit ist in meinem obigen beispiel:

Code: Alles auswählen

; Inits
;...
FirstFrame = 100
LastFrame = 107
AnimFrame = Firstframe

;...

; Hauptschleife
Repeat

;... 

AnimFrame +1 
If AnimFrame > LastFrame 
    AnimFrame = FirstFrame 
EndIf

DisplayTransparentSprite(AnimFrame,X,Y)

;...

Until ;... Hauptschleifenende
...was du allerdings mit 'drück ich einmal... drück ich nochmal' meinst, is mir nich ganz klar...
..zeig doch ma deinen code...

wäre auch nützlich im hinblick auf deinen anderen Thread "Animation verlangsamen"

...geht doch beide male ums selbe prog, oder?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten