Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mauspatch eingebaut und tata Maker spielt verrückt O.o



Multi-Master1988
21.11.2010, 00:04
So ich habe nun für mein Minispiel Tic Tac Toe den Mauspatch eingebaut
aber mein Problem ist jetzt wenn ich nun den Spielstein an eine bestimmte Position setzten möchte so
springt der Spielstein Links oder rechts neben den Corsur ich kann mir nicht mehr weiterhelfen mein Code ist fehlerfrei soweit ich das sehen kann hier wenn ich euch neugierig gemacht haben sollte:



- SCRIPT -
<> Play Sound Effect: GetMousePos.script, Volume 100%, Speed 100%, Pan Center
<> Change Variable: [1] = MIDI position (ticks)
<> Fork Condition: If Variable [1] == -10 then ...
. <> Change Variable: [3] = MIDI position (ticks)
. <> Change Variable: [4] = MIDI position (ticks)
. <> Change Variable: [6] = MIDI position (ticks)
. <> Move Picture: #20, (V[3], V[4]), Mgn 100%, Tsp 0%, 0,0 sec.
. <> Fork Condition: If Variable [6] == 1 then ...
. . <> Fork Condition: If Variable [3] <= 120 then ...
. . . <> Fork Condition: If Variable [4] <= 72 then ...
. . . . <> Fork Condition: If Variable [15] == 1 then ...
. . . . . <> Fork Condition: If Switch [3] == ON then ...
. . . . . . <> Play Sound Effect: Buzzer2, Volume 100%, Speed 100%, Pan Center
. . . . . . <> Wait: 1,0 sec.
. . . . . . <> Change Variable: [6] = 0
. . . . . . <>
. . . . . : Else ...
. . . . . . <> Play Sound Effect: Buzzer1, Volume 100%, Speed 100%, Pan Center
. . . . . . <> Wait: 0,3 sec.
. . . . . . <> Change Switch: [3] = ON
. . . . . . <> Change Variable: [22] = 1
. . . . . . <> Change Variable: [15] = 2
. . . . . . <> Change Switch: [15] = ON
. . . . . . <> Change Variable: [6] = 0
. . . . . . <>
. . . . . : End of fork
. . . . . <>
. . . . : Else ...
. . . . . <> Fork Condition: If Variable [15] == 2 then ...
. . . . . . <> Fork Condition: If Switch [3] == ON then ...
. . . . . . . <> Play Sound Effect: Buzzer2, Volume 100%, Speed 100%, Pan Center
. . . . . . . <> Wait: 1,0 sec.
. . . . . . . <> Change Variable: [6] = 0
. . . . . . . <>
. . . . . . : Else ...
. . . . . . . <> Change Switch: [3] = ON
. . . . . . . <> Change Variable: [31] = 1
. . . . . . . <> Change Variable: [15] = 1
. . . . . . . <> Change Switch: [14] = ON
. . . . . . . <> Change Variable: [6] = 0
. . . . . . . <>
. . . . . . : End of fork
. . . . . . <>
. . . . . : End of fork
. . . . . <>
. . . . : End of fork
. . . . <>
. . . : End of fork
. . . <>
. . : Else ...
. . . <> Comment: ------------------------------------------------------------------------------------------------------------------------
. . . <> Fork Condition: If Variable [3] <= 168 then ...
. . . . <> Fork Condition: If Variable [4] <= 72 then ...
. . . . . <> Fork Condition: If Variable [15] == 1 then ...
. . . . . . <> Fork Condition: If Switch [4] == ON then ...
. . . . . . . <> Play Sound Effect: Buzzer2, Volume 100%, Speed 100%, Pan Center
. . . . . . . <> Wait: 1,0 sec.
. . . . . . . <> Change Variable: [6] = 0
. . . . . . . <>
. . . . . . : Else ...
. . . . . . . <> Play Sound Effect: Buzzer1, Volume 100%, Speed 100%, Pan Center
. . . . . . . <> Wait: 0,3 sec.
. . . . . . . <> Change Switch: [4] = ON
. . . . . . . <> Change Variable: [23] = 1
. . . . . . . <> Change Variable: [15] = 2
. . . . . . . <> Change Switch: [15] = ON
. . . . . . . <> Change Variable: [6] = 0
. . . . . . . <>
. . . . . . : End of fork
. . . . . . <>
. . . . . : Else ...
. . . . . . <> Fork Condition: If Variable [15] == 2 then ...
. . . . . . . <> Fork Condition: If Switch [4] == ON then ...
. . . . . . . . <> Play Sound Effect: Buzzer2, Volume 100%, Speed 100%, Pan Center
. . . . . . . . <> Wait: 1,0 sec.
. . . . . . . . <> Change Variable: [6] = 0
. . . . . . . . <>
. . . . . . . : Else ...
. . . . . . . . <> Change Switch: [4] = ON
. . . . . . . . <> Change Variable: [32] = 1
. . . . . . . . <> Change Variable: [15] = 1
. . . . . . . . <> Change Switch: [14] = ON
. . . . . . . . <> Change Variable: [6] = 0
. . . . . . . . <>
. . . . . . . : End of fork
. . . . . . . <>
. . . . . . : Else ...
. . . . . . . <>
. . . . . . : End of fork
. . . . . . <>
. . . . . : End of fork
. . . . . <>
. . . . : End of fork
. . . . <>
. . . : Else ...
. . . . <> Comment: ------------------------------------------------------------------------------------------------------------------------
. . . . <> Fork Condition: If Variable [3] <= 216 then ...
. . . . . <> Fork Condition: If Variable [4] <= 72 then ...
. . . . . . <> Fork Condition: If Variable [15] == 1 then ...
. . . . . . . <> Fork Condition: If Switch [5] == ON then ...
. . . . . . . . <> Play Sound Effect: Buzzer2, Volume 100%, Speed 100%, Pan Center
. . . . . . . . <> Wait: 1,0 sec.
. . . . . . . . <> Change Variable: [6] = 0
. . . . . . . . <>
. . . . . . . : Else ...
. . . . . . . . <> Play Sound Effect: Buzzer1, Volume 100%, Speed 100%, Pan Center
. . . . . . . . <> Wait: 0,3 sec.
. . . . . . . . <> Change Switch: [5] = ON
. . . . . . . . <> Change Variable: [24] = 1
. . . . . . . . <> Change Variable: [15] = 2
. . . . . . . . <> Change Switch: [15] = ON
. . . . . . . . <> Change Variable: [6] = 0
. . . . . . . . <>
. . . . . . . : End of fork
. . . . . . . <>
. . . . . . : Else ...
. . . . . . . <> Fork Condition: If Variable [15] == 2 then ...
. . . . . . . . <> Fork Condition: If Switch [5] == ON then ...
. . . . . . . . . <> Play Sound Effect: Buzzer2, Volume 100%, Speed 100%, Pan Center
. . . . . . . . . <> Wait: 1,0 sec.
. . . . . . . . . <> Change Variable: [6] = 0
. . . . . . . . . <>
. . . . . . . . : Else ...
. . . . . . . . . <> Change Switch: [5] = ON
. . . . . . . . . <> Change Variable: [33] = 1
. . . . . . . . . <> Change Variable: [15] = 1
. . . . . . . . . <> Change Switch: [14] = ON
. . . . . . . . . <> Change Variable: [6] = 0
. . . . . . . . . <>
. . . . . . . . : End of fork
. . . . . . . . <>
. . . . . . . : Else ...
. . . . . . . . <>
. . . . . . . : End of fork
. . . . . . . <>
. . . . . . : End of fork
. . . . . . <>
. . . . . : End of fork
. . . . . <>
. . . . : Else ...
. . . . . <> Comment: ------------------------------------------------------------------------------------------------------------------------
. . . . . <>
. . . . : End of fork
. . . . <>
. . . : End of fork
. . . <>
. . : End of fork
. . <>
. : End of fork
. <>
: End of fork
<> Change Variable: [6] = 0
<> Wait: 0,0 sec.


Wär auch im Code selbst keinen fehler findet der kann gerne mal das Testprojekt anspielen:

http://www.npshare.de/files/507137eb/Technik%20I.rar

Solltet ihr euch beim ersten mal wundern hä? Da ist doch alles richtig so probiert doch mal alle Kombinationsmöglichkeiten aus und spielt es ein paar mal öfters hierzu sei gesagt habe ich bis jetzt nur die erste Zeile vollständig gescriptet bis mir der Fehler aufgefallen ist.

Also wäre schön wenn mir jemand weiterhelfen könnte!^^

Lg
Multi-Master1988

Corti
21.11.2010, 02:33
Ich habs mir mal grade angesehen (Tipp an jene, bei denen die Maus nicht funktioniert: harmony.dll und oldharmony ausm Tastenpatch ins Projektverzeichnis packen) und versucht rauszufinden wo das Problem liegt.

Erkenntnis: Die Mausposition wird jederzeit korrekt erkannt, das Problem ist also in deiner Verarbeitung.


mein Code ist fehlerfrei soweit ich das sehen kann
Dein Code ist nicht fehlerfrei und zudem so schrecklich strukturiert, dass du selbst keinen Überblick mehr hast was wo genau passiert.

Tipp: Schmeiss weg, alles. Und dann überleg dir, wie man das ganze wirklich vernünftig organisieren könnte. Zerleg das System in Stücke, die man einzelnd basteln und auf Funktionsfähigkeit kontrollieren kann.

niR-kun
24.11.2010, 17:24
Der KeyPatch ist ungeeignet um als Mauspatch zu fungieren, schon allein, weil er die Koordinaten der Maus falsch an die RPG_RT gibt wenn man im Fenstermodus spielt (von x=0 bis 6 und y=0 bis 30 ist die Maus außerhalb des Fensters und somit kann man da nichts anklicken, was in dem Bereich ist).

Cherrys PowerPatch (ich nutze die Version 0.43b) eignet sich dazu schon besser, weil die Koordinaten der Maus im Fenstermodus schon mit besser sind (von x=0 bis 2 und y=0 bis 6 ist die Maus außerhalb des Fensters). Der Einbau in ein Projekt ist beim PP relativ harte Frickel-Arbeit, aber es lohnt sich, wenn man nicht gerade eine RPG_RT nutzt, die eine harmony.dll hat, oder ForceHarmony nutzen will.

PS: Man muss beim Fenstermodus einen Workaround nutzen:
für PP:

mainloop.lua:
if KeyPressed(VK_LBUTTON) then
SetVar([maus-var für tasten], 1)
elseif KeyPressed(VK_RBUTTON) then
SetVar([maus-var für tasten], 2)
elseif KeyPressed(VK_MBUTTON) then --- mittlere Maustaste
SetVar([maus-var für tasten], 3)
elseif KeyPressed(VK_XBUTTON1) then --- 4te Maustaste
SetVar([maus-var für tasten], 4)
elseif KeyPressed(VK_XBUTTON2) then --- 5te Maustaste
SetVar([maus-var für tasten], 5)
else
SetVar([maus-var für tasten], 0)
end

mx, my = GetMouse()
mx=(mx-2)*1.025
my=(my-6)*1.025
SetVar([maus-var für x], mx)
SetVar([maus-var für y], my)

Für KeyPatch:

<> Change Variable: [637] = MIDI position (ticks) --- Maus X-Position
<> Change Variable: [642] = MIDI position (ticks) --- Maus Y-Position
<> Change Variable: [654] = V[637]
<> Change Variable: [654] -= 6
<> Change Variable: [654] *= 13
<> Change Variable: [654] /= 10
<> Change Variable: [655] = V[642]
<> Change Variable: [655] -= 30
<> Change Variable: [655] *= 13
<> Change Variable: [655] /= 10
<> Change Variable: [656] = MIDI position (ticks) --- Maustasten

Multi-Master1988
25.11.2010, 19:47
@ niR-kun

Danke für den Ratschlag aber ich bleibe beim Keypatch aus gewohnheit.

Trotzedem möchte ich den Code nochmal hinterfragen also wenn ich es jetzt richtig verstanden hab haben wir bei deinem Bsp. eig 4 X,Y coordinaten.

Die eine geht vom Keypatch aus die andere errechnen wir stimmst?

Also auf einer kleinen Map habe ich folgende Daten für ein 16x16 Pixel großen Corsur heruasgelesen:
Ich bin dann auf die Mite einer kleinen Karte gegangen und habe nun Folgende Werte:

Errechnete Position:

X=210
Y=117

Bild Position vom Patch aus gesehen:

X=168
Y=120

Habe ich Theroie und Praxis vollständig oben bei mir eingebracht oder
habe ich dich falsch verstanden?

Lg
Multi-Master1988

Corti
25.11.2010, 19:54
Der Keypatch gibt dir Koordinaten, X von 0 bis 320 und Y von 0 bis 240. Wenn du nen 16*16 Mauszeiger willst machste den in ne 32*32 Grafik mit der Pfeilspitze genau in der Mitte und zeigst diese Grafik genau auf den Mauspatcherrechneten Koordinaten an. Dadurch trifft die Spitze des Zeigers genau den Punkt. Et voilaaaaa

niR-kun
26.11.2010, 15:16
Ich nutze den sehr schönen Oxygen-Mauszeiger (http://browse.deviantart.com/customization/?q=oxygen#/d19m3t8) (unter GPL lizenziert).

PS: Da ist er: http://npshare.de/files/5a3b4569/3dzeiger.png

Corti
26.11.2010, 18:31
Ich nutze den sehr schönen Oxygen-Mauszeiger (http://browse.deviantart.com/customization/?q=oxygen#/d19m3t8) (unter GPL lizenziert).
Deine Schwester ist unter GPL lizenziert.