Hey liebe Community,
ihr kennt das sicher auch... Ihr habt große Pläne für euer Spiel, allerdings macht die Tileset-Begrenzung einen gewaltigen Strich durch die Rechnung... Nach ein bisschen suchen findet ihr dann schließlich die Tileset-Changer und denkt euch "Hey wunderbar das wäre gelöst". Nach dem download merkt ihr aber, dass es doch nicht so ganz so funktioniert wie ihr es euch vorgestellt habt oder ihr kapiert einfach nicht wie er funktioniert (ja gibts auch)
Mich hat das ziemlich genervt mit der Begrenzung. Und da ich einer bin der sich lieber selbst Scripts schreibt, als andere danach zu fragen oder andere zu benutzen, hab ich mir gedacht, es muss doch eine Möglichkeit geben das ganze zu umgehen... und hier ist der Weg: Ich hab ein kleines Script geschrieben, welches es ermöglicht, unendlich viele Tiles zu benutzen, ohne die ganze database oder Passabilities einzustellen... Ja man kann sogar mit Paint (o.ä.) eigene Maps "malen" und diese benutzen!!! Das ganze basiert auf der Idee des Parallax-Mappings, allerdings ohne für jede unpassierbare stelle nen performance-lastiges Event zu platzieren... Das ganze wird durch RAW-Maps ersetzt und funktioniert fast genauso wie die im Maker inbegriffene Abfrage... nur ein "bisschen" anders :P
Wem das hier jetzt zu lang war... das ganze nochmal in kurzform:
Durch erweitertes Parallax-Mapping ist die Tileset-Begrenzung des VX umgangen!!!
Script
#-------------------------------------------------------------------------------
#
# Para Maps
# code by HamsterHai aka. Sartekk aka. Protekk
# Released 24.1.2011
# version 1.0
#
# don't claim as your own!
# only with Credits!
#
# Sorry for bad english :S
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
=begin
* How To
1.- Create a Folder named "Raw_Maps" in your project's Graphics-folder
- Erstelle einen Ordner namens "Raw_Maps" im Graphics-Ordner deines Projekts
2.- Draw a map you want and save it in your Parallax folder
- Male eine Map und speicher sie im Parallax-Ordner
3.- You can use the tiles B-E for your head-tiles which are over the characters
- Die Tiles B-E können für die Tiles verwendet werden, unter denen der Charakter
durchgeht
4.- Use the Parallax file to fill all impassable tiles black(32x32) in a graphic
programm. Save the changed bitmap as sameFilename"_RAW" in the Raw_Maps folder
- Benutze die Parallax-Datei, um alle nicht passierbaren Tiles mit einem
schwarzen Quadrat(32x32) zu markieren. Speichere die geänderte Datei als
selber_name"_RAW" in den Raw_Maps-Ordner
5.- Add the overhead-tiles like normal mapping
- Füge die Über-Kopf-Tiles wie beim normalen mappen ein
6.- Add the Map-ID in the List below
- Füge die Map-ID in die untere Liste ein
~ You can see an example in the project folder
~ Ein Beispiel ist im Projektordner enthalten
=end
module Para_Map
# Maps, which allow Para Mapping
Map_List = [1]
def self.impassable
return Color.new(0,0,0)
end
def self.passable
return Color.new(255,255,255)
end
def self.uses_map?(id)
return true if Map_List.include?(id)
return false
end
end
module Cache
def self.map(name)
load_bitmap("Graphics/RAW_Maps/",name)
end
end
class Game_Map
attr_accessor :raw_sprite
alias raw_sprite_init setup_parallax
def setup_parallax
raw_sprite_init
if Para_Map.uses_map?(@map_id) and @parallax_name != nil
create_raw_sprite
end
end
def create_raw_sprite
if @raw_sprite != nil
@raw_sprite.bitmap.dispose
@raw_sprite.bitmap = nil
@raw_sprite = nil
end
@raw_sprite = Sprite.new
@raw_sprite.z = -100000
@raw_sprite.bitmap = Cache.map(@parallax_name+"_RAW")
end
alias raw_passability passable?
def passable?(x, y, flag = 0x01)
if Para_Map.uses_map?(@map_id) and @parallax_name != nil and @raw_sprite != nil
return false if @raw_sprite.bitmap.get_pixel(x*32,y*32) == Para_Map.impassable
return true if @raw_sprite.bitmap.get_pixel(x*32,y*32) == Para_Map.passable
else
raw_passability(x, y, flag = 0x01)
end
end
end
Demo
Mediafire ~ Para Maps (http://www.mediafire.com/?p66ks86642s89vl)
Screenshots
Screens sind denk ich mal nicht nötig ;)
Bugs und Fehler hier posten
mfg Hamster