• Anmelden

Red Jack

Unterstütztes Projekt: Soldiers Legacy

  • »Red Jack« ist der Autor dieses Themas
  • Nachricht senden

1

Sonntag, 9. Januar 2011, 13:33

Bilder laden

Guten Tag zusammen,
gibt es eine Möglichkeit, Bilder aus "Graphics/Pictures" zu laden, ohne sie anzeigen zu lassen?

Genauer gesagt möche ich ein Intro beim start des spieles anzeigen, welches aus 150 frames besteht. diese frames befinden sich im Pictures-Ordner, und heißen
"Intro001" bis "Intro150". Diese werden beim start des spiels per event der reihe nach angezeigt, aber die ganze sache lagt ziemlich...
wenn ich das intro 2x hintereinander abspielen lasse, geht es beim 2. mal jedoch flüssig.

also gibt es da irgend eine möglichkeit, die bilder (und zwar nur diese 150 bilder) vorher "einzuladen"?

lg,
hyuugacln

Motto: ich bin der brennende schinken

  • Nachricht senden

2

Sonntag, 9. Januar 2011, 14:33

Ruby Quellcode

1
2
3
150.times do |i|;
  RPG::Cache.picture(sprintf("Intro%03d.png",i));
end;
(@mods: code tags fixen plz!)
damit sollten alle in den cache vorgeladen werden können.
(150 bilder? oO)
;( :jagen:

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

3

Sonntag, 9. Januar 2011, 15:31

@Genocide: Wie oft denn noch, bei Ruby macht man keine Semikola <.<

@ hyuugacln: Vielleicht hilft dir auch das?
Video Script Problem
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Motto: ich bin der brennende schinken

  • Nachricht senden

4

Sonntag, 9. Januar 2011, 15:36

@Neo ich weiß aber der code tag ist kaputt, hab den ruby tag erst später hinzugefügt, aber um den code ned zum bugy einzeiler werden zu lassen brauchte ich semikola : )
;( :jagen:

Red Jack

Unterstütztes Projekt: Soldiers Legacy

  • »Red Jack« ist der Autor dieses Themas
  • Nachricht senden

5

Sonntag, 9. Januar 2011, 16:21

@neo-bahamut:

In der zeile:
"@sprite.bitmap = Bitmap.new(@files[@current_frame])"

tritt der fehler:
"cannot convert nil into string"
auf. was kann da schief gelaufen sein?

@beide: Danke für eure Hilfe!

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

6

Sonntag, 9. Januar 2011, 18:29

Die Zeile gibts zweimal ;)

Probiers so:
Spoiler

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
# zum Aufrufen des Videos / to call the video:
# $scene = Scene_VideoImageSequence.new(path, fps, stretch_to_fit_fullscreen)
# z.B. / e.g. : $scene = Scene_VideoImageSequence.new("Graphics/IntroVideo/", 25, true)
 
class Scene_VideoImageSequence
 
  def initialize(path, fps=25, stretch_to_full=false)
    @path = path
    @fps = fps
    @stretch_to_full = stretch_to_full
  end
 
  def main
    start_main
    Graphics.transition
    while @current_frame < @files.size
      Graphics.update
      Input.update
      update
    end
    Graphics.freeze
    end_main
  end
 
  def start_main
    @oldfps = Graphics.frame_rate
    Graphics.frame_rate = @fps
    @current_frame = 0
    @files = Dir.glob(@path+'*').sort
    @sprite = Sprite.new
    @sprite.z = 9999
    @sprite.bitmap = Bitmap.new(@files[@current_frame])
    if @stretch_to_full
      x, y = 640.0 / @sprite.bitmap.width, 480.0 / @sprite.bitmap.height
      @sprite.zoom_x, @sprite.zoom_y = x, y
    end
  end
 
  def end_main
    Graphics.frame_rate = @oldfps
    @files = nil
    @sprite.dispose
    GC.start
  end
 
  def update
    @sprite.bitmap.dispose
    @sprite.bitmap = Bitmap.new(@files[@current_frame])
    @current_frame += 1
  end
 
end
zum Lesen den Text mit der Maus markieren
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Red Jack

Unterstütztes Projekt: Soldiers Legacy

  • »Red Jack« ist der Autor dieses Themas
  • Nachricht senden

7

Sonntag, 9. Januar 2011, 19:20

es tritt noch immer der selbe fehler in zeile 32 auf :(

aber danke trotzdem :)

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

8

Sonntag, 9. Januar 2011, 21:05

In Zeile 32? oO
Das hieße, dass dein angegebender Ordner leer ist.
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Reborn

hat beim Stromkonzern schon Rabatt

Motto: Wer noch was vom Wochenende weis, hat es nie erlebt!

  • Nachricht senden

9

Freitag, 28. Januar 2011, 15:19

Normalerweise tritt der Fehler auf, wenn nil zu nem String konvertiert werden soll^^ und nicht wenn eine Datei nicht gefunden wird..
Und das ist eben bei Bitmap.new(str) der Fall dass dort str zu nem String konvertiert wird...
Also wirst du wohl irgendwie deinen Counter falsch gezählt haben lassen.
Das musst du dann halt debuggen, so z.B.:

Ruby Quellcode

1
2
3
4
5
6
begin
  @sprite.bitmap = Bitmap.new(@files[@current_frame])
rescue
  p @files
  p @current_frame, @files.size
end

Dann wirst du schon sehen was du falsch gezählt hast.

@neo
Wieso initialisierst du in deinem Script den GC neu?
Mehr als a Allgäuer ka a Mensch it wera.


Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?


Spoiler: OpenSource-Projects
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren

Ähnliche Themen

Social Bookmarks