Welche Schleife passt am besten?
Übersicht

![]() |
SereyanneBetreff: Welche Schleife passt am besten? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
ich habe schon wieder ein kleines Problem. Ist ja nicht so dass ich nicht mit Schleifen umgehen könnte. Aber scheinbar nicht gut genug. Ein blödsinniger Code, zum leichten Verständnis meines Problems: Code: [AUSKLAPPEN] Function Menu()
Repeat Flip 0 ClsColor 0,0,0 Cls pfeil=LoadImage("gfx/pfeil.bmp") MaskImage pfeil,0,0,0 DrawImage pfeil, 220,180 Text 270,20, "Menü" Text 270,180, "Items" Text 270,220, "Speichern" Text 270,260, "Beenden" If KeyHit(208) Then Rect 220,180,40,40 DrawImage pfeil,220,220 EndIf Until KeyHit(menu) ClsColor 29,88,15 FlushKeys End Function So geht es jedenfalls nicht dass die If-Bedingung abgefragt wird. Mit While/Wend irgendwie auch nicht. welche schleife eignet sich dafür und wie funktioniert es? bitte helft mir.... |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bilder niemals innerhalb einer Schleife laden! ![]() Es wäre auch ganz gut, wenn du dein Problem etwas genauer beschreibst. In Schleifen werden nur Dinge wiederholt, das hat mit If-Bedingungen nichts zu tun. |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Until KeyHit(menu) Ich hoffe mal "mneu" ist eine vordefinierte Variable. Keyhit=Tastaturkeys |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
KeyHit(208) trifft nur dann zu, wenn du auf die Taste drückst, also im Millisekundenbereich. Endweder Keydown benutzen oder eine variable die die anzeige steuert. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Sereyanne |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Bilder niemals innerhalb einer Schleife laden!
Ok sorry ich wollte das bild nicht global deklarieren weil ich es nur in dieser funktion brauche. Zitat: Es wäre auch ganz gut, wenn du dein Problem etwas genauer beschreibst.
Ich dachte eigentlich mein Code wäre selbsterklärend. Also ich versuche ein Pausenmenü zu coden, in dem man die Möglichkeit hat, Items auszuwählen, zu speichern oder das Spiel zu beenden. Ich kriege nur diesen Pfeil nicht bewegt. Zitat: Ich hoffe mal "mneu" ist eine vordefinierte Variable.
Ja klar. Das hab ich mittlerweile gelernt ^^ Code: [AUSKLAPPEN] Const reden = 30, menu=28, abbruch=14
und mit keydown verschwindet der pfeil wieder wenn ich die taste loslasse! |
||
Shark |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
Code: [AUSKLAPPEN] Function Menu() pfeil=LoadImage("gfx/pfeil.bmp") MaskImage pfeil,0,0,0 Repeat local mx% = MouseX(), my% = MouseY() ClsColor 0,0,0 Cls DrawImage pfeil, mx,my Text 270,20, "Menü" Text 270,180, "Items" Text 270,220, "Speichern" Text 270,260, "Beenden" If KeyHit(208) Then Rect 220,180,40,40 DrawImage pfeil,220,220 EndIf Flip 0 Until KeyHit(menu) ClsColor 29,88,15 FlushKeys End Function Ich hab mal dein Code bissel geändert. Und zwar das Laden vom Pfeil und maskieren vor der Schleife. Und falls du den Pfeil mit der Mouse bewegen willst, dann hättest du einfach das Bild auf MouseX() und MouseY() zeichnen soll. So was mir nur schleierhaft ist, ist dieser Teil: Code: [AUSKLAPPEN] If KeyHit(208) Then Rect 220,180,40,40 DrawImage pfeil,220,220 EndIf Was willst du damit bezwecken ![]() mfg Shark |
||
![]() |
Sereyanne |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Was willst du damit bezwecken
Das war einfach nur ein blöder Code als Platzhalter. Soll bezwecken dass der Pfeil durch ein schwarzes Rechteck übermalt wird und an anderer Stelle erscheint. Hab ich aber schon durch einen vernünftigen Bewegungscode, ähnlich dem meiner Spielfigur, ersetzt. Danke für den Code, aber eigentlich wollte ich ohne die Maus arbeiten. |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
du willst das etwas an und danach wieder aus geht:
zustand=NOT zustand;zustand wird immer zu dem was er vorher nicht war: Code: [AUSKLAPPEN] If Keyhit(...)
zustand=not zustand Endif If zustand ... Endif |
||
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Xeres hat Folgendes geschrieben: KeyHit(208) trifft nur dann zu, wenn du auf die Taste drückst, also im Millisekundenbereich. Endweder Keydown benutzen oder eine variable die die anzeige steuert.
Falsch, KeyHit ist solange gültig bis es abgefragt oder FlushKeys() angewandt wird. mfG, Thorsten |
||
![]() |
Sereyanne |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke @Thorsten.
Hatte mich schon gewundert... Ich kann doch nicht den Knopf andauernd gedrückt halten müssen. Außerdem klappt es mit Keyhit wunderbar. Mein Problem hat sich mit einem vernünftigen Steuerungscode gelöst. Danke an alle!! |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group