[J#] beide if's uitgevoerd?

Pagina: 1
Acties:
  • 327 views sinds 30-01-2008
  • Reageer

  • R!K?
  • Registratie: Juli 2005
  • Laatst online: 01-12 13:40
ik was een beetje aan het spelen met J# omdat we er opschool mee moesten werken, nu dacht ik ik ga een pong maken met windows components.

liep meteen tegen mijn eerste probleem aan namenlijk: zodra de button onder of tegen de grens aanzit worden beide statements uitgevoerd niet simultaan maar wel snel achter mekaar. hierdoor flikkerren beide buttons. en zie je dus 1 button die zich netjes aan zijn grens houd en op de x as rond beweegt en 1 button die gaat waar de muis is.

de manier waarop ik dit gemaakt heb is waarschijnlijk dom of niet handig en kan veel makkelijker maar weet iemand waarom beide functies uitgevoerd worden?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    private void Form1_MouseMove(Object sender, MouseEventArgs e)
    {
        int y;
        int x;
        int grens;
        Point point1 = new Point(0, 0);
        
        
        point1 = button1.get_Location();
        
            x = point1.get_X();
            y = point1.get_Y();
            

            grens = y - 80;
            if (grens < 0) { grens = 0; }

            point1.set_X(x);
            point1.set_Y(y - grens);
        
        if (y >= 200 )
        {
            button1.set_Location(point1);
            
        }
        else
        {
            button1.set_Location(this.get_MousePosition());
        }
    
    }


met vriendelijke groet,

rik.

i am the toast king whom rules over the moon!


  • nick_haak
  • Registratie: December 2004
  • Laatst online: 11-10 22:48
je zou die else eens kunnen vervangen voor een else if misschien, ben in VB.net dat soort rare dingen ook wel eens tegengekomen, dus als je dit zou proberen:

code:
1
2
3
4
5
6
7
8
9
        if (y >= 200 )
        {
            button1.set_Location(point1);
            
        }
        else if (y <200 )
        {
            button1.set_Location(this.get_MousePosition());
        }


zou het misschien werken :)

het kan btw dat ik een foutje maak in de syntax van die else if, bij sommige programmeertalen is het elseif, bij anderen else if... dat weet jij waarschijnlijk wel :)

  • R!K?
  • Registratie: Juli 2005
  • Laatst online: 01-12 13:40
helaas werkt ook niet, op een of andere manier word de else uitgevoerd waardoor beide buttons te zien zijn.

code:
1
2
3
4
5
6
7
8
9
        if (y >= 200 )
        {
            button1.set_Location(point1);
            
        }
        else if (y <= 200)
        {
            button1.set_Location(this.get_MousePosition());
        }

i am the toast king whom rules over the moon!


  • Fiander
  • Registratie: Februari 2001
  • Laatst online: 28-05 12:35
Wat is het nut van die if ? je wilt waneer y < 80 dat y 80 word ?
ik heb je code een beetje aangepast.
Java:
1
2
3
4
5
6
7
private void Form1_MouseMove(Object sender, MouseEventArgs e)
    {        
        Point point1 = get_MousePosition(); 
        int y = point1.get_Y();
        if (y < 80 )   { point1.set_Y( 80 ); } 
        button1.set_Location(point1);
    }


wat ik denk dat er gebeurt in jou code:
je beweegt je muis, je set de locatie van je button.
je muis beweegt verder.
je controleert of de BUTTON op een foute plek staat, en corigeert dit.
je beweegt de muis.
omdat de button op een goeie plek staat, set je em naar de muis locatie.

Deze sig is een manueel virus!! Als je dit leest heb je het. Mail dit bericht naar iedereen die je kent, en verwijder alle bestanden van je computer.


  • R!K?
  • Registratie: Juli 2005
  • Laatst online: 01-12 13:40
het werkt ik weet niet waarom t bij mij niet werkt maar kom dr wel achter.

bedankt!

nu ga ik de radio button proberen te laten stuiteren.

i am the toast king whom rules over the moon!


  • Fiander
  • Registratie: Februari 2001
  • Laatst online: 28-05 12:35
dat is wat ik als laatste zei met wat ik denk dat er bij jou gebeurt.

in de ene mouse move zet je de button waar de mouse is, en refresh daarna controleer je of ie op een geldige plek staat en corigeer je dit.

probeer voor je zelf duidelijk te maken wat er moet gebeuren.

1 muis uit lezen.
2 controleren of deze positie geldig is. en eventueel deze corigeren.
3 positie button zetten.

doe dit nou ook eens met dat wat jij had gemaakt.

1 controleer positie button
2 set button naar geldige plek
3 lees muis uit
4 set button naar muis lokatie

Deze sig is een manueel virus!! Als je dit leest heb je het. Mail dit bericht naar iedereen die je kent, en verwijder alle bestanden van je computer.


  • R!K?
  • Registratie: Juli 2005
  • Laatst online: 01-12 13:40
ik heb geprobeerd mijn radio button te laten bewegen m.b.v een while loop
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
while(done)
{
Point ball = new Point(0, 0);
int x1 = 0;
int y1 = 0; \\locatie
int xv = 5;
int yv = 5; \\snelheid

ball.set_X(x1);
ball.set_y(y1);

radioButton1.set_location(bal);

x1 = x1+xv; \\locatie + snelheid
y1 = y1+yv;
try {
        Thread.sleep( 1000/60 ); \\even geduld anders loopt het geheel vast
      }
      catch( Exception e ){}
}

met de thread sleep probeer ik het proces te vertragen waardoor het geheel niet vastloopt maar het geheel loop altijd vast.

iemand enig idee?

i am the toast king whom rules over the moon!


  • momania
  • Registratie: Mei 2000
  • Laatst online: 05:21

momania

iPhone 30! Bam!

Waarschijnlijk loopt het niet vast, maar omdat nu alles in dezelfde thread draait zie je nooit je scherm updaten.

offtopic:
Ik snap uberhaupt niet waarom je in J# bezig als je java wilt leren. Laat staan dat je je al met gui componenten bezig houdt... Wordt dit opgelegd door je studie/leraar oid?

Neem je whisky mee, is het te weinig... *zucht*


  • R!K?
  • Registratie: Juli 2005
  • Laatst online: 01-12 13:40
ontoppic:
hoe maak ik een aparte thread?

offtopic:

we moeten uiteindelijk een combat managment systeem maken, waarbij je met meerdere pc's een strategies beeld krijgt van de omgeving in dit geval de zee(marine). maar omdat we nog nooit met java hebben gewerkt kregen we vrijdag voor het eerst les in java. ik moest de achtergrond kleur laten veranderen dat verveelde me dat heb ik gemeld toen mocht ik gaan spelen met de omgeving.

waarom we beginnen met j# weet ik niet, waarschijnlijk omdat het makkelijk beginnen is.
uiteindelijk zullen we met eclipse of blue j gaan werken maar omdat we nog bezig zijn met de basis van UML zijn we alvast begonnen met j# in visual studio.

mvg,

rik

i am the toast king whom rules over the moon!


  • Fiander
  • Registratie: Februari 2001
  • Laatst online: 28-05 12:35
Als dit is hoe julie het op school leren, dan begrijp ik de ophef die nu over het onderwijs word gemaakt helemaal...

Zoals je het hier had staan, set je elke keer dat de loop doorlopen word, x & y op nul, de snelheid voor x & y op null, geef je dit aan de locatie van de radiobutton mee, doe je daarna een berekening met je variabelen.

Hou er rekening mee, dat het framework na elke run van de while loop, je variabelen welke je binnen de loop aanmaakt weggooit.

Om dit te laten werken moet je je variabelen dus uit de loop halen.

En dat vastlopen van de GUI is onzin, thread.sleep geeft keurig de besturing aan windows welke em net later weer wekt, om de radiobutton daarna weer op dezelfde locatie neer te zetten.

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Point ball = new Point(0, 0);
int x1 = 0;
int y1 = 0; \\locatie
int xv = 5;
int yv = 5; \\snelheid

while(done)
{
ball.set_X(x1);
ball.set_y(y1);

radioButton1.set_location(bal);
Thread.sleep( 1000/60 ); \\even geduld anders loopt het geheel vast
x1 = x1+xv; \\locatie + snelheid
y1 = y1+yv;
}

[ Voor 0% gewijzigd door Fiander op 11-02-2007 20:08 . Reden: ben officieel dyslecties ]

Deze sig is een manueel virus!! Als je dit leest heb je het. Mail dit bericht naar iedereen die je kent, en verwijder alle bestanden van je computer.


  • momania
  • Registratie: Mei 2000
  • Laatst online: 05:21

momania

iPhone 30! Bam!

Fiander schreef op zondag 11 februari 2007 @ 16:37:
als dit is hoe julie het op school leren, dan begrijp ik de ophef die nu over het onderwijs word gemaakt helemaal...
Idd zeg :X

Ik zou graag ook eens zien dat studenten hun leraren uitnodigen hier op GoT te registreren en eens uit te leggen waarom ze bepaalde studiewijzen aanhouden. De manier die ik nu veel voorbij zie komen heeft nml. echt niemand wat aan.

Neem je whisky mee, is het te weinig... *zucht*


  • Fiander
  • Registratie: Februari 2001
  • Laatst online: 28-05 12:35
sorry voor offtopic, mare, hoe doe je op het forum een code blok :?

Deze sig is een manueel virus!! Als je dit leest heb je het. Mail dit bericht naar iedereen die je kent, en verwijder alle bestanden van je computer.


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:52

.oisyn

Moderator Devschuur®

Demotivational Speaker

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Fiander
  • Registratie: Februari 2001
  • Laatst online: 28-05 12:35
Ik zie het nu ook staan terwijl ik dit bericht typ....... |:(

waar staat UBB eigenlijks voor
mischien een onmouseover met een tag met uitleg wat het is er bij zetten.

p.s. sorry voor offtopic, zal niet meer voorkomen in andere threads

Deze sig is een manueel virus!! Als je dit leest heb je het. Mail dit bericht naar iedereen die je kent, en verwijder alle bestanden van je computer.


  • R!K?
  • Registratie: Juli 2005
  • Laatst online: 01-12 13:40
even tussendoor, we zijn nog niet eens begonnen met programmeren. dit doe ik uit mezelf voor de lol. vind t niet zo gek dat ik domme fouten maak. maar heb nu geen leraar die mij op deze fouten wijst.

de meesten kunnen heel netjes programmeren maar je hebt er idd ook een paar domme tussen zitten.

wil iedereen alsjeblieft wel ontopic blijven anders word deze post gelocked en daar heb ik dus niets aan als ik nog wat zou willen leren.

mvg,


rik

i am the toast king whom rules over the moon!


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 14:52

.oisyn

Moderator Devschuur®

Demotivational Speaker

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1