Problem mit Input()
Übersicht

CO2ehemals "SirMO"Betreff: Problem mit Input() |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
wenn man bei meinem Spiel auf 'neues Spiel' klickt, dann kommt die Namenseingabe. Um den Namen aber eingeben zu können muss man die linke Maustaste drücken (egal auf welcher Position). Ich möchte aber, dass entweder die Namenseingabe sofort aktiviert ist, oder dass man auf eine bestimmte Position klicken muss. ich geb euch ma den Code: Code: [AUSKLAPPEN] If(namenseingabe = 1) Then DrawImage namen, 0, 0 DrawImage zurueck, 150, 600 If(name$ < 1) Then DrawImage nichtweiter, 550, 600 Else DrawImage weiter, 550, 600 EndIf DrawImage mouse, MouseX(), MouseY() If(name$ > 1) Then Text 260, 375, "" + name$ + "" EndIf If ImagesOverlap(mouse, MouseX(), MouseY(), zurueck, 150, 600) Then DrawImage zurueck2, 150, 600 DrawImage mouse, MouseX(), MouseY() Text 0, 0, "Zurück zum Hauptmenü" If MouseHit(1) Then menu = 1 namenseingabe = 0 EndIf ElseIf ((name$ > 1) And ImagesOverlap(mouse, MouseX(), MouseY(), weiter, 550, 600)) DrawImage weiter2, 550, 600 DrawImage mouse, MouseX(), MouseY() Text 0, 0, "Los geht's!" If MouseHit(1) Then ingame = 1 namenseingabe = 0 EndIf EndIf If MouseDown(1) Then ;MAKIERTMAKIERT Locate 260, 375 name$ = Input("") DrawImage mouse, MouseX(), MouseY() CreateDir("USERDATA\" + name$ + "") CreateDir("USERDATA\" + name$ + "\save") EndIf EndIf Das ist schon alles in der 'repeat - until' Schleife. Wenn ich die Makierte Zeile (;MAKIERTMAKIERT) weglasse, lässt er das Hauptmenü (nicht den Namenseingabescreen) dort wo es ist und die eingabe ist auf dem Hauptmenü auf der angegebenen Position. Könnte mir iwer helfen? (Ich hoffe das ict verständlich ![]() |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
Jo0oker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
so, als erstes machst du folgendes: Code: [AUSKLAPPEN] ;Vor der Schleife Global MX; Global MY; ;Und in der Schleife dann: MX = MouseX() MY = MouseY() Finde ich persönlich schöner und vorteilhafter. Und nun zu deinem eigendlichen Problem, nimm doch einfach die Koordinaten mit in die IF-Abfrage: Code: [AUSKLAPPEN] If MouseDown(1)and (MX = 100) and (MY = 100) Then ;MAKIERTMAKIERT Locate 260, 375 name$ = Input("") DrawImage mouse, MX, MY CreateDir("USERDATA\" + name$ + "") CreateDir("USERDATA\" + name$ + "\save") EndIf Ich hoffe, das war dein Problem. Das Eingabefeld öffnet sich jetzt nur noch, wenn du mit der Maus an der Stelle 100/100 bist. lg Jo0oker |
||
Tehadon, das kostenlose 3D RPG
www.tehadon.de http://www.blitzforum.de/worklogs/14/ Das Abenteuer wird beginnen! |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
leider tut sich bei mir da gar nichts ![]() Wenn ich auf stelle 100/100 bin (makiert mit nem rect ![]() ![]() |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
Jo0oker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Genau bei 100/100 macht auch keinen sinn.
Musst halt wissen wo du die Position haben willst. So ist sie zum Beispiel in einem Quadrat, das die größe von 50x50 hat: Code: [AUSKLAPPEN] If MouseDown(1)and (MX => 50 and MX <= 100) and (MY => 50 and MY <= 100) Then ;MAKIERTMAKIERT Das passende Quadrat dazu wäre also: Code: [AUSKLAPPEN] Rect 50,100,50,100
lg Jo0oker |
||
Tehadon, das kostenlose 3D RPG
www.tehadon.de http://www.blitzforum.de/worklogs/14/ Das Abenteuer wird beginnen! |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Entweder bin ich zu blöd oder weiß gott was,
bei mir funzt das ned ich klicke wien bekloppten in dem rect rum aber nichts tut sich... Könnte man auch irgendwie programmieren, dass man sofort den Namen eingegeben kann (natürlich nur wenn man 'Neues Spiel' vorher geklickt hat)? |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
Jo0oker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bin auch ein DUmmbatz ey ![]() So geht es: Code: [AUSKLAPPEN] Global MX Global MY While Not KeyHit(1) MX = MouseX() MY = MouseY() Cls If MouseDown(1)And (MX => 50 And MX <= 100) And (MY => 50 And MY <= 100) Then ;MAKIERTMAKIERT Local name$ = Input("Name: ") EndIf Rect 50,50,50,50 Flip Wend lg Jo0oker |
||
Tehadon, das kostenlose 3D RPG
www.tehadon.de http://www.blitzforum.de/worklogs/14/ Das Abenteuer wird beginnen! |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ok funktioniert thx ![]() trotzdem noch die Frage: kann man auch ohne irgendetwas zu drücken den Namen sofort eingegeben? |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
![]() |
Jo0oker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Klar, einfach die Bedingung weglassen.
lg Jo0oker |
||
Tehadon, das kostenlose 3D RPG
www.tehadon.de http://www.blitzforum.de/worklogs/14/ Das Abenteuer wird beginnen! |
CO2ehemals "SirMO" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also ohne 'if'?
das hab ichon probiert, da ist aber der fehler, das irgendwo im hauptmenü das eingabefeld ist ![]() |
||
mfG, CO²
Sprachen: BlitzMax, C, C++, C#, Java Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group