[Java] schräge wand mit v/h-Position abfragen

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von oscuridad-sama, 10. Mai 2009 .

  1. 10. Mai 2009
    schräge wand mit v/h-Position abfragen

    mithilfe der stiftundco-bib. kann man vereinfacht programmieren. (z.b. eine linie zeichnen= stift.bewegebis (x,y); stift.runter(); stift.bewegeUm(10); )

    ich habe das problem das ich mithilfe der stiftundco-bib. zwar genau abfragen kann wo sich der stift gerade befindet(h/v-Position, allerdings ist es mir so nicht möglich z.b. die kollision mit einer schrägen wand umzusetzen. ich habe jetzt auch keine lust jeden pixel einzeln zu definieren (also jede v/h-Position der Schrägen Wand anzugeben).

    ist jetzt vermutlich ein bisschen holprig erklärt also bei unverständlichkeit bitte fragen.

    wäre echt super wenn einer von euch ne idee hätte(auch ruhig nur was prinipielles).
     
  2. 10. Mai 2009
    AW: schräge wand mit v/h-Position abfragen

    Ich kenn dieses package nicht, aber ist es möglich events auszulösen wenn sie sich berühren? Das wär wohl die angenehmste Lösung wenn es sowas gibt.

    Sonst solltest du vllt ein Hintergrundbild das unsichtbar ist einfügen, dass alles abdeckt, was "befahrbar" ist. oder eben umgekehrt. Und dann ständig abfragen ob sich dein Objekt darüber befindet.

    Vllt hilfts ja, vllt auch nicht ^^
     
  3. 10. Mai 2009
    AW: schräge wand mit v/h-Position abfragen

    Das ist lediglich Mathematik:
    Die Schräge ist ja im Grunde nur eine lineare Funktion, von der du den Anfangs- und Endpunkt kennst. Daher kannst ud ganz einfach ausrechnen, wie groß die Schrittweite ist und dann also auch voher abfragen, ob du schon "zusammenstößt".

    Bsp (math. Koordinatensystem, nicht PC-Bildschirm):

    P1 (0|10); P2(6|2)

    Für jeden Schritt in x-Richtung muss man (6-10) / 2 = -2 Schritte in y-Richtung gehen.
    Die Formel wäre also f(x)=-2*x+10.

    Im Grunde musst du dir also für jeden Strich ein Klassenobjekt erstellen und kannst dann z.B. mit Funktionen abfragen, ob eine bestimmte Stelle noch frei ist.


    Ich hoffe mal man konnte das verstehen^^. Wenn nicht frag ruhig nochmal.
     
  4. 10. Mai 2009
    AW: schräge wand mit v/h-Position abfragen

    hm. schonmal danke für die antworten.

    @cyron: von events hab ich schonmal keine ahnung. hintergrund-bilder kann ich mit meinen mitteln nicht einfügen und wüsste dann auch nicht wie ich deine idee umsetzen sollte. trotzdem thx.

    @Chillikid:also ich glaube ich habe deine idee verstanden. nur wie soll ich das dann abfragen?

    ich hab eine klasse die die wand erzeugt. und eine die eine kugel erzeugt die von der wand abprallen soll. hier mal n bsp.:
    Wand zeichnen:
    Spoiler
    HTML:
     stift.runter();
     stift.dreheBis(45);
     stift.bewegeUm(250);
     stift.hoch();
     stift.bewegeBis(550,400);
     stift.runter();
     stift.dreheBis(45);
     stift.bewegeUm(200);
     stift.hoch();
    
    Das ganze soll ein Golfspiel werden. Ein L-förmiges und ein T-förmiges Feld funktionieren auch schon. Jetzt fehlt nur noch ein Blitz-förmiges.
     
  5. 10. Mai 2009
    AW: schräge wand mit v/h-Position abfragen

    Also ich stelle mir das folgendermaßen vor:

    Du erstellst dir eine Klasse, meinetwegen Wand genannt. Diese beinhaltet einen Konstruktor, dem Man den Start- und Endpunkt übergibt. D.h. die Klasse zeichnet sich selbstständig.
    Weiterhin hat diese Klasse eine Methode bool isOccupied(int x, int y) die testet (mit Hilfe der Formel, s.o.) ob eine bestimmte Koordinate von der Linie belegt ist.

    Dann könnte man die Bewegung des Balls halt in eine Schleife packen und Schritt für Shchritt abfragen, ob das Feld noch frei ist. Wenn nicht, prallt er ab.

    Es gibt natürlich sehr viel effizientere Methoden dafür, aber ich denke, dass es so erstmal reichen sollte.
     
  6. 12. Mai 2009
    AW: schräge wand mit v/h-Position abfragen

    hm. also mit der wand das hat jetzt irgendiwie funktioniert. (wenns interessiert):
    Spoiler
    HTML:
     //obere schräge
     if(stift2.vPosition()<280&&stift2.vPosition()>180&&stift2.hPosition()>600&&Hilfe.arctangens((320-stift2.vPosition())/(stift2.hPosition()-600))>45) 
     stift2.dreheBis(45-stift2.winkel());
    //untere schräge
     if(stift2.vPosition()>280&&stift2.vPosition()<420&&stift2.hPosition()<740&&Hilfe.arctangens((stift2.vPosition()-280)/(740-stift2.hPosition()))>45)
     stift2.dreheBis(stift2.winkel()-90);

    jetzt bräuchte ich nur noch den apprall-winkel. die steigung der schrägen beträgt wie gehabt 45C°. gibt bei erfolg durch tip auch ne bw.

    der einfallwinkel der kugel(stift2) ist bekannt.
     
  7. 12. Mai 2009
    AW: schräge wand mit v/h-Position abfragen

    von der physik is das ja einfallswinkel = ausfallswinkel

    wenn du dir jetzt nen mittelpunkt auf der wand vorstellst und da nen halbkreis ziehst von der einen zur anderen sind das 180° und dadurch kannste ja dann auf den ausfallswinkel schließen
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.