View Single Post
Old 04-02-2008, 21:41   #30
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1536
Rifattorizzo questo:

Codice:
public void testDrawTwoFrames()
    {
        int frameSize = 32;
        
        AnimatedSprite animatedSprite = createAnimatedSprite(3, 100, frameSize);
        
        timer.advance(ANIMATION_DELAY);

        animatedSprite.updateAnimation(timer.getTime());
        animatedSprite.getSprite().draw(engine);

        assertEquals("bad texture drawn", 0,
            ((MockEngine)engine).getImageRect().getLeft());
        assertEquals("bad texture drawn", frameSize,
            ((MockEngine)engine).getImageRect().getTop());

        timer.advance(100);
        animatedSprite.updateAnimation(timer.getTime());
        animatedSprite.getSprite().draw(engine);

        assertEquals("bad texture drawn", 0,
            ((MockEngine)engine).getImageRect().getLeft());
        assertEquals("bad texture drawn", frameSize * 2,
            ((MockEngine)engine).getImageRect().getTop());
    }
Spezzato in 3 test. Ho aggiunto il test per il frame iniziale.

Codice:
    public void testRenderingOfFirstFrame()
    {
        AnimatedSprite animatedSprite = createAnimatedSprite(2, 100, FRAME_SIZE);
        
        animatedSprite.updateAnimation(timer.getTime());
        animatedSprite.getSprite().draw(engine);
        
        Rectangle expectedImageRectangle = new Rectangle(0, 0, FRAME_SIZE, FRAME_SIZE);
        assertEquals(expectedImageRectangle, engine.getImageRect());
    }
    
    public void testRenderingOfSecondFrame()
    {
        AnimatedSprite animatedSprite = createAnimatedSprite(2, 100, FRAME_SIZE);
        
        timer.advance(ANIMATION_DELAY);
        animatedSprite.updateAnimation(timer.getTime());
        animatedSprite.getSprite().draw(engine);
        
        Rectangle expectedImageRectangle = new Rectangle(0, FRAME_SIZE, FRAME_SIZE, FRAME_SIZE);
        assertEquals(expectedImageRectangle, engine.getImageRect());
    }
    
    public void testRenderingOfThirdFrame()
    {
        final int animationUpdateRate = 100;
        AnimatedSprite animatedSprite = createAnimatedSprite(3, animationUpdateRate, FRAME_SIZE);
        
        timer.advance(ANIMATION_DELAY);
        timer.advance(animationUpdateRate);
        
        animatedSprite.updateAnimation(timer.getTime());
        animatedSprite.getSprite().draw(engine);
        
        Rectangle expectedImageRectangle = new Rectangle(0, FRAME_SIZE * 2, FRAME_SIZE, FRAME_SIZE);
        assertEquals(expectedImageRectangle, engine.getImageRect());
    }

Si potrebbe fare ancora qualcosina ma mi accontento, e` abbastanza chiaro penso :o
Ufo13 è offline   Rispondi citando il messaggio o parte di esso