Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

1

Sonntag, 26. August 2018, 17:06

Unterschied Sprite und Bitmap?

So, ich würd gerne mal verstehen. :/
Wann benutze ich was? Welche Vor- und Nachteile haben die beiden Versionen?
Mir gehts um folgende beiden Versionen:

Ruby Quellcode

1
2
@battler_sprite = Sprite.new
@battler_sprite.bitmap = RPG::Cache.battler( "002-Fighter02", 0 )

Ruby Quellcode

1
2
3
battler = RPG::Cache.battler("002-Fighter02", 0)
src_rect = Rect.new(0, 0, battler.width, battler.height)
self.contents.blt(0, 1, battler, src_rect)

Beide spucken mir dasselbe aus. Das Erste verwende ich direkt in der Scene, das Andere im Window-Script. Oder geht das auch umgekehrt? Das Erste kann ich manipulieren (drehen, nur Teile davon anzeigen, usw), das Zweite nicht. Oder?
Oder ist das am Ende alles dasselbe? Gibt es Unterschiede in der Rechenleistung? Aktuell arbeite ich vor allem mit meinem Menü, was ist da besser? Was bedeutet das src_rect überhaupt? Was heißt in diesem Fall self.contents?

Bitte einmal Erklären oder leicht verständliche Webseiten empfehlen (kein Englisch T_T)
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Lucy Fox

Zee Captain

Motto: 'That is not dead which can eternal lie.' - 'And with strange aeons even death may die.'

  • Nachricht senden

2

Mittwoch, 29. August 2018, 16:01

Also wenn ich es noch richtig im Kopf habe... dann ist das Bitmap quasi der Hintergrund.
Aslo die Fläche, die in Menüs auch deinen Windowskin trägt. (muss aber - wie im Falle von battlern - nicht)
Das ist sozusagen deine Leinwand.

Der Sprite ist der eigentliche Inhalt. Das ist nochmal eine eigene Fläche, die auf das Bitmap draufgezeichnet wird. Wie wenn man auf Klarsichtfolie zeichnen würde und den Tisch noch durchsehen kann.

Du erstellst also erst das Bitmap und obendrauf den Sprite.

Ich meine zumindest, so ists gewesen. xD
  • Meins

  • Support

    Bild
    Bild
    Bild
    Bild
    Bild
  • Jokes

    Spoiler: C vs. C++

    In C, you merely shoot yourself in the foot.

    In C++, you accidentally create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical care is impossible, because you can't tell which are bitwise copies and which are just pointing at others and saying, "That's me, over there."
    zum Lesen den Text mit der Maus markieren

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

3

Mittwoch, 29. August 2018, 18:13

Und wo kann ich was verwenden? XD
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Ramirez

Ehrenmitglied

Motto: Sei ehrlich mit dir selbst und strebe nach deinen Zielen. Lass dir bei deinen Träumen nie etwas von anderen vorschreiben.

  • Nachricht senden

4

Mittwoch, 29. August 2018, 23:57

*mal Senf dazu geb* Es ist genau anders herum^^:

Sprites sind als Container zu verstehen und besitzen Bitmap-Attribute, welche wiederum die eigentlichen
Bild-Informationen enthalten.

Bitmaps allein haben nur Attribute bezüglich der Grafik, also Breite und Höhe, sowie Bilddaten.
Ein Sprite und dessen Attribute sind nötig, damit man das gewünschte Bild positionieren, rotieren, blenden, spiegeln,
färben, transparenter machen, die z-Achse (Bildtiefe) bestimmen, usw. kann.

RPG:: steht für, dass du auf das Modul "RPG" und beim darauf folgenden Wort die Unterklasse mit diesem Namen
aufrufst. RPG::Cache ist also ein vorgefertigtes Modul namens "RPG" mit einer Klasse namens "Cache", die Bitmaps für
schnellen Zugriff bereitstellen.

Deine Frage ist etwas aus dem Kontext genommen, denn self.contents bezieht sich darauf, dass die Klassen-Instanz,
die aktuell diesen Code ausführt (self), ein Attribut namens contents (dt. "Inhalte") hat, was schlicht und ergreifend
einfach nur eine Bitmap ist. Dieses wird dann mit nem Verweis (z.B. RPG::Cache.battler(filename)) gefüllt.

Die .blt-Methode ist übrigens dazu da, einen Teil einer Grafik auszuschneiden und auszugeben (auch "blitten" genannt).
Ein Rect enthält nur x, y, Breite und Höhe, und vereinfacht so den Verweis dieser Angaben. Denn beim Blitten gibt man
zuerst an, wo der Ausschnitt in die aktuelle Bitmap hin soll, dann die Quell-Bitmap, dann den gewünschten Bereich der
Quell-Bitmap als Rect und optional noch die Transparenz (von 0-255). Ist nötig, wenn man z.B. Einzelbilder aus Sprite-Sheets
herauslösen möchte (z.B. Characters oder Animations).

Blitten ist aber glaub ich etwas Performance-fressend, also Echtzeit-Anwendungen (zumindest in RGSS1) könnten Probleme
bereiten. Einfach mal testen.

Ob du alles möglichst zeilensparsam oder mit extra Variablen schreibst ist dir überlassen. Ich bin mir sicher, dass es stark
optimierte Kniffe gibt, aber oft kommt es darauf an, was du in diesem Moment brauchst. Willst du beispielsweise einfach
nur eine einzelne Grafik in ein Sprite laden, ist Blitten gänzlich unnötig.

Und möchtest du z.B eine Grafik mehrfach anwenden, wäre es sinnvoller, eine Variable mit dem Verweis anzulegen, und
dann im folgenden Code nur noch auf die Variable zu verweisen. Einmalige Anwendung kann man auch kompakt schreiben.
Bin mir da nicht so sicher, wie sich das exakt auf die Performance auswirkt, aber solange du nicht mit tausenden Sachen
hantierst, solltest du dir erstmal keine Sorgen machen.

MfG,
Ramirez

PS: Es hilft definitiv, etwas Englisch zu pauken und sich mal in Documentations zu RGSS einzulesen. Nach all den Jahren
dürfte es auch genügend Anwendungsbeispiele geben, obwohl ich immer gerne so gelernt habe, indem ich Klassen
kopiert und auf ihre notwendigsten Strukturen reduziert habe, um die einzelnen Befehle und Attribute besser zu verstehen.

Der vorgegebene Code liefert ganz gute Praxis-Beispiele, und besondere Kniffe kann man sich vllt. auch abgucken, wenn
man komplexere Skripte analysiert, und/oder sich etwas in Ruby einliest. (wobei RGSS 1 auf Ruby Version 1.8.1 basiert,
Neuerungen sind also zu ignorieren.)

Mitsch93

Drachentöter

Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.

  • Nachricht senden

5

Donnerstag, 30. August 2018, 08:38

Dokumentation:
Wie bereits erwähnt wurde, würde ich auch die interne Doku vom Maker verwenden. Die ist zwar auf Englisch, aber nicht
so geschrieben, dass sie unverständlich ist. Mal davon abgesehen, sind auch die meisten Internet-Quellen zu irgendwelchen
Programmiersprachen vermutlich zu 90%+ auf Englisch. Ich für meinen Teil verwende die interne Doku eigentlich immer.

Anwendungsbeispiele:
EIgentlich geht es hier ja mehr um den Unterschied zwischen Windows und Spites bzw. wann man wie eine Grafik anzeigen
lassen würde.

Ein Sprite verwende ich immer dann, wenn ich den vorgegebenen Rand beim Window nicht gebrauchen kann. ZB ein Menühintergrund
wäre so eine Anwendung. Hier brauchste nur ein Sprite mit einem 640x480 Bitmap oder anderen Maß und skalierst es halt entsprechend.
Beim Window kannst du nicht einfach 640x480 und Position im Ursprung x = 0, y = 0 sagen. Hier müsstest du das Window um 16px nach linksoben
verschieben sowie die Breite und Höhe erhöhen.

Eine beliebige Window-Klasse hat immer noch den Vorteil, dass du sie dynamischer verwenden kannst, als eine bloße Sprite-Klasse in einer Scene.
Ich habe zB beim neuen Equipmenü die Sloticons (Window-Klasse) über die Charaktergrafik gelegt. Da der Inhalt dynamisch generiert werden soll (abhängig
vom equippten Gegenstand) bietet sich hier eine Window-Klasse an, die ich für jeden Slot verwenden kann. Das könnte man genauso gut mit
Sprites machen, wäre aber programmiertechnisch nicht so schön, da nicht objektorientiert.

Also wie du siehts du kannst theoretisch für die meisten Fälle beides verwenden. Ich verwende immer Sprites, wenn es um Hintergründe
oder "rahmenlose" Grafiken geht, also relativ selten. Die meiste Zeit verwende ich irgendwelche selbstgeschriebenen Window-Klassen, die
die Grafik beinhalten.

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

6

Donnerstag, 30. August 2018, 21:38

Okay, ein Bitmap ist also meine Farbe und der Sprite ist die Leinwand samt Crew, die sie herumschiebt und festhält?


> Die .blt-Methode ist übrigens dazu da, einen Teil einer Grafik auszuschneiden und auszugeben

Ich verstehe Oo
Dann kann ich statt
src_rect = Rect.new(0, 0, battler.width, battler.height)
auch
src_rect = Rect.new(19, 30, 50, 50)
eingeben und bekomme dann den Bildausschnitt, wie ich es beim Sprite auch einstellen kann.

Und ich brauche es nicht, wenn ich nicht blitten will, dann kann ich die src_rect Zeile auch einfach rauslassen und schreibe stattdessen
battler = RPG::Cache.battler("002-Fighter02", 0)
self.contents.blt(0, 1, battler)
bzw:
self.contents.blt(0, 1, RPG::Cache.battler("002-Fighter02", 0))


Sprites/Windows:
Alles klar, ich glaub ich verstehe. Da das manipulieren offenbar mit beidem funktioniert, kann ich jetzt weiter in meinem Window arbeiten. Da wollte ich nämlich "blitten", ohne zu wissen, ob das geht. XD
(Ein Charset soll angezeigt werden, das ging gut mit den Sprites, aber diesmal wollte ich es unbedingt in der Window-Klasse direkt machen XD Ich schreib dann mal die anderen Grafiken noch auf Window-Bitmaps um, damit das wieder übersichtlich ist ><)

Dann kriech ich mal in die Maker-Window-Klassen und schau mir das dort nochmal an :3


Danke an euch drei! :D


Ein Bitmap kann ich aber weder zoomen noch drehen, oder? Das geht nur mit Sprites?
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Josey« (30. August 2018, 21:38)


Ramirez

Ehrenmitglied

Motto: Sei ehrlich mit dir selbst und strebe nach deinen Zielen. Lass dir bei deinen Träumen nie etwas von anderen vorschreiben.

  • Nachricht senden

7

Donnerstag, 30. August 2018, 23:24

Jo, das Sinnbild trifft es eigentlich ziemlich genau.

Wie Mitsch schon sagte, bezog sich self.contents auf ein Window, dessen "Inhalt" (in welchen man übrigens mit draw_text auch schreibt,
ist letztlich auch nur eine Grafik
) du füllen kannst. Willst du den ganzen Oberbau, der mit der Window- Klasse mitgeliefert wird, gar
nicht erst benutzen (Außenrahmen, Scrolling-Funktionalitäten, usw.), dann ist ein Sprite nötig.

Zum Rect: Ob du auf andere Variablen, wie battler.width, verweist oder direkt Zahlen benutzt, hängt davon ab, ob du immer
feste Werte oder eben variable Größen verwenden willst. Ist dir aber frei überlassen.

Blitten kann man nur mit .blt(x, y, QuellBitmap, QuellRect) oder optional .blt(x, y, QuellBitmap, QuellRect, Transparenz)
Das x und y steht für Koordinaten der Bitmap, die du blittest, auf denen die QuellBitmap landen soll. Hier mal zwei Beispiele.

Ein Sprite mit einer leeren Bitmap initialisieren:

Ruby Quellcode

1
2
meinSprite = Sprite.new
meinSprite.bitmap = Bitmap.new(Breite, Höhe)

Um eine Bitmap mit einer Grafik direkt zu laden:

Ruby Quellcode

1
2
meinSprite = Sprite.new
meinSprite.bitmap = Bitmap.new(Dateiname)

Eine Bitmap zu blitten (lange Version), würde dann so ablaufen:

Ruby Quellcode

1
2
3
4
5
meinSprite = Sprite.new
meinSprite.bitmap = Bitmap.new(Breite, Höhe)
meineQuellBitmap = Bitmap.new(Dateiname)
meinQuellRect = Rect.new(x, y, Breite, Höhe)
meinSprite.bitmap.blt(x, y, meineQuellBitmap, meinQuellRect)

Eine Bitmap zu blitten (kurze Version), kann man auch so schreiben:

Ruby Quellcode

1
2
3
meinSprite = Sprite.new
meinSprite.bitmap = Bitmap.new(Breite, Höhe)
meinSprite.bitmap.blt(x, y, Bitmap.new(Dateiname), Rect.new(x, y, Breite, Höhe))
Ich glaube, man kann sogar die Bitmap-Initialisierung vor dem blt auslassen, aber schwören kann ich's nicht. Kann's grad nicht testen.

Willst du in einem Window-Skript ein Character anzeigen, dann würde das in etwa so aussehen:

Ruby Quellcode

1
2
3
4
5
# Bitmap leeren, falls du es updaten willst
self.contents.clear
# für die Character Grafik musst du einen Farbton von 0-255 angeben
# logischerweise muss das Rect einem Viertel der Character-Grafik-Höhe und -Breite entsprechen
self.contents.blt(x, y, RPG::Cache.character(Dateiname, Farbton), Rect.new(x, y, Breite, Höhe))

Zoomen und Drehen geht nur mit Sprites.

Ruby Quellcode

1
2
3
4
5
6
# Drehung um den Mittelpunkt, statt der linken oberen Ecke - Breite und Höhe der Bitmap halbieren gibt uns den Mittelpunkt
# ox, oy - origin x, y - dt. "Ursprung x, y"
meinSprite.ox = meinSprite.bitmap.width/2
meinSprite.oy = meinSprite.bitmap.height/2
# angle (dt. "Winkel") für die Drehung - 0-360 Grad im Uhrzeigersinn. Beispiel: 45°
meinSprite.angle = 45

Ruby Quellcode

1
2
3
4
#.zoom_x und .zoom_y - 1.0 ist originale Pixelgröße (100%), 1.5 wäre dann logischerweise 150%, usw.
# Doppelt so groß
meinSprite.zoom_x = 2.0
meinSprite.zoom_y = 2.0

Zusammengefasst lässt sich sagen:
  • Bitmaps enthalten nur Größe und Farbdaten. Sprites "tragen" das Bild, und diese manipuliert man in der Szene.
  • Window-Klassen haben eine Bitmap namens contents, welche für Bilder und Text gedacht sind. Auch liefern sie Extra-Funktionalitäten.
  • Bitmap.new(Dateiname) ist zum Laden von Bilddateien.
    (RPG::Cache existiert, damit du nicht jedes Mal den Pfad mit angeben musst, nur den Dateinamen).
  • Bitmap.new(Breite, Höhe) erzeugt eine leere Bitmap.
  • .blt ist nur dafür da, einen Bitmapteil in eine andere Bitmapstelle zu platzieren.
MfG,
Ramirez

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

8

Freitag, 31. August 2018, 09:24

Danke Ramirez für die ausführliche Antwort :)
Schade, dass Zoomen nur mit Sprites geht, ich wollte gerne eine kleinere Version eines Hauses vom Tileset ausschneiden und ins Fenster pappen. Als Sprite geht das nicht, dass das Fenster scrollt :/
Zusammengefasst kann man sagen: So richtig manipulieren kann ich nur "lose" Sprites, die auf dem Window angepappten Bitmaps sind nur zum ausfüllen. Man kann einen Bildausschnitt wählen, das ist aber schon alles, was ich da manipulieren kann. Ich kann also schon das Haus aus dem Tileset ausschneiden, es aber nicht verkleinern.

Es ist auch nicht möglich, das Haus aus dem Tileset als Sprite aufzubauen (und zu verkleinern) und es dann dem Bitmap zu übergeben, damit es mit dem Fenster mitscrolen kann? :/
Wär halt doof, wenn ich am Ende doch jedes Haus noch als Bilddatei extra hinterlegen muss...
(Sorry, falls dus schon erklärt hast und es noch nicht bei mir angekommen ist, ich bin manchmal schwer von kapé)
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Ramirez

Ehrenmitglied

Motto: Sei ehrlich mit dir selbst und strebe nach deinen Zielen. Lass dir bei deinen Träumen nie etwas von anderen vorschreiben.

  • Nachricht senden

9

Samstag, 1. September 2018, 22:24

Solange du nichts Komplexeres als die Größe zu strecken vorhast, gäbe es...

Ruby Quellcode

1
self.contents.stretch_blt(ZielRect, QuellBitmap, QuellRect)
Das erlaubt dir, mittels QuellRect einen bestimmten Bereich aus der QuellBitmap auszuschneiden und mittels ZielRect in die Bitmap (z.B. contents) zu transferieren.

Um es mal ganz penibel aufzulisten:

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# index 0 => erste Spalte, index 1 => zweite Spalte, etc.
auswahl_x = 0
 
# sechste Reihe --- index 0 => erste Reihe, index 1 => zweite Reihe, etc.
auswahl_y = 5
 
# Wie viele Tiles ist die Auwahl breit?
auswahl_breite = 4
 
# Wie viele Tiles ist die Auwahl hoch?
auswahl_höhe = 5
 
# Faktor der Größenveränderung - 0.5 ist halb so groß, 2.0 doppelt so groß
skalierFaktor = 0.5
 
# Die Pixel-Breite und -Höhe der Auswahl wird halbiert (32px * 0.5 => 16px), was der Auswahl halb so großer Tiles entspricht (4 * 16px, 5 * 16px)
zielRect = Rect.new(0, 0, (auswahl_breite * 32) * skalierFaktor, (auswahl_höhe * 32) * skalierFaktor)
 
# Auswahl-Rect wird definiert - Umrechnung von der Auswahl zu Pixelangaben
quellRect = Rect.new(auswahl_x * 32, auswahl_y * 32, auswahl_breite * 32, auswahl_höhe * 32)
 
# RPG::Cache.tileset erlaubt einfachen Zugriff auf die Bitmap
self.contents.stretch_blt(zielRect, RPG::Cache.tileset("001-Grassland01"), quellRect)
Solltest du aus irgendwelchen Gründen Breite und Höhe unterschiedlich strecken wollen, kannst du einfach einen zweiten Faktor einbauen.
Und solltest du gar nicht erst relativ strecken wollen, sondern genaue Pixelangaben machen, so ist dir das auch möglich.

MfG,
Ramirez

PS: Wenn du Grafiken drehen willst, dann wirds schwieriger. Du kannst innerhalb einer Window-Klasse Sprites anlegen, musst aber auf ne handvoll Dinge achten.
Insbesondere die Abhängigkeit der Position relativ zum Window, das Entfernen der Sprites nach Schließen des Windows (dispose), das Einbinden aller Sprites in
die Update-Schleife, etc. Zudem müsstest du einen neuen Viewport anlegen, damit du den Scrolling-Effekt erzielen kannst, bei dem die Sprites abgeschnitten
werden, wenn sie ihren vordefinierten Bereich verlassen. Im Moment eher overkill.

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

10

Samstag, 1. September 2018, 22:47

YES, danke! :D
Nein, drehen wollte ich sie nicht. Nur das Haus aus dem Tileset im Menü anzeigen, ohne es nochmal extra als Bilde rhinterlegen zu müssen. Vielen Dank für deine Hilfe! :D
Und vor allem Dank für die Aufschlüsselung jedes einzelnen Schrittes, das hilft mir zu verstehen, was ich da tue, wenn ich es dann kürzer schreibe! X3
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Ramirez

Ehrenmitglied

Motto: Sei ehrlich mit dir selbst und strebe nach deinen Zielen. Lass dir bei deinen Träumen nie etwas von anderen vorschreiben.

  • Nachricht senden

11

Samstag, 1. September 2018, 23:51

Achja, was ich vergaß zu erwähnen:

Du kannst auch Grafiken auf eine vorhandene Grafik drauf blitten. Sofern du zwischendrin keinen clear Befehl aufgerufen hast,
könntest du dir so ein komplettes Haus erstellen; denn transparente Stellen werden ignoriert. Hier würde ich aber definitiv
eine Hilfs-Methode schreiben, die das Haus per Code für dich "mappt".

Es wäre eigentlich fast schon vernünftiger die Tiles per ID herauszupicken und das Haus dann z.B. mittels eines Arrays aus "Map-Daten"
aus mehreren Layern in eine Bitmap zu blitten, bevor du stretch_blt anwendest, um es zu verkleinern.

Wenn dir das zu viel ist, kannst du das fertige Haus zur not auch komplett ins Tileset editieren; aber mach wie du magst^^

MfG,
Ramirez

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

12

Sonntag, 2. September 2018, 00:48

Okay, danke, aber da versteh ich wieder nicht so richtig, wie dus meinst. Ich hätte die Einzeteile jetzt einfach nebeneinandergelegt (wie beim Mappen)?
Manche Häuser sind im Ganzen im Tileset, andere nicht :/
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Ramirez

Ehrenmitglied

Motto: Sei ehrlich mit dir selbst und strebe nach deinen Zielen. Lass dir bei deinen Träumen nie etwas von anderen vorschreiben.

  • Nachricht senden

13

Sonntag, 2. September 2018, 17:39

Sagen wir mal, du blittest eine Hauswand in dein Window, dann kannst du direkt danach nochmal blitten, nimmst aber dieses mal
ein Tile mit transparentem Hintergrund, z.B. ein Fenster o.ä. Das Ergebnis wäre dann z.B. das Fenster auf der Hauswand. Da der
transparente Hintergrund vom Fenster beim blitten ignoriert wird, wird die Wandgrafik an der Stelle nicht gelöscht und das Fenster
wird auf der Wand platziert; wie beim Mapping mit Ebenen. Auf diese Weise kannst du komplexere Grafiken, wie z.B. ein Haus mit allen
möglichen Details (Fenster, Schornstein, usw.) erstellen.

Mein Gedankengang war der, dass du eine Art kleinen Auto-Mapper bastelst. Folgende Logik:
Ein Tileset ist 8 Kacheln breit. Wenn du also z.B. das erste Tile aus der dritten Reihe haben willst (ID 17), dann musst du 17 % 8 rechnen.
Der % (Modulo) Operator ist für Restrechnen, also würdest du bei 17 % 8 als Ergebnis 1 ausgegeben bekommen (17/8 = 2 Rest 1). Teilst du
17 durch 8 und rundest das Ergebnis ab (.floor), erhälst du 2. Du erhälst also per Division die Zeilen- und per Modulo die Spaltennummer.

Auf die Weise kannst du dann mit einer Methode die richtige Tile-Grafik herauspicken und blitten. Wenn du nun z.B. ein Array mit deiner
gewünschten Reihe von IDs hast, kannst du mit einer Schleife das Array durchgehen, die ID auslesen, die Tilegrafik rauspicken und blitten.
Drei mal blitten für drei Ebenen: hat deine Grafik z.B. die Maße 5 * 4 Tiles, dann hätte eine Ebene 20 Tiles. 3 Ebenen sind dann 60.
Der erste Durchlauf blittet von index 0 bis 19, der zweite von 20 bis 39 und der dritte von 40 bis 59.

Wenn dir das alles zu kompliziert ist, kannst du natürlich auch einfach die Sachen per Hand oder per Spalten-/Zeilen-Nummer raussuchen.
Kommt drauf an, wie komplex deine Grafik am Ende sein soll.

MfG,
Ramirez

PS: Was willst du eigentlich am Ende machen? Oder ist das noch geheim?^^

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

14

Sonntag, 2. September 2018, 18:21

Aber die Autotiles muss man da ja mitrechnen, und deswegen fängt das Tileset, soweit ich weiß, mit ID 384 an.

Nein, das ist überhaupt nicht geheim XD
In meinem HM-Spiel bastle ich an einem Menü. Dort gibt es einen Reiter "Geschäfte", man kann auf jedes draufklicken und sich Öffnungszeiten und Angebot anzeigen lassen und als kleines Eyecandy wird der Geschäftsinhaber und neben ihm sein Geschäft (das Haus) angezeigt. Ist also ein rein optisches Gimmik. Da ich aber sowieso viele Grafiken in dem Spiel habe (verschiedene Kleidungsstücke, alle NPCs haben verschiedene Altersstufen, usw), versuche ich einfach zu reduzieren XD

Ich glaube ich verstehe, worauf deine Rechnung hinausläuft. Ich versuch das mal :9
Danke!
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Ramirez

Ehrenmitglied

Motto: Sei ehrlich mit dir selbst und strebe nach deinen Zielen. Lass dir bei deinen Träumen nie etwas von anderen vorschreiben.

  • Nachricht senden

15

Sonntag, 2. September 2018, 19:13

Ich habe mich hier aber nicht am Spriteset_Map bedient, sondern die Tileset-Grafik selbst ausgeschnitten, sowie meine eigenen IDs
dafür angelegt. Somit ist der erste Tile oben links für mein System ID0; ich hätte das auch von oben nach unten und dann erst
von links nach rechts zählen können. Das ist doch das Schöne am Skripten: Kannst machen, was du willst^^

Theoretisch kann man sich aber auch am Spriteset der Map bedienen, aber ich hab mich schon lange nicht mehr damit befasst, da war
ein eigenes System zu beschreiben schon fast einfacher.

MfG,
Ramirez

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

16

Sonntag, 2. September 2018, 20:30

Ach so, ich verstehe :D
Danke!
Dann fummle ich mir das mal zusammen X3
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Social Bookmarks