Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

26.09.2009, 21:51

[GELÖST]Sprite bewegt sich nicht

Hi
Ich habe ein Auto auf den Bildschirm gerendert. So wenn ich jetzt "Pfeil vor" drücke soll es einen Punkt nach vorne springen. Tut es aber nicht.
Hier meine Key abfrage

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
int PositionX = 50;
    int PositionY = 50;
...
driver->draw2DImage(Auto, core::position2d<s32>(PositionX,PositionY));

    if(receiver.IsKeyDown(irr::KEY_UP))
    {       
        PositionX += 1;
    }


und hier die Funktion zum abfragen:

C-/C++-Quelltext

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
class MyEventReceiver : public IEventReceiver
{
public:
    virtual bool OnEvent(const SEvent& event)
    {
        if (event.EventType == irr::EET_KEY_INPUT_EVENT)
            KeyIsDown[event.KeyInput.Key] = event.KeyInput.PressedDown;

        return false;
    }

    virtual bool IsKeyDown(EKEY_CODE keyCode) const
    {
        return KeyIsDown[keyCode];
    }
    
    MyEventReceiver()
    {
        for (u32 i=0; i<KEY_KEY_CODES_COUNT; ++i)
            KeyIsDown[i] = false;
    }

private:
    bool KeyIsDown[KEY_KEY_CODES_COUNT];
};


Schonmal danke im Voraus

mfg
Fabian
Metal ist keine Musik sondern eine Religion.

2

27.09.2009, 09:00

Kommt es denn überhaupt bis zu

C-/C++-Quelltext

1
            KeyIsDown[event.KeyInput.Key] = event.KeyInput.PressedDown; 


mach mal ein MessageBeep (0), oder eine Logfilenotiz, damit du siehst, ob das Problem am Input liegt, oder an anderem.

3

27.09.2009, 10:50

Re: Sprite bewegt sich nicht

Zitat von »"Fabian Kock"«


C-/C++-Quelltext

1
2
int PositionX = 50;
    int PositionY = 50;



machst du das im gameloop oder davor? wenn dus im gameloop machen würdest, würden die positionen immer wieder auf 50 zurückgesetzt werden.

4

27.09.2009, 14:12

Mein Auto fährt!! Es fährt!! Danke euch allen!! :D
Ich hatte es wirklich in der MessageLoop deklariert :?
Metal ist keine Musik sondern eine Religion.

Werbeanzeige