bgBanner
Banner Banner aktuelles POTMaktuelles POTM letztes POTMletztes POTM vorletztes POTMvorletztes POTM Banner
left right right

You are not logged in.

1

Friday, March 5th 2010, 2:14pm

Rabbyt: Sprite Grafikausschnitt ändern

Irgendwer hier im Forum hatte mal was mit Python und Rabbyt gemacht. Ich hab endlich auch mal Zeit gefunden damit rum zu spielen und ich bin ziemlich zufrieden damit. Aber ich hab ein Problem, dass ich auch mit etwas googeln nicht lösen konnte:
Ich möchte gerne, dass ein Sprite nicht die ganze Grafik anzeigt, sondern zB nur das obere, rechte Viertel. Es ist kein Problem die obere, linke Ecke zu zeigen, aber ich kriege die Grafik nicht auf dem Sprite verschoben, wenn ihr versteht... Ich habs mit den Membern u und v der Sprite Klasse versucht, aber die ändern bei mir irgenwie gar nix.

Also wenn jemand damit arbeitet und weiß wies geht oder sonst ne Idee hat, wäre ich sehr dankbar.

DrachenKaiser

Administrator

Motto: back to roots ...

3 Auszeichungen

  • Send private message

2

Friday, March 5th 2010, 8:29pm

Da du nicht teile deines Quellcodes postest, ist es etwas schwierig ^^.

http://matthewmarshall.org/projects/rabb…sprites/Sprite/

Sprite hat insgesamt 3 Parameter.

Sprite(Texture, Shape, tex_coord)

Shape und text_coord akzeptieren tupel [links, oben, rechts, unten]. Die Koordiatenpaare setzen sich Beispielsweise so zusammen: [(0,0), (20,0), (20,20), (0,20)]
Man gibt als ertes die Linke Obere Ecke an, anschließend (20,0) die linke untere ecke. (20,0) währe die rechte obere ecke und 20,20 währe die rechte untere ecke. Bei Bilder ist es so, das 0,0 die Linke Obere Ecke immer ist. Das Heißt du musst bei Bildkoordinaten anders denken. Vielleicht ist das ein Fehler? Weiterhin:

bei text_coord ist es das selbe nur hier werden Fließkommazahlen verwendet.

3

Friday, March 5th 2010, 10:46pm

ok mein Code sieht bis jetzt so aus;

ruby sourcecode

1
2
3
self.sprite=rabbyt.Sprite(os.path.join(self.GRAPHICS,img))
self.sprite.shape=((0,0),(48,0),(48,48),(0,48))
self.sprite.tex_shape=(0,1,0.25,0)


und zwar mit der angehängten Grafik. Die Idee dabei is eignetlich, dass eine ganz billig Animation enstehen soll, bei der zuerst das erst viertel der Grafik angezeigt wird, dann das zweite usw. Ähnlich wie ne Laufanimation im Maker.
Also das erste viertel kriege ich mit dem code aber wie komm ich jetzt an das zweite?

EDIT:
ok, ich habs hin gekriegt. Trotzdem Danke.

Falls es wen interessiert:

ruby sourcecode

1
2
self.sprite.tex_shape=(0.25,1,0.5,0) #-> zweites Viertel
self.sprite.tex_shape=(0.5,1,0.75,0) # -> drittes Viertel
Lelle has attached the following image:
  • explo.png

This post has been edited 1 times, last edit by "Lelle" (Mar 5th 2010, 10:46pm)


bottom bottom bottom