Minigierka, dosyć znana, pojawiają nam się strzałki na ekranie i my musimy je naciskać by zdobyć punkty.
Instrukcja
Spoiler:
# By wywołać skrypt, w zdarzeniu wywołaj skrypt "$scene = Scene_OZ.new(st, iz, sz, id)"
# Gdzie:
# st - ilość pkt jaką trzeba zdobyć by wygrać
# iz - ilość znaków jakie będą się wyświetlać
# sz - szybkość
# id - numer przełącznika który będzie ustawiony na ON po wygranej grze
def refresh(prze,wynik=0)
self.contents.clear
self.contents.blt(219, 170, RPG::Cache.picture("ramka"), Rect.new(0, 0, 170, 170))
for i in 0...@znaki.size
self.contents.blt(prze, 180, RPG::Cache.picture(@znaki), Rect.new(0, 0, 150, 150))
prze += 250
end
self.contents.draw_text(0, 340, 608, 32, wynik.to_s, 1)
end
end
Scene_OZ
Spoiler:
##################################
######### Arrow Minigame #########
######### by Ferredingu #########
##################################
# By wywołać skrypt, w zdarzeniu wywołaj skrypt "$scene = Scene_OZ.new(st, iz, sz, id)"
# Gdzie:
# st - ilość pkt jaką trzeba zdobyć by wygrać
# iz - ilość znaków jakie będą się wyświetlać
# sz - szybkość
# id - numer przełącznika który będzie ustawiony na ON po wygranej grze
class Scene_OZ
def initialize(sk=0, iz=0, sz=0, id=0)
$prze = 608
@sk = sk
@znaki = []
@sz = sz
@z1 = "dol"
@z2 = "gora"
@z3 = "lewo"
@z4 = "prawo"
for i in 1...iz
x = rand(4)+1
@znaki << @z1 if x == 1
@znaki << @z2 if x == 2
@znaki << @z3 if x == 3
@znaki << @z4 if x == 4
end
@iz = iz
@wynik = 0
@id = id
end
def main
@spriteset = Spriteset_Map.new
@oz = Window_OZ.new(@znaki)
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@spriteset.dispose
@oz.dispose
end
def update
if @wynik == @sk
$game_switches[@id] = 1
$game_map.need_refresh = true
$scene = Scene_Map.new
end
$prze -= @sz
$prze -= @sz
$prze -= @sz
@oz.refresh($prze,@wynik)
if Input.trigger?(Input::
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if $prze <= 608 - 250 * (@iz+1)
$scene = Scene_Map.new
end
x = 245
y = 320
prze = $prze
for i in 0...@iz
if prze >= x and prze <= y
@wynik += 1 if Input.trigger?(Input::DOWN) and @znaki[(495 - prze)/250] == "dol"
@wynik += 1 if Input.trigger?(Input::UP) and @znaki[(495 - prze)/250] == "gora"
@wynik += 1 if Input.trigger?(Input::LEFT) and @znaki[(495 - prze)/250] == "lewo"
@wynik += 1 if Input.trigger?(Input::RIGHT) and @znaki[(495 - prze)/250] == "prawo"
end
x -= 250
y -= 250
end
end
end
Zrobiłem to wywołanie skryptu i jak podchodze do tego skryptu i klikam enter to mi wywala błąd 38
Kod:
@oz = Window_OZ.new(@znaki)
Może mam gdzieś ten środkowy spoiler wsadzić? Po co wogole to srodkowe podal?
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Nie 14 Mar, 2010 19:22
Nie rozumiem, to Ty dajesz skrypt, czy prosisz o pomoc, bo najwyraźniej nie umiesz czytać instrukcji. Skąd Ty wziąłeś '@oz = Window_OZ.new(@znaki)', przecież jest jasno napisane, że skrypt wywołuje się, że pomocą
Kod:
$scene = Scene_OZ.new(st, iz, sz, id)
Gdzie:
st - ilość pkt jaką trzeba zdobyć by wygrać
iz - ilość znaków jakie będą się wyświetlać
sz - szybkość
id - numer przełącznika który będzie ustawiony na ON po wygranej grze
Pomogła: 232 razy Dołączyła: 18 Wrz 2007 Posty: 2424
Wysłany: Nie 14 Mar, 2010 19:36
No to ja nie rozumiem, czego Ty oczekujesz? Zwróć się z pytaniem do Twórcy tego "Tutoriala"?! Do skryptu powinny być dołączone grafiki ramki i jakieś znaki. Poszukaj odpowiedzi na forum rmxp.pl.
Na to wygląda, że w ogóle nie zamieściłeś skryptu z oknem (drugi spoiler)
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum