Startseite »
Forum »
Members »
Dear visitor, welcome to RPG Studio - Make your World real. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.
Rotierende Items auf der Map
Rating:
by Playm, Saturday, December 22nd 2018, 8:29am
Quoted from "Josey"
kann ich sowas nicht auch mit meinem Paint.NET erstellen, ganze ohne extra-3D-Programm?
Und sie hat natürlich recht.

Quoted from "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 Source code |
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!

Comments (3)
-
by Josey (Sunday, December 23rd 2018, 3:13am)
btw: Poste das Script hierrein: http://www.rpg-studio.org/forum/index.ph…ard&boardID=543
: P -
by Josey (Sunday, December 23rd 2018, 3:11am)
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
Categories
Most recent
-
Schönheit
Wednesday, August 11th 2021, 12:24am
-
Rotierende Items auf der Map
Saturday, December 22nd 2018, 8:29am
-
Die RMXP-Icons als 3D-Modell
Sunday, December 16th 2018, 11:01am
-
Wie die Bildchen in die Projektauswertungen kommen
Saturday, January 20th 2018, 6:00am
-
Dateiformate bei der Spielentwicklung
Sunday, November 5th 2017, 9:29pm
-
Schönheit die aus der ausnutzung von logischen ...
by ITgenie98 (Nov 1st 2022, 5:10pm)
-
Ja, das klappt. In Ruby gibt die .index()-Me...
by Playm (Aug 21st 2021, 2:38pm)
-
Das ist wirklich eine sehr schöne und vor allem...
by Lycaon (Aug 19th 2021, 12:53am)
-
Script ist gepostet. ;) Kann sein, dass der ...
by Playm (Dec 23rd 2018, 3:47am)
-
btw: Poste das Script hierrein: http://www.rpg-...
by Josey (Dec 23rd 2018, 3:13am)
Archive
-
2021 (1)
-
August 2021 (1)
-
-
2018 (3)
-
December 2018 (2)
-
January 2018 (1)
-
-
2017 (7)
-
November 2017 (1)
-
October 2017 (3)
-
September 2017 (3)
-
-
2015 (10)
-
November 2015 (2)
-
October 2015 (3)
-
July 2015 (3)
-
June 2015 (2)
-
-
2014 (2)
-
2013 (4)
-
August 2013 (2)
-
June 2013 (1)
-
May 2013 (1)
-
Blogroll
-
Rpg-Studio, Stirb Nicht! D:
by Josey Dec 1st 2018, 11:41am
-
Mein erster Blog-Eintrag :D über Motivation & Release!?
by Zego Sep 4th 2016, 11:43pm
-
Die ewige Rückkehr
by Mustamakkara Jul 20th 2015, 3:39pm
-
Ich verkünde hiermit meine Inaktivität!
by MrKingmustafa May 21st 2015, 5:54pm
-
Bastle an einer Community
by RyuImperator Jan 2nd 2014, 6:06pm
-
Dungeon Heart (preRender)
by Chaosgod Espér Oct 27th 2013, 9:48pm
-
Raging about C++ & MSVC--
by Der Imperator Sep 15th 2013, 8:25am
-
Und so geschahs...
by Avery Apr 1st 2013, 5:53pm
-
Ice & Dark Demo 3.0 out now!
by Lucy Fox Apr 1st 2013, 12:57am
-
Durchlauf der eigenen Teeworldsmap mit Kenji
by Veni Mar 31st 2013, 4:16pm
-
Char Designer
by Lone Wolf Mar 30th 2012, 12:32pm
-
10-Wort-Trash-Geschichten
by Strubbel Mar 28th 2012, 4:30pm
-
Laura und der Herzbube: SB-RPG Episode 2
by Яογal Sίη° Mar 16th 2011, 4:23pm