Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 22.10.2008, 20:35 Titel: Multikey = 0 |
|
|
wie kann man überprüfen ob eine taste nicht mehr gedrückt wird???
Code: |
declare sub oben
declare sub unten
declare sub links
declare sub rechts
declare sub obenlinks
declare sub untenlinks
declare sub obenrechts
declare sub untenrechts
do
if multikey (&H48) then oben
if multikey (&H4B) then links
if multikey (&H50) then unten
if multikey (&H4D) then rechts
if multikey (&H48) and multikey (&H4B) then obenlinks
if multikey (&H48) and multikey (&H4D) then obenrechts
if multikey (&H50) and multikey (&H4B) then untenlinks
if multikey (&H50) and multikey (&H4D) then untenrechts
loop until inkey = chr(27)
sub oben
print "oben"
do
loop until multikey (&H)'??????????????????????
end sub
sub unten
print "unten"
end sub
sub rechts
print "rechts"
end sub
sub links
print "links"
end sub
sub untenrechts
print "untenrechts"
end sub
sub untenlinks
print "untenlinks"
end sub
sub obenrechts
print "obenrechts"
end sub
sub obenlinks
print "obenlinks"
end sub
|
|
|
Nach oben |
|
 |
frebas
Anmeldungsdatum: 20.06.2008 Beiträge: 245
|
Verfasst am: 22.10.2008, 20:48 Titel: |
|
|
mit else:
Code: |
if multikey (&H48) then
oben
else
nicht gedruckt
endif
|
edit: Danke, geht das wirklich so einfach mit den SUBs also mit then und danach einfach den namen der sub? Ich hab mir immer alles so kompliziert vorgestellt  |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 22.10.2008, 20:59 Titel: |
|
|
xD np
da haben wir uns wohl gegenseitig geholfen thx
Mfg Sippo |
|
Nach oben |
|
 |
frebas
Anmeldungsdatum: 20.06.2008 Beiträge: 245
|
Verfasst am: 22.10.2008, 21:28 Titel: |
|
|
es müsste aber auch so gehen:
Code: |
IF MULTIKEY (&H48) THEN oben
IF MULTIKEY (&H48) = 0 THEN nichtoben
|
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 22.10.2008, 21:34 Titel: |
|
|
ist aber unsauberer als eine ELSE-Anweisung. Moment mal, der ganze programmierstil hier ist unsauber...  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 22.10.2008, 21:38 Titel: |
|
|
Code: | Dim As Sub Handler ()
Handler = *IIf(MultiKey(&h48), @oben, @nichtoben)
Handler() |
|
|
Nach oben |
|
 |
frebas
Anmeldungsdatum: 20.06.2008 Beiträge: 245
|
Verfasst am: 22.10.2008, 21:53 Titel: |
|
|
wofür sind eigentlich die ganzen Subs gut? |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 23.10.2008, 16:29 Titel: |
|
|
Will keine gotos verwenden und functions und so kenn ich noch nict so gut. Außerdem fällt mir so auf anhib keine andre "gründliche" art ein. |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 23.10.2008, 16:41 Titel: |
|
|
Kann man bei Multikey nicht mit case arbeiten? (mein versuch klappte nicht... hab aber auch nich in die ref geguckt o.ä.)[/code] _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
frebas
Anmeldungsdatum: 20.06.2008 Beiträge: 245
|
Verfasst am: 23.10.2008, 16:52 Titel: |
|
|
Sippo hat Folgendes geschrieben: | Will keine gotos verwenden und functions und so kenn ich noch nict so gut. Außerdem fällt mir so auf anhib keine andre "gründliche" art ein. |
Was in der SUB drin steht kannst du doch einfach nach dem then schreiben. |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 23.10.2008, 16:57 Titel: |
|
|
da schon aber beu andern programmen eben net |
|
Nach oben |
|
 |
frebas
Anmeldungsdatum: 20.06.2008 Beiträge: 245
|
Verfasst am: 23.10.2008, 17:02 Titel: |
|
|
das hinter dem then kann auch mehrzeilig sein aber dann muss da noch ein endif stehen also:
Code: |
if variable = 1 then
print "blabla"
x = x + 1
endif
|
|
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 23.10.2008, 17:10 Titel: |
|
|
jo kla aber s is einfacher n subb zu nehmen,wenn ich z.b. getmouse brauch oder mehrere bedingungen hab |
|
Nach oben |
|
 |
frebas
Anmeldungsdatum: 20.06.2008 Beiträge: 245
|
Verfasst am: 23.10.2008, 17:16 Titel: |
|
|
Achso, das ist natürlich Ansichtssache.
Ich war nur erst irritiert weil in den Code von dir so viel steht obwohl auch weniger die Hälfte reichen würde. |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 23.10.2008, 17:56 Titel: |
|
|
ich arbeite halt normalerweise mit subs und bin des so gewohnt
aber hier sieht man auch warum:
hab nen fehler in den code gebaut:
Code: |
cls
dim as integer a,b,c,d,e,f,g,h,i,j
screen 15
a = 0
b = 0
c = 0
d = 0
e = 0
f = 0
g = 0
h = 0
j = 0
do
j = 0
print "1 ="; a
print "2 ="; b
print "3 ="; c
print "4 ="; d
print "5 ="; e
print "6 ="; f
print "7 ="; g
print "8 ="; h
input "Welchen Wert aendern?"; i
if i = 9 then end
if i = 1 and j = 0 and a = 0 then a = 1 and j = 1
if i = 1 and j = 0 and a = 1 then a = 0 and j = 1
if i = 2 and b = 0 and j = 0 then b = 1 and j = 1
if i = 2 and b = 1 and j = 0 then b = 0 and j = 1
if i = 3 and c = 0 and j = 0 then c = 1 and j = 1
if i = 3 and c = 1 and j = 0 then c = 0 and j = 1
if i = 4 and d = 0 and j = 0 then d = 1 and j = 1
if i = 4 and d = 1 and j = 0 then d = 0 and j = 1
if i = 5 and e = 0 and j = 0 then e = 1 and j = 1
if i = 5 and e = 1 and j = 0 then e = 0 and j = 1
if i = 6 and f = 0 and j = 0 then f = 1 and j = 1
if i = 6 and f = 1 and j = 0 then f = 0 and j = 1
if i = 7 and g = 0 and j = 0 then g = 1 and j = 1
if i = 7 and g = 1 and j = 0 then g = 0 and j = 1
if i = 8 and h = 0 and j = 0 then h = 1 and j = 1
if i = 8 and h = 1 and j = 0 then h = 0 and j = 1
loop until inkey = chr (27)) |
|
|
Nach oben |
|
 |
frebas
Anmeldungsdatum: 20.06.2008 Beiträge: 245
|
Verfasst am: 23.10.2008, 18:09 Titel: |
|
|
Was ist das denn für ein Programm, wofür ist das?
Ich würde noch ein cls am anfang der do...loop schleife hinzufügen weil dann ist das nachher im Programm übersichtlicher.
Das cls am Anfang macht keinen Sinn und den sinn von j versteh ich nicht.
und dass immer null bei allen werten steht liegt daran dass die werte immer wieder in dem nächsten if-then Abschnitt auf 0 gesetzt werden. Das ist der gleiche fehler wie bei dem anderen problem.
das entspricht in etwa dem hier:
Code: | if wert = 1 then wert = 0 'hier wird wert 0 weil er 1 ist
if wert = 0 Then wert = 1 'und hier wird wert wieder 1 |
|
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 23.10.2008, 19:05 Titel: |
|
|
Eben das Problem soll ja j verhindern |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 23.10.2008, 19:15 Titel: |
|
|
lol, hast du noch nie was von arrays gehört? _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Muttonhead

Anmeldungsdatum: 26.08.2008 Beiträge: 565 Wohnort: Jüterbog
|
Verfasst am: 23.10.2008, 19:57 Titel: |
|
|
Tach ooch sippo
Code: | IF i = 1 AND j = 0 AND a = 0 THEN a = 1 AND j = 1
IF i = 1 AND j = 0 AND a = 1 THEN a = 0 AND j = 1 |
Was soll die Variable a hier eigentlich machen? Wenn ich es richtig verstehe soll sie 1 werden wenn sie 0 bzw 0 wenn sie 1 ist??
Richtig?? dann versuch doch mal dies hier:
Code: | if i=1 then
if a=0 then a=1 else a=0
end if |
"Wenn a=0 dann a=1 ansonsten (also a nicht 0 ) a=0"
Dann wechselt a bei jedem INPUT von 1 immer zwischen 0 und 1
Muttonhead |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 23.10.2008, 21:17 Titel: |
|
|
mal wieder die typische "wie sag ich's meinem computer"-methode...
AND ist ein logisches Gatter, keine Verknüpfung von Befehlen!!!
Code: |
if i = 1 then
a = not a
j = not j
end if
|
wobei ja a und b denselben wert haben... _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
|