# Doodle Jump



## Wig (12. Jan 2012)

Hallo zusammen, 

also ich habe ein kleines Problem ich Programmiere derzeit mit Eclipse, Doodle Jump für die Schule leider kriege ich es einfach nicht hin die Ebenen zu Programmieren auf die er drauf springen soll und sich dann von denen wieder abstoßen soll. Unter //Ebenen hab ich schon mal einen Ansatz gemacht wie ich es Probiert habe. 
Könnte mir bitte jemand etwas helfen.


```
class Projekt1 extends JavaApp
{
    int Start;
    int Optionen;
    int Beenden;
    int Zurück;
    int Bild_y = -210;
    int Bild_x = 0 ;
    int richtung = 10;
    double Spielfigur;
    double bild;
    int[][]horizontale_linien = new int[3][3];

    public static void main(String[] args)
    {
        new Projekt1();
    }

    void whenProgramStarts()
    {
        addDrawingPlane();
        addDrawingPlane();
        addDrawingPlane();
        addDrawingPlane();
        addDrawingPlane();

        //Außen_Rahmen
        setColorRGB(0, 141, 182, 252);
        drawFilledRectangle(0, 0, 0, 500, 500);
        drawRectangle(1, 0, 0, 500, 500);

        //Überschrift
        setFontsize(2, 40);
        drawStringCentered(2, "Doodle Jump", 0, 220);
        setFontsize(2, 30);
        drawString(2, "kopie", 15, 170);

        //Buttons
        Start = guiAddButton("START", "Spiel starten", -70, 80, 200, 50, true);
        Optionen = guiAddButton("OPTIONEN", "Optionen", -50, 0, 200, 50, true);
        Beenden = guiAddButton("BEENDEN", "Beenden", -30, -80, 200, 50, true);
        Zurück = guiAddButton("ZURÜCK", "Zurück", -30, -80, 200, 50, true);
    }

    void whenButtonSTARTIsClicked()
    {
        clearDrawingPlane(2);
        clearDrawingPlane(0);
        
        setColorRGB(2, 250, 250, 210);
        drawFilledRectangle(2, 0, 0, 500, 500);
        drawRectangle(3, 0, 0, 500, 500);
        
        guiSetVisible(Start, false);
        guiSetVisible(Optionen, false);
        guiSetVisible(Beenden, false);
        guiSetVisible(Zurück, false);
        
        bild=registerImage("Yeti.png",0.18);

        //Bild_wird_gezeischnet
        drawImage(4, 0, Bild_x, Bild_y);
        startTimer("Spielfigur", 30, true);
        
        //Ebenen
        
        //Erste
        horizontale_linien[0][0] = -200;
        horizontale_linien[0][1] = 10;
        horizontale_linien[0][2] = 50;
        
        drawLine(5, horizontale_linien[0][1], horizontale_linien[0][0], horizontale_linien[0][2], horizontale_linien[0][0]);
        drawLine(5, horizontale_linien[1][1], horizontale_linien[1][0], horizontale_linien[1][2], horizontale_linien[1][0]);
        drawLine(5, horizontale_linien[2][1], horizontale_linien[2][0], horizontale_linien[2][2], horizontale_linien[2][0]);
    }

    void whenButtonOPTIONENIsClicked()
    {
        guiSetVisible(Start, false);
        guiSetVisible(Optionen, false);
        guiSetVisible(Beenden, false);
    }

    void whenButtonBEENDENIsClicked()
    {
        exitProgram();
    }

    void whenButtonZURÜCKIsClicked()
    {
        guiSetVisible(Start, true);
        guiSetVisible(Optionen, true);
        guiSetVisible(Beenden, true);
    }

    //Spiel
    void whenTimerSpielfigurRunsOut()
    {
        Bild_y=Bild_y+richtung;
        if (Bild_y == -100)
        {
            richtung = -richtung;
        }
        if (Bild_y == -210)
        {
            richtung = -richtung;
        }
        clearDrawingPlane(4);
        drawImage(4, 0, Bild_x, Bild_y);
    }

    void whenKeyRIGHTIsPressed()
    {
        startTimer ("RIGHT", 100, true);
    }
    
    void whenKeyRIGHTIsReleased()
    {
        stopTimer("RIGHT");    
    }

    void whenTimerRIGHTRunsOut ()
    {
        Bild_x=Bild_x+10 ;
        if (Bild_x==250)
        {
        Bild_x=-250;
        }
    }

    void whenKeyLEFTIsPressed()
    {
        startTimer ("LEFT", 100, true);
    }
    
    void whenKeyLEFTIsReleased()
    {
        stopTimer("LEFT");     
    }

    void whenTimerLEFTRunsOut ()
    {
        Bild_x=Bild_x-10 ;
        if (Bild_x<=-250)
        {
        Bild_x=250;
    }
    }
}
```


----------



## Fab1 (12. Jan 2012)

Variablen sollte man klein schreiben. 
Wie lange programmierst du denn schon? Doodle Jump war hier schon mal im Gespräch und damals wurde davon abgeraten. Da es für ein Anfangs Projekt zu groß und umfangreich ist.

Außerdem wären konkrete Fragen besser. Kann mir nicht vorstellen, dass dir hier jemand eine komplett Lösung gibt.

Sag einfach mal was du nicht verstehst.


----------



## Wig (12. Jan 2012)

Also ich Programmiere noch nicht sehr lange erst seit 3 Monaten oder so.
Ja ich habe es mir schon gedacht das es zu umfangreich sein wird deshalb hab ich mich auch entschieden paar Sachen weg zulassen. Ich möchte es nur soweit hinkriegen das es auf die Balken drauf springen kann und sich dann wieder abstoßt.

Ich möchte auch keine Komplett Lösung sondern möchte nur wissen wie ich einen Balken zeichnen kann damit meine Spielfigur es als Hindernis ansieht aber so das es von unten durch denn Balken springen kann aber wenn es dann sie dann wieder runter fällt auf den Balken sich abstoßt.   

Für den Anfang würde mir auch reichen einfach einen Balken zu zeichnen auf den meine Spielfigur drauf springen kann.

MFG
WIG


----------



## Helgon (12. Jan 2012)

Wo ist den die konkrete Frage? Was klappt den nicht mimt mit dem "Balken zeichnen"? Oder möchtest du ne einfach ne Lösung bekommen? Ich glaub, dann solltest du mal in der Jobbörse gucken


----------



## Wig (12. Jan 2012)

Nein ich möchte nicht das mir jemand das macht, sondern ich verstehe nicht warum mein Balken nicht gezeichnet wird. Also ich habe es mit Hilfe von Array probiert, aber ich weiß nicht warum es den Balken nicht zeichnet. 

[JAVA=67]        //Erste
        horizontale_linien[0][0] = -200;
        horizontale_linien[0][1] = 10;
        horizontale_linien[0][2] = 50;

        drawLine(5, horizontale_linien[0][1], horizontale_linien[0][0], horizontale_linien[0][2], horizontale_linien[0][0]);
        drawLine(5, horizontale_linien[1][1], horizontale_linien[1][0], horizontale_linien[1][2], horizontale_linien[1][0]);
        drawLine(5, horizontale_linien[2][1], horizontale_linien[2][0], horizontale_linien[2][2], horizontale_linien[2][0]);
    }[/code]


----------



## Fu3L (13. Jan 2012)

Wie wäre es, wenn dus erstmal einfach mit nem abgewandelten

```
drawFilledRectangle(0, 0, 0, 500, 500);
```
versuchen würdest?
Ich kenne zwar nicht diese "JavaApp" die du als Grundlage verwendest, aber ein Rectangle zu füllen, schiene mir sinvoller. 
Dann solltest du jeden Balken als eigenes "Balken"-Objekt verwalten und dann alle Balken zussammen in einer Liste speichern. Dann kannste jedes Mal die Liste einen Balken nach dem anderen durchgehen und jeden zeichnen.

Ach ja: Mit 3 Monaten Java Erfahrung halte ich ein Spiel mit bewegter Map und zufällig zu platzierenden Objekten auch für zu schwer^^ Also vereinfache wirklich so viel wie eben geht^^


----------



## Quaxli (13. Jan 2012)

Vielleicht noch als Ergänzung zu dem was Fu3L geschrieben hat:

Du solltest nicht nur die Methode drawRectangle(...) von Graphics nehmen, um die Balken zu zeichnen, Deine Balken sollten eigene Objekte sein, die von Rectangle erben. Dann kannst Du später die Kollisionserkennung und -behandlung auf vorhandene Methoden wie z. B.: 



> intersects(Rectangle r)
> Determines whether or not this Rectangle and the specified Rectangle intersect.



aufsetzen, die Du dann von Rectangle geerbt hast.


----------

