You are not logged in.


xelax90

Neuer Clubber

  • "xelax90" started this thread

Posts: 1

Location: Deutschland

Occupation: Azubi

  • Send private message

1

Wednesday, August 2nd 2006, 2:02pm

warten befehl

Hallo,

wie ihr vielleicht wisst, wird ruby auch in dem RPG Maker Xp als programiersprache verwendet.
ich habe nun folgendes Problem:

Ich habe diesen Script:

@levelup_window = Window_LevelUpWindow.new(actor, last_level,
actor.maxhp - last_maxhp, actor.maxsp - last_maxsp, actor.str - last_str,
actor.dex - last_dex, actor.agi - last_agi, actor.int - last_int)
@levelup_window.visible = true
windowclose
for item in treasures
case item
when RPG::Item
$game_party.gain_item(item.id, 1)
when RPG::Weapon
$game_party.gain_weapon(item.id, 1)
when RPG::Armor
$game_party.gain_armor(item.id, 1)
end
end
end
def windowclose
# print ("hallo")
if Input.trigger? (Input::Enter)
# print ("hallo1")
@levelup_window.visible = false
end
end
end


Das Problem ist, das Programm wartet an der rot markierten stelle nicht auf die tasteneingabe, sondern geht direkt weiter, was das Schließen des Fensters unmöglich macht.
Ich habe das herrausgefunden, indem ich die beiden im momment auskommentierten print befehle eingefügt habe. wenn der erste fehlt, kommt der zweite nicht und nur, wenn der zweite kommt, schließt sich das Fenster.
da ich diese beiden print befehle nicht drin haben will, muss ich diese verzögerung irgendwie anders einbauen.
deshalb wollte ich fragen, ob es einen warten Befehl gibt.

danke im voraus,
xelax90

Invest0r

Active Clubbers

Posts: 754

Location: Luzern (Schweiz)

Occupation: Applikationsentwickler 3. Lehrjahr

  • Send private message

2

Friday, March 9th 2007, 11:41am

RE: warten befehl

Quoted



Does this do what you want?

print "What is your name "
name = readline
print "Hello, #{name}\n"

Or are you wanting to wait for a single keystroke? If so, what OS are
you using? AFAIK, there is no good operating system independent way to
do this, but there are good ways for any given OS.

-- Markus


On Sun, 2004-09-05 at 20:35, Phanixis wrote:
> I am new to Ruby an have what should be a simple problem. I want to create
> code that first accepts a user input from the keyboard, and then continues
> to execute code. I am capable of writing a method that registers input
> from a keyboard a stores them within variables for my needs. However,
> this methods executes so fast that unless a key was being pressed at the
> time it was called, it is impossible for the user the press the key in
> time.
>
> Currently, my only need is to collect an input from the keyboard, I am not
> interested in running any other methods concurrently while listening for
> user input. I just want to program to wait, and not act in any way, until
> an input from the keyboard is received.
>
> As a side note, is there anything similar to the Java "listeners" that I
> can use in Ruby.
>
> Thanks for your help.
>



Unten steht der Teil der gefragt wurde, oben die Antwort. Könnte hinkommen?

This post has been edited 1 times, last edit by "Invest0r" (Mar 9th 2007, 11:44am)


3

Sunday, March 8th 2009, 8:48pm

hey,

Vorweg:
Wenn du mit dem RMXP arbeitest, dann lohnt es sich sehr, RGSS-Fragen in einem solchen Forum zu schreiben.
Ich empfehle dir RPG-Studio , da ich dort selbst schon ein einhalb jahre bin und dort ist wirklich eine sehr gute community.

Zu deinem Problem:
Ich hab noch nicht ganz verstanden, was du mit deiner Methode erreichen willst, aber so wie du's erklärt hast, müsstest du die methode so umschreiben:

Source code

1
2
3
4
5
6
7
8
9
10
def windowclose
loop do
  Graphics.update
  Input.update
  if Input.trigger?(Input::C)
	     @levelup_window.visible = false
	break
  end
      end
    end


aus erfahrung glaub ich aber, dass das nicht das ist, was du suchst.
Der Code oben loopt so lange, bis du Enter drückst, dass heißt, es wird solange kein weiterer Code ausgeführt.

Wenn du mir sagst, ob das Window eine Instanz einer bestimmten Klasse ist, und von welcher, kann ich dir sicher besser weiterhelfen.
Am besten probierst du erstmal den Code aus, und sagst mir dann, was genau du suchst, mit einer genaueren Erklärung.

und nochmal: RGSS ist eine Bibliothek, die für den RPG Maker XP erstellt wurde. Ich glaube du wirst deshalb in einem RPG Maker XP Forum mehr Hilfe dafür finden.

cow

Edit: Ich seh grad das Datum von den vorherigen Posts :)
Scheint nicht so viel los zu sein hier im Ruby-Forum, oder?

Social bookmarks

Rate this thread