Startseite »
Forum »
Mitglieder »
Lieber Besucher, herzlich willkommen bei: RPG Studio - Make your World real. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Rotierende Items auf der Map
Bewertung: ![]()
Von Playm, Samstag, 22. Dezember 2018, 08:29
Zitat von »Josey«
kann ich sowas nicht auch mit meinem Paint.NET erstellen, ganze ohne extra-3D-Programm?
Und sie hat natürlich recht.
Für sich drehende Icons im Maker braucht man nicht Blender aufmachen. Ich schrieb dann fix eine Antwort zu ihrem Kommentar:
Zitat von »Playm«
Jetzt wo Du mich zum nachdenken bringst: Man kriegt das auch ohne extra Grafiken nur per Script hin. Wenn man die Icons in 32 Spalten aufteilt entspricht die X-Position der Spalte während der Rotation ja einfach cos(t), man könnte also wenn man sowas auf der Map möchte das mit einem updatenden Sprite machen. [...] Dazu schreibe ich dann nächstes Wochenende einen Blogpost. :-D
Und hier ist der Blogpost!
Ich habe tatsächlich ein Script geschrieben, was einem erlaubt mit einem CallScript einem Event eine rotierende Item-Grafik zu geben. Ich hatte mir das so vorgestellt, dass es auf der Map Items gibt, die man einsammeln kann und dann setzt man auf jedes dieser Events eine rotierende Grafik und dann ist das schick anzusehen.
|
|
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 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
#============================================================================== # ** Rotierende Items auf der Map, von Playm #------------------------------------------------------------------------------ # Ruft in einem Event folgenden Befehl via CallScript auf: # # set_rotation_graphics( 17, # '021-Potion01') # # Event 17 bekommt dann eine CustomMoveRoute, die immer wieder die Event- # grafik ändert. Dafür wird ein extra virtuelles Spriteset angelegt # was aus einer Icongrafik generiert wird. Welche Icongrafik das ist, # legt der zweite Parameter fest. Hier wäre es die Heiltrank-Grafik. #------------------------------------------------------------------------------ # Einfache Nutzung in nicht-kommerziellen RMXP Projekten ist gestattet. # Keine kommerzielle Nutzung gestattet. Für Lizenzen an den Autor wenden. # Keine Weiterverbreitung in originaler oder abgeänderter Form gestattet. #============================================================================== # ** RPG::Cache #============================================================================== module RPG module Cache def self.create_rotation_sprite(icon_name) path = 'Graphics/Characters/@rotation_' + icon_name if not @cache.include?(path) or @cache[path].disposed? icon_bitmap = self.icon(icon_name) @cache[path] = Bitmap.new(24*4, 24*4) for frame in 0..15 dx = 24 * (frame % 4) dy = 24 * (frame / 4) x_rotation_offset = Math.cos(frame * 2 * Math::PI / 16) for column in 0..23 src_rect = Rect.new( column, 0, 1, 24 ) dc = dx + 12 + (column - 12) * x_rotation_offset @cache[path].blt( dc, dy, icon_bitmap, src_rect ) end end end end end end #============================================================================== # ** Interpreter #============================================================================== class Interpreter #-------------------------------------------------------------------------- # * set rotation graphic for event (uses a custom move route) # the_event_id : 1-999 for specific event, 0 for self # icon_name : file name in graphics/icons folder #-------------------------------------------------------------------------- def set_rotation_graphics( the_event_id, icon_name ) # Get character character = get_character(the_event_id) # Continue If no character exists return true if character == nil # Setup rotation spriteset if neccessary RPG::Cache.create_rotation_sprite(icon_name) # Create MoveRoute for the event move_route = RPG::MoveRoute.new for j in 0..15 i = 15 - j move_route.list.unshift( RPG::MoveCommand.new( 41, ['@rotation_' + icon_name, 0, 2*(i/4+1), i%4]), RPG::MoveCommand.new( 15, [2]) ) end # Force move route character.force_move_route(move_route) end end |
Ihr braucht keine extra Grafiken, es muss halt nur einen Icon geben, den ihr rotieren lassen wollt. Die Idee zur Umsetzung hatte ich ja letzte Woche schon in meiner Antwort an Josey formuliert: Wenn man weiß, wie die mathematischen Funktionen Sinus und Cosinus funktionieren, kann man sich recht schnell klar machen, dass wenn man sich ein Koordinatensystem mit dem Nullpunkt in der Mitte der Icongrafik sich denkt, die Cosinusfunktion mit der X-Koordinate jedes Pixels multipliziert seine Position während einer Rotation um die Y-Achse darstellt. Wir bekommen daduch zwar keine perspektivische Drehung hin, aber das hatte ich letzte Woche in Blender auch deaktiviert, weil ich es schicker fand. Soweit zum heutigen Blogpost. Ihr könnt das Script oben gerne für eure Projekte benutzen, nennt mich einfach in den Credits und befolgt die anderen Bedingungen oben im Scriptkopf.
Schöne Festtage!
Kommentare (3)
-
Von Josey (Sonntag, 23. Dezember 2018, 03:13)
btw: Poste das Script hierrein: http://www.rpg-studio.org/forum/index.ph…ard&boardID=543
: P -
Von Josey (Sonntag, 23. Dezember 2018, 03:11)
Alter! XD
Das ist ja genial! : D
Schreibselst du mal eben sowas. Krass.
Jetzt kommt die Frage auf: In welche Richtung dreht es sich? >XD
Ich habs direkt mal ausprobiert, und natürlich funktioniert es!
Wenn es in meinem HM-Projekt nicht funktioniert (Eventgrafik verschwindet einfach nur), liegts vermutlich am InGame-Charset-Generator, oder? Beide Scripte benutzen den RPG::Cache.
Ich halte mich grad für klug XD
Das sowas möglich ist, bringt mich echt zum Staunen! : D
Blog Navigation
Kategorien
Aktuelles
-
Schönheit
Mittwoch, 11. August 2021, 00:24
-
Rotierende Items auf der Map
Samstag, 22. Dezember 2018, 08:29
-
Die RMXP-Icons als 3D-Modell
Sonntag, 16. Dezember 2018, 11:01
-
Wie die Bildchen in die Projektauswertungen kommen
Samstag, 20. Januar 2018, 06:00
-
Dateiformate bei der Spielentwicklung
Sonntag, 5. November 2017, 21:29
-
Ja, das klappt. In Ruby gibt die .index()-Me...
Von Playm (21. August 2021, 14:38)
-
Das ist wirklich eine sehr schöne und vor allem...
Von Lycaon (19. August 2021, 00:53)
-
Script ist gepostet. ;) Kann sein, dass der ...
Von Playm (23. Dezember 2018, 03:47)
-
btw: Poste das Script hierrein: http://www.rpg-...
Von Josey (23. Dezember 2018, 03:13)
-
Gut, dass du weißt, wovon du sprichst XD *war ...
Von Josey (23. Dezember 2018, 03:12)
Archiv
-
2021 (1)-
August 2021 (1)
-
-
2018 (3)-
Dezember 2018 (2) -
Januar 2018 (1)
-
-
2017 (7)-
November 2017 (1) -
Oktober 2017 (3) -
September 2017 (3)
-
-
2015 (10)-
November 2015 (2) -
Oktober 2015 (3) -
Juli 2015 (3) -
Juni 2015 (2)
-
-
2014 (2) -
2013 (4)-
August 2013 (2) -
Juni 2013 (1) -
Mai 2013 (1)
-
Blogroll
-
Rpg-Studio, Stirb Nicht! D:
Von Josey 1. Dezember 2018, 11:41
-
Mein erster Blog-Eintrag :D über Motivation & Release!?
Von Zego 4. September 2016, 23:43
-
Die ewige Rückkehr
Von Mustamakkara 20. Juli 2015, 15:39
-
Ich verkünde hiermit meine Inaktivität!
Von MrKingmustafa 21. Mai 2015, 17:54
-
Bastle an einer Community
Von RyuImperator 2. Januar 2014, 18:06
-
Dungeon Heart (preRender)
Von Chaosgod Espér 27. Oktober 2013, 21:48
-
Raging about C++ & MSVC--
Von Der Imperator 15. September 2013, 08:25
-
Und so geschahs...
Von Avery 1. April 2013, 17:53
-
Ice & Dark Demo 3.0 out now!
Von Lucy Fox 1. April 2013, 00:57
-
Durchlauf der eigenen Teeworldsmap mit Kenji
Von Veni 31. März 2013, 16:16
-
Char Designer
Von Lone Wolf 30. März 2012, 12:32
-
10-Wort-Trash-Geschichten
Von Strubbel 28. März 2012, 16:30
-
Laura und der Herzbube: SB-RPG Episode 2
Von Яογal Sίη° 16. März 2011, 16:23

