Gamestudio Links
Zorro Links
Newest Posts
loading historical data 1st time
by AndrewAMD. 04/14/23 12:54
Trade at bar open
by juanex. 04/13/23 19:43
Bug in Highpass2 filter
by rki. 04/13/23 09:54
Adding Limit Orders For IB
by scatters. 04/11/23 16:16
FisherN
by rki. 04/11/23 08:38
AUM Magazine
Latest Screens
SHADOW (2014)
DEAD TASTE
Tactics of World War I
Hecknex World
Who's Online Now
2 registered members (Grant, AndrewAMD), 911 guests, and 9 spiders.
Key: Admin, Global Mod, Mod
Newest Members
rki, FranzIII, indonesiae, The_Judge, storrealba
18919 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
Nicht durchklickbare Panels möglich? #143107
07/24/07 12:18
07/24/07 12:18
Joined: Apr 2005
Posts: 4
Z
Zaphier56 Offline OP
Guest
Zaphier56  Offline OP
Guest
Z

Joined: Apr 2005
Posts: 4
Hallo,
Ich programmiere derzeit ein Echtzeitstrategiespiel und habe dabei folgendes Problem:

Wie bekannt bewegt man in einem RTS eine selektierte Einheite durch Mausklick auf eine Position. Wenn ich nun aber eine Einheit selektiert habe und auf mein GUI Panel und/oder button klicke um z.B ein Haus zu bauen, bewegt sich die Einheit mit auf die geklickte Mausposition.

Dies soll nicht passieren.

Die Frage ist ob es möglich ist panels nicht durchlässig für klicks zu machen.
Eine Möglichkeit wäre eine feste Positionsabfrage des panels was aber nur bei quadraten oder rechtecken und nicht bei Kreisförmigen bzw. verwinkelden panels funktionieren würde.

Über Lösungsvorschläge würde ich mich freuen.

Re: Nicht durchklickbare Panels möglich? [Re: Zaphier56] #143108
07/24/07 12:28
07/24/07 12:28
Joined: Jan 2005
Posts: 545
Schleswig-Holstein, Deutschlan...
Artus Offline
User
Artus  Offline
User

Joined: Jan 2005
Posts: 545
Schleswig-Holstein, Deutschlan...
Du könntest mit hilfe von pixel_for_bmap den Farbwert des Pixels an der Mausposition auf dem Panelbmap auslesen und je nach Farbwert den Click zulassen oder auch nicht.

Re: Nicht durchklickbare Panels möglich? [Re: Artus] #143109
07/24/07 16:00
07/24/07 16:00
Joined: Apr 2007
Posts: 582
Germany
Poison Offline
User
Poison  Offline
User

Joined: Apr 2007
Posts: 582
Germany
Zu deiner ersten frage kann ich nur eins sagen probiere mal Realspawns Strategie template aus ist in der Tut sektion Von AU resourses.


Everything is possible, just Do it!
Re: Nicht durchklickbare Panels möglich? [Re: Poison] #143110
07/24/07 21:31
07/24/07 21:31
Joined: Jan 2003
Posts: 4,305
Damocles Offline
Expert
Damocles  Offline
Expert

Joined: Jan 2003
Posts: 4,305
Machs so wie in meinem Code:

verarbeite nur clicks, die zB unter einer mausposition von (y) 450 sind.
So wird der untere Teil nicht verarbeitet.
Panels können auch mouse-over functionen verarbeiten.
Details müsste ich nachlesen.
Damit kannst du den Befehl an die Enheiten blockieren.

Oder Du Änderst die Größe des views.

Re: Nicht durchklickbare Panels möglich? [Re: Damocles] #143111
07/25/07 06:26
07/25/07 06:26
Joined: Apr 2005
Posts: 4
Z
Zaphier56 Offline OP
Guest
Zaphier56  Offline OP
Guest
Z

Joined: Apr 2005
Posts: 4
Danke euch für die Antworten.

@nordmann: habe mich gestern leider nur kurzzeitig mit dem Befehl beschäfftigen können. Kann mir durchaus vorstellen das dies funktionieren könnte, wenn ich alle Werte in jedem Farbkanal abfrage und den Mauszeiger darauf reagieren lasse.

@Poisen_Byte: Danke nochmal, auch wenn dort einige Erkenntnisse zu gewinnen waren, zu meinem Problem hilft mir das leider nicht da er noch keine panels benutzte.

@Damocles: Ja so ein panel mouse over wäre wirklich nett, habe da leider nix gefunden mal abgesehen von den Buttons. So könnte man abfragen "ist maus linksklick und über panel dann bewege Einheit nicht". Größe des Views ändern habe ich auch schon dran gedacht aber:
1. Wäre das Problem damit nicht gelöst. *g*
2. Würde das dann nicht mit meinen Designwünschen übereinkommen.

Re: Nicht durchklickbare Panels möglich? [Re: Zaphier56] #143112
07/25/07 08:25
07/25/07 08:25
Joined: Aug 2002
Posts: 3,258
Mainz
oliver2s Offline
Expert
oliver2s  Offline
Expert

Joined: Aug 2002
Posts: 3,258
Mainz
Versuch mal deinen Panels eine dummy function zuzuweisen.

Code:
FUNCTION panel_dummy
{
wait(1);
}

PANEL bla
{
...
...
on_click = panel_dummy;
}



Re: Nicht durchklickbare Panels möglich? [Re: oliver2s] #143113
07/25/07 14:58
07/25/07 14:58
Joined: Apr 2005
Posts: 4
Z
Zaphier56 Offline OP
Guest
Zaphier56  Offline OP
Guest
Z

Joined: Apr 2005
Posts: 4
@oliver2s
habe es getestet und es bringt leider nix. Ist denke ich auch damit zu erklären das er das Movement trotzdem ausführen möchte egal ob funktionen dazwischen geschaltet werden.

Re: Nicht durchklickbare Panels möglich? [Re: Zaphier56] #143114
07/25/07 16:23
07/25/07 16:23
Joined: Jan 2003
Posts: 4,305
Damocles Offline
Expert
Damocles  Offline
Expert

Joined: Jan 2003
Posts: 4,305
var ignore_mouseclick;

FUNCTION panel_dummy
{
ignore_mouseclick=1;
wait(1);
ignore_mouseclick=0;
}

PANEL bla
{
...
...
on_click = panel_dummy;
}


//in der Funktion, die die Einheitenclicks verabeitet zB:
if(ignore_mouseclick){return;}


es kann aber sein, das beim Clicken eines Buttons, die on_click = panel_dummy;
nicht ausgeführt wird, dann müsstest Du das auch in den Buttonfunktion machen.

Last edited by Damocles; 07/25/07 16:24.
Re: Nicht durchklickbare Panels möglich? [Re: Damocles] #143115
07/25/07 17:19
07/25/07 17:19
Joined: Jul 2007
Posts: 959
nl
F
flits Offline
User
flits  Offline
User
F

Joined: Jul 2007
Posts: 959
nl
hello

var panelsize;

function beginthisfromstart
{
while(1)
{
panelsize.x = youpanel.size_x + youpanel.pos_y;
panelsize.y = youpanel.size_y + youpanel.pos_x;
if(mouse_pos.x > youpanel.pos_x && mouse_pos.x < panelsize.x && mouse_pos.y > youpanel.pos_y && mouse_pos.y < panelsize.y)
{
mouse_range = 0;/ on_click = off;
}
else
{
mous_range = normale;
}
}

function panel_dummy
{
make building
}

i dont know i this work ore else i dont understand the question


"empty"
Re: Nicht durchklickbare Panels möglich? [Re: flits] #143116
07/26/07 08:18
07/26/07 08:18
Joined: Apr 2005
Posts: 4
Z
Zaphier56 Offline OP
Guest
Zaphier56  Offline OP
Guest
Z

Joined: Apr 2005
Posts: 4
Ist zwar nicht zufriedenstellend aber das hier funktioniert wenn es für jeden button und jedes panel zugewiesen wird:

var mouse_panel_klick = 0;

function dummy_funktion()
{
mouse_panel_klick = 1;
while(mouse_left == 1){wait(1);} //wartet bis maus nicht mehr geklickt
wait(17); // wartet über einen frame
if(mouse_left == 0){mouse_panel_klick = 0;} // sorgt dafür das die funktion nicht ausläuft wenn erneut geklickt wurde
}

darauf kann im movement abgefragt werden if mouse_panel_klick == 0

Last edited by Zaphier56; 07/26/07 08:19.
Page 1 of 2 1 2

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1