Wie können wir Aktionen für Sequenz-UIB-Schaltflächen ausführen?

8

Wie mein Screenshot zeigt, arbeite ich an einem Wort-Matching-Spiel. In diesem Spiel weise ich meine Wörter verschiedenen UIB-Tasten in einer bestimmten Reihenfolge auf verschiedenen Locations zu (mein roter Pfeil zeigt diese Sequenz an) und den restlichen UIB-Buttons, denen ich eins zuweise zufälliges Zeichen (AZ) .wenn ich auf irgendwelche UIButtons klicke, wird sein Titel UILabel zugewiesen, das in Fornt des gegenwärtigen Abschnitts ist: ich campage diesen UILabel Text unter UILabels Text, der nicht für timer.when es mit irgendwelchen meiner übereinstimmt UILabels wird gelöscht. Ich implementiere all diesen Prozess bereits.

Aber mein Problem ist das, was durch schwarze Linien angezeigt wird. Wenn der Spieler das erste Wort findet, das "HUND" ist. er klickt auf die zwei UIButtons in Sequence, aber drücke nicht die Dritte in Sequence. (wie mit schwarzer Linie gezeigt) .so möchte ich, dass wenn Spieler irgendwelche UIButtons drückt, die nicht in Sequence sind, entferne den vorherigen Text (was " DO ") von UILabel und jetzt der Text von UILabel ist nur" G ". Hier ist mein Code, um die UIButtons Titel zu erhalten und ihm UILabel zuzuordnen.

%Vor%

Danke im Voraus

    
jamil 29.05.2012, 08:54
quelle

4 Antworten

2

Weisen Sie jeder Schaltfläche von links nach rechts ein Tag zu. So wirst du haben,

GButton.tag = 0; TButton.tag = 1; DButton.tag = 2; . . . VButton.tag = 9; . . . EButton.tag = 18; . . . CButton.tag = 26;

Behalten Sie jetzt die Spur der vorherigen gedrückten Taste und der aktuellen gedrückten Taste. Rufen Sie die unten stehende Funktion auf, wenn Ihr Buttondelegat auftrifft:

Schreiben Sie den folgenden Code in Ihre .h-Datei

%Vor%

Ich hoffe, es wird helfen.

    
Apurv 06.06.2012, 07:18
quelle
2
___ answer10833391 ___

Wenn ich richtig verstanden habe, müssen Sie wissen, ob die gedrückte Taste neben der zuvor gedrückten Taste ist? Verwenden Sie diese Funktion, um die Umgebung im Grid zu testen:

%Vor%

Und nur anhängen, wenn sie benachbart sind, dh:

%Vor%     
___ answer 10858179 ___

Spaßfrage: In diesem speziellen Fall stimme ich Luke darin zu, das UIButton zu untergliedern. Auf diese Weise können Sie jeder Schaltfläche einen (X, Y) auf Ihrem Raster und eine (Xnext, Ynext) Liste für alle möglichen nächsten Druckpositionen geben (wenn die Schaltfläche selbst mehrere Wörter erzeugen kann). Extern vergleichen Sie den aktuellen Treffer mit dem erwarteten (Xnext, Ynext). Wenn die beiden nicht übereinstimmen, ist dies das Signal, nach dem Sie suchen.

Dies ist eine Antwort, die all Ihre Situationen berücksichtigt, vorwärts und rückwärts horizontal (wenn Sie sich dazu entscheiden, Backware zu implementieren), vertikal nach oben und unten (wenn Sie nach oben implementieren) und jede Diagonale oder eine andere Kombination kann sich ergeben!

Dies berücksichtigt auch, sagen wir, schlagen das D, dann das O dann versuchen, die D wieder gegen die G drücken. Es kümmert sich auch um das falsche G treffen.

Erstellen Sie ein neues .m .h-Dateipaar (ein neues Objekt) und geben Sie ihm Ihren Namen.

Ein Beispielcode für die Implementierung einer benutzerdefinierten UIButton (h-Datei):

%Vor%

In der .m-Datei Ihres

%Vor%

Sie benötigen nun auch ein "GridPointNext" -Objekt.

Der Grid-Objekt-Header sollte wie folgt aussehen:

%Vor%

Die m-Datei für das Objekt sollte wie folgt aussehen:

%Vor%

Sie müssen sich mit dem Dealloc-Teil befassen. Dies gibt Ihnen zumindest einige Werkzeuge zum Erstellen Ihrer benutzerdefinierten Schaltfläche und Ihres Wortlistenalgorithmus.

    
___ qstntxt ___

Wie mein Screenshot zeigt, arbeite ich an einem Wort-Matching-Spiel. In diesem Spiel weise ich meine Wörter verschiedenen UIB-Tasten in einer bestimmten Reihenfolge auf verschiedenen Locations zu (mein roter Pfeil zeigt diese Sequenz an) und den restlichen UIB-Buttons, denen ich eins zuweise zufälliges Zeichen (AZ) .wenn ich auf irgendwelche UIButtons klicke, wird sein Titel UILabel zugewiesen, das in Fornt des gegenwärtigen Abschnitts ist: ich campage diesen UILabel Text unter UILabels Text, der nicht für timer.when es mit irgendwelchen meiner übereinstimmt UILabels wird gelöscht. Ich implementiere all diesen Prozess bereits.

Aber mein Problem ist das, was durch schwarze Linien angezeigt wird. Wenn der Spieler das erste Wort findet, das "HUND" ist. er klickt auf die zwei UIButtons in Sequence, aber drücke nicht die Dritte in Sequence. (wie mit schwarzer Linie gezeigt) .so möchte ich, dass wenn Spieler irgendwelche UIButtons drückt, die nicht in Sequence sind, entferne den vorherigen Text (was " DO ") von UILabel und jetzt der Text von UILabel ist nur" G ". Hier ist mein Code, um die UIButtons Titel zu erhalten und ihm UILabel zuzuordnen.

%Vor%

Danke im Voraus

    
___ answer10909773 ___

Weisen Sie jeder Schaltfläche von links nach rechts ein Tag zu. So wirst du haben,

GButton.tag = 0; TButton.tag = 1; DButton.tag = 2; . . . VButton.tag = 9; . . . EButton.tag = 18; . . . CButton.tag = 26;

Behalten Sie jetzt die Spur der vorherigen gedrückten Taste und der aktuellen gedrückten Taste. Rufen Sie die unten stehende Funktion auf, wenn Ihr Buttondelegat auftrifft:

Schreiben Sie den folgenden Code in Ihre .h-Datei

%Vor%

Ich hoffe, es wird helfen.

    
___ tag123iphone ___ Verwenden Sie diesen Tag NICHT, es sei denn, Sie wenden sich speziell an Apple's iPhone und / oder iPod touch. Verwenden Sie für nicht hardwareabhängige Fragen das Tag [ios]. Weitere zu betrachtende Tags sind [xcode] (aber nur, wenn es sich um die IDE selbst handelt), [swift], [objective-c] oder [cacao-touch] (aber nicht [cocoa]). Bitte verzichten Sie auf Fragen zum iTunes App Store oder zu iTunes Connect. Wenn Sie C # verwenden, markieren Sie mit [mono]. ___ qstnhdr ___ Wie können wir Aktionen für Sequenz-UIB-Schaltflächen ausführen? ___ tag123ios ___ iOS ist das mobile Betriebssystem, das auf dem Apple iPhone, iPod touch und iPad ausgeführt wird. Verwenden Sie dieses Tag [ios] für Fragen zur Programmierung auf der iOS-Plattform. Verwenden Sie die verwandten Tags [objective-c] und [swift] für Probleme, die für diese Programmiersprachen spezifisch sind. ___ answer10860766 ___

Wenn ich das richtig verstehe. Der Benutzer kann nur ein richtiges Wort haben, wenn die gewählten Buchstaben alle nebeneinander sitzen?

Haben Sie das versucht: Behalte zwei Referenzen. Ein UIButton für previousPressedButton und ein UIButton für lastPressedButton.

Zuerst drückt ein Benutzer D. lastPressedButton verweist auf D. Dann drückt ein Benutzer O. previousPressedButton wird D sein. LastPressedButton wird O sein.

Ermitteln Sie jetzt die Breite und Höhe der UIB-Tasten und vergleichen Sie, ob lastPressedButton.frame.origin.x kleiner als width oder -width ist. Überprüfen Sie auch, ob lastPressedButton.frame.origin.y kleiner als Höhe oder -höhe ist. Jetzt wissen Sie, ob es den vorherigen Knopf berührt. Verwenden Sie dies, um zu entscheiden, ob es ein neues Wort ist oder nicht.

Ich würde dies in eine Methode einfügen.

%Vor%

Dann, wenn auf eine Schaltfläche geklickt wird. Sie können

verwenden %Vor%

Oder, wenn ich das anders verstehe. Die Wörter können nur gemacht werden, wenn die Buchstaben in einer Reihe sind. Wie: Von links nach rechts. Von unten nach oben. Von unten rechts nach oben links etc. In diesem Fall bestimmen Sie alle Richtungen. Wie oben links ist 0, oben ist 1, oben rechts ist 2. rechts ist 3. unten rechts ist 4. unten ist 5. unten links ist 6. links ist 7.

Speichern Sie die Anweisungen, wenn Sie auf zwei Schaltflächen klicken. Beispielsweise: Wenn es von links nach rechts ist, Richtung = 3; Wenn Sie dann auf eine andere Schaltfläche klicken, überprüfen Sie die neue Richtung. Wenn es 3 ist, ist das Wort immer noch in der gleichen Richtung. Wenn es etwas anderes ist, dann lösche und fange neu an.

Hoffe, das hilft.

    
___ tag123uibutton ___ UIButton ist eine Unterklasse von UIView zum Anzeigen von Schaltflächen in iOS. Es implementiert das Zielaktionsparadigma, um Ereignisse an die Controller-Schicht zu senden. ___ tag123algorithm ___ Ein Algorithmus ist eine Folge wohldefinierter Schritte, die eine abstrakte Lösung für ein Problem definieren. Verwenden Sie dieses Tag, wenn sich Ihr Problem auf den Algorithmusentwurf bezieht. ___ tag123uilabel ___ Die UILabel-Klasse implementiert eine schreibgeschützte Textansicht in iOS. Sie können diese Klasse verwenden, um eine oder mehrere Zeilen mit statischem Text zu zeichnen, beispielsweise solche, mit denen Sie andere Teile Ihrer Benutzeroberfläche identifizieren können. Die Basisklasse UILabel bietet Unterstützung für einfaches und komplexes Formatieren des Beschriftungstexts. Sie können auch Aspekte der Darstellung steuern, z. B. ob das Label einen Schatten verwendet oder mit einem Highlight zeichnet. ___
trumpetlicks 01.06.2012 22:39
quelle
1

Wenn ich richtig verstanden habe, müssen Sie wissen, ob die gedrückte Taste neben der zuvor gedrückten Taste ist? Verwenden Sie diese Funktion, um die Umgebung im Grid zu testen:

%Vor%

Und nur anhängen, wenn sie benachbart sind, dh:

%Vor%     
Paul de Lange 31.05.2012 12:14
quelle
0

Wenn ich das richtig verstehe. Der Benutzer kann nur ein richtiges Wort haben, wenn die gewählten Buchstaben alle nebeneinander sitzen?

Haben Sie das versucht: Behalte zwei Referenzen. Ein UIButton für previousPressedButton und ein UIButton für lastPressedButton.

Zuerst drückt ein Benutzer D. lastPressedButton verweist auf D. Dann drückt ein Benutzer O. previousPressedButton wird D sein. LastPressedButton wird O sein.

Ermitteln Sie jetzt die Breite und Höhe der UIB-Tasten und vergleichen Sie, ob lastPressedButton.frame.origin.x kleiner als width oder -width ist. Überprüfen Sie auch, ob lastPressedButton.frame.origin.y kleiner als Höhe oder -höhe ist. Jetzt wissen Sie, ob es den vorherigen Knopf berührt. Verwenden Sie dies, um zu entscheiden, ob es ein neues Wort ist oder nicht.

Ich würde dies in eine Methode einfügen.

%Vor%

Dann, wenn auf eine Schaltfläche geklickt wird. Sie können

verwenden %Vor%

Oder, wenn ich das anders verstehe. Die Wörter können nur gemacht werden, wenn die Buchstaben in einer Reihe sind. Wie: Von links nach rechts. Von unten nach oben. Von unten rechts nach oben links etc. In diesem Fall bestimmen Sie alle Richtungen. Wie oben links ist 0, oben ist 1, oben rechts ist 2. rechts ist 3. unten rechts ist 4. unten ist 5. unten links ist 6. links ist 7.

Speichern Sie die Anweisungen, wenn Sie auf zwei Schaltflächen klicken. Beispielsweise: Wenn es von links nach rechts ist, Richtung = 3; Wenn Sie dann auf eine andere Schaltfläche klicken, überprüfen Sie die neue Richtung. Wenn es 3 ist, ist das Wort immer noch in der gleichen Richtung. Wenn es etwas anderes ist, dann lösche und fange neu an.

Hoffe, das hilft.

    
Tjeerd in 't Veen 02.06.2012 08:01
quelle