Du bist nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Game Maker Domäne. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

Yamm

>>Präsident<<

  • »Yamm« ist der Autor dieses Themas

Beiträge: 247

Game Maker Version: 8.1 Standard

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Glow und Virus 2

  • Private Nachricht senden

1

Samstag, 25. Juli 2009, 09:40

Einzelne externe Sprites in EIN Sprite laden

Hallo zusammen!

Ich habe einige teiltransparente PNG Bilder. Da GM7 nur mit externen teiltransparenten Bildern umgehen kann, möchte ich die Animation (bestehend aus 30 einzelnen Frames) in ein Sprite rein laden, also in etwa so:

GML

1
sprite_replace(spr_weint,"Data\Gfx\Pospos\Pospos_heult_001.png",1,0,1,0,1,0,0);


Das ist ja nun nur mit einem Frame, aber wie bekomme ich die 30 Frames in eine Spriteanimation gepackt? Import und Export als GIF zerstört den Alpha und auf einen extra Alphakanal habe ich ehrlich gesagt auch keine Lust, da warte ich dann doch lieber auf GM8.

peini

Vampir

Beiträge: 286

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Fusion - Music Manager

Danksagungen: 4

  • Private Nachricht senden

2

Samstag, 25. Juli 2009, 10:17

ich würde das mit sprite_assign(ind, source) machen. Diese Funktion fügt das neue sprite "source" zum alten sprite "ind" hinzu.

henrik1235

***Gold***

Beiträge: 1 393

Game Maker Version: 7 Pro

Selbsteinschätzung: GML Experte

  • Private Nachricht senden

3

Samstag, 25. Juli 2009, 11:19

Zitat

sprite_add(fname,imgnumb,precise,transparent,smooth,preload,xorig,yorig) Fügt ein Bild aus einer Datei den Sprite-Ressourcen hinzu. Nur bmp, jpg und gif Bilder können geladen werden. Wenn das Bild bmp oder jpg ist kann es als Animationsstreifen mit verschiedenen Subimages nebeneinander geladen werden. imgnumb gibt deren Zahl an (1 für ein einzelnes Bild). Für (animierte) gifs wird dieses Argument ignoriert; die Zahl der Bilder in der gif Datei wird genutzt. precise gibt an, ob präzise Kollisionsüberprüfung genutzt werden soll. transparent gibt an, ob das Bild teiltransparent sein soll. smooth gibt an, ob die Ecken geglättet werden sollen. preload gibt an, ob die Textur in der Speicher vorgeladen werden soll. xorig und yorig geben die Position des Bezugspunktes an. Die Funktion gibt den Index des neuen Sprites zurück um es zu zeichnen oder es über die Variable sprite_index einer Instanz zuzuweusen. Falls ein Fehler auftritt wird -1 zurückgegeben.
Das müsste bei dir zutreffen.

MfG Henrik1235

Yamm

>>Präsident<<

  • »Yamm« ist der Autor dieses Themas

Beiträge: 247

Game Maker Version: 8.1 Standard

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Glow und Virus 2

  • Private Nachricht senden

4

Samstag, 25. Juli 2009, 11:30

Ich merke selber, dass ich mich heute dümmer anstelle als sonst.

GML

1
2
3
4
5
sprite_replace(spr_weint,"Data\Gfx\Pospos\weint\Pospos_heult_001.png",1,0,1,0,1,0,0);
sprite_add("Data\Gfx\Pospos\weint\Pospos_heult_002.png",2,0,1,0,1,0,0);
sprite_add("Data\Gfx\Pospos\weint\Pospos_heult_003.png",3,0,1,0,1,0,0);
sprite_add("Data\Gfx\Pospos\weint\Pospos_heult_004.png",4,0,1,0,1,0,0);
sprite_add("Data\Gfx\Pospos\weint\Pospos_heult_005.png",5,0,1,0,1,0,0);


Würde bis Bild 30 durch gehen, er zeigt aber nur Bild 1 an und das auch nicht richtig transparent. ?(

Irgendwo hatte ich hier noch eine Packung Hirn... wo war die nur?

henrik1235

***Gold***

Beiträge: 1 393

Game Maker Version: 7 Pro

Selbsteinschätzung: GML Experte

  • Private Nachricht senden

5

Samstag, 25. Juli 2009, 11:42

Du musst die Png Datein zu einer gif datei machen.

Yamm

>>Präsident<<

  • »Yamm« ist der Autor dieses Themas

Beiträge: 247

Game Maker Version: 8.1 Standard

Selbsteinschätzung: GML Anfänger

Aktuelles Projekt: Glow und Virus 2

  • Private Nachricht senden

6

Samstag, 25. Juli 2009, 11:44

Genau das wollte ich eigentlich umgehen, damit die teiltransparenten Übergänge erhalten bleiben. :(

Beiträge: 840

Game Maker Version: 7 Pro

  • Private Nachricht senden

7

Samstag, 25. Juli 2009, 11:44

Oder die Bilder in ein einzigstes in einen Strip einfügen.
sprite_add gibt dann die id des Sprites zurück.

copyboy

Krankhafter Individualist

Beiträge: 2 046

Selbsteinschätzung: GML Experte

  • Private Nachricht senden

8

Samstag, 25. Juli 2009, 12:05

sprite_add erstellt ein komplett neues Sprite, kein Subimage.
Deshalb benutzt du sprite_assign, um das neue Sprite dem alten hinzuzufügen (kopieren). Danach solltest du es wieder löschen.

GML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var spr;
sprite_replace(spr_weint,"Data\Gfx\Pospos\weint\Pospos_heult_001.png",1,0,1,0,1,0,0);
spr = sprite_add("Data\Gfx\Pospos\weint\Pospos_heult_002.png",1,0,1,0,1,0,0);
sprite_assign(spr_weint,spr);
sprite_delete(spr);
spr = sprite_add("Data\Gfx\Pospos\weint\Pospos_heult_003.png",1,0,1,0,1,0,0);
sprite_assign(spr_weint,spr);
sprite_delete(spr);
spr = sprite_add("Data\Gfx\Pospos\weint\Pospos_heult_004.png",1,0,1,0,1,0,0);
sprite_assign(spr_weint,spr);
sprite_delete(spr);
spr = sprite_add("Data\Gfx\Pospos\weint\Pospos_heult_005.png",1,0,1,0,1,0,0);
sprite_assign(spr_weint,spr);
sprite_delete(spr);

Besser wäre allerdings, wenn du das ganze in einen Strip tun würdest, also alle Subimages in ein Bild nebeneinander. Dann gibst du bei dem Parameter imgnumb die Anzahl an Subimages ein, und der Game Maker teilt die Grafik wie gewünscht auf.

GML

1
sprite_replace(spr_weint,"Data\Gfx\Pospos\weint\Pospos_heult.png",5,0,1,0,1,0,0);

Wlanuser

Vogelhaus

Beiträge: 106

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: ChatterBox

  • Private Nachricht senden

9

Samstag, 25. Juli 2009, 14:22

Und damit die Alphakanäle sichtbar bleiben, kannst du noch alle Funktionen durch die Alphaversionen austauschen, z.B.:

GML

1
2
sprite_replace_alpha();
sprite_add_alpha();

peini

Vampir

Beiträge: 286

Game Maker Version: 8 Pro

Selbsteinschätzung: GML Fortgeschrittener

Aktuelles Projekt: Fusion - Music Manager

Danksagungen: 4

  • Private Nachricht senden

10

Montag, 27. Juli 2009, 17:06

Du könntest das Sprite ja auch mit sprite_add_alpha laden. Muss aber glaub ich ne png Datei sein.