PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : größeres Fenster



SMWma
09.11.2008, 18:45
Ich will, das das Fenster um 120 Pixel breiter, nur breiter, machen.
Es aber trotzdem weiterhin gleichviel von der Karte angezeigt werden und es soll nicht gezerrt werden. So, wie hier:
http://img338.imageshack.us/img338/9280/vorlageug8.th.png (http://img338.imageshack.us/my.php?image=vorlageug8.png)http://img338.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
Ich will sozusagen nur mehr Platz für Bilder schaffen.
Die Bild-Coordinaten also um 120 in die breite wachsen.
Wenn fragen, stellt sie hier.

Shining Advances
09.11.2008, 19:53
musst das script über main einfügen
wenn du spezielle sachen nicht verschoben haben willst musst du bei viewport das 120 durch 0 ersetzen

für map(sowohl map als auch events)
@viewport1 = Viewport.new(0, 0, 640, 480)

für bilder(nur die show picture bilder, per RGSS aufgerufen werden sie noch normal angezeigt)
@viewport2 = Viewport.new(0, 0, 640, 480)


class Spriteset_Map
def initialize
# Make viewports
@viewport1 = Viewport.new(120, 0, 640, 480)
@viewport2 = Viewport.new(120, 0, 640, 480)
@viewport3 = Viewport.new(120, 0, 640, 480)
@viewport2.z = 200
@viewport3.z = 5000
# Make tilemap
@tilemap = Tilemap.new(@viewport1)
@tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
for i in 0..6
autotile_name = $game_map.autotile_names[i]
@tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
end
@tilemap.map_data = $game_map.data
@tilemap.priorities = $game_map.priorities
# Make panorama plane
@panorama = Plane.new(@viewport1)
@panorama.z = -1000
# Make fog plane
@fog = Plane.new(@viewport1)
@fog.z = 3000
# Make character sprites
@character_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
@character_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
# Make weather
@weather = RPG::Weather.new(@viewport1)
# Make picture sprites
@picture_sprites = []
for i in 1..50
@picture_sprites.push(Sprite_Picture.new(@viewport2,
$game_screen.pictures[i]))
end
# Make timer sprite
@timer_sprite = Sprite_Timer.new
# Frame update
update
end
end
#==============================================================================
# ■ Win32API
#------------------------------------------------------------------------------
#==============================================================================

class Win32API
#--------------------------------------------------------------------------
# - define constant
#--------------------------------------------------------------------------
GAME_INI_FILE = ".\\Game.ini" # define "Game.ini" file
HWND_TOPMOST = 0 # window always active
HWND_TOP = -1 # window active when used only
SWP_NOMOVE = 0 # window pos and sizes can be changed
#--------------------------------------------------------------------------
# - Win32API.GetPrivateProfileString // check your game title in Game.ini
#--------------------------------------------------------------------------
def Win32API.GetPrivateProfileString(section, key)
val = "\0"*256
gps = Win32API.new('kernel32', 'GetPrivateProfileString',%w(p p p p l p), 'l')
gps.call(section, key, "", val, 256, GAME_INI_FILE)
val.delete!("\0")
return val
end
#--------------------------------------------------------------------------
# - Win32API.FindWindow // find the RGSS window
#--------------------------------------------------------------------------
def Win32API.FindWindow(class_name, title)
fw = Win32API.new('user32', 'FindWindow', %(p, p), 'i')
hWnd = fw.call(class_name, title)
return hWnd
end
#--------------------------------------------------------------------------
# - Win32API.SetWindowPos // change window positions and sizes
#--------------------------------------------------------------------------
def Win32API.SetWindowPos(w, h)
title = Win32API.GetPrivateProfileString("Game", "Title")
hWnd = Win32API.FindWindow("RGSS Player", title)
swp = Win32API.new('user32', 'SetWindowPos', %(l, l, i, i, i, i, i), 'i')
win = swp.call(hWnd, HWND_TOP, 370, 260, w + 6, h + 32, 0)

#the line below makes the window on top of all others
#win = swp.call(hWnd, HWND_TOPMOST, 0, 0, w + 6, h + 32, SWP_NOMOVE)
return win
end
#--------------------------------------------------------------------------
# - Win32API.client_size // check the window width and height
#--------------------------------------------------------------------------
def Win32API.client_size
title = Win32API.GetPrivateProfileString("Game", "Title")
hWnd = Win32API.FindWindow("RGSS Player", title)
rect = [0, 0, 0, 0].pack('l4')
Win32API.new('user32', 'GetClientRect', %w(l p), 'i').call(hWnd, rect)
width, height = rect.unpack('l4')[2..3]
return width, height
end
end

#==============================================================================
# - proceed with creation of the window
#------------------------------------------------------------------------------
# the width and height variables set the screen size.
#==============================================================================

win = Win32API.SetWindowPos(640+120, 480)
if(win == 0)
p "Fenstergröße konnte nicht geändert werden."
end

mfg Shinni

SMWma
09.11.2008, 20:34
es gibt zeiten, da wünschte ich mir 10.000€uro, damit ich sie dir als dank schencken könnte...
Naja, vielen herzlichen dank und wilkommen bei den Credits;)
Naja, wenn ich doch bloß wüsste, wie ich Bilder per Call-Script anzeigen könnte?
Und sie dann mit einen Call-Script bewegen könnte?
Aber ich will, das die Coordinaten der Bilder mit dem normalen Event-befehl nicht verändert werden...