[JAVA] sprite loopen

Pagina: 1
Acties:

  • vranqz
  • Registratie: September 2003
  • Laatst online: 26-05-2021
Voor een schoolopdracht moet ik nu voor het eerst van m'n leven in java duiken. Das best wel een hele opgave, maar toch ben ik al een eindje opweg.

Ik ben alleen vastgelopen, en heb vanalles geprobeerd en kan er niet uitkomen, misschien dat iemand me hier kan helpen.

Ik heb een plaatje wat 20 px vanaf de linkerkant begint, en die naar links loopt. Wanneer deze uit beeld is wil ik dat deze aan de rechterkant weer het beeld inkomt.

Tot dusverre heb ik dit:

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import java.io.*;

 public class MyCanvas extends Canvas {
 
    private int x = 20;
    private int x2 = 90;
    private int x3 = 160;
    private Image imgBackground;
    private Sprite background; 
    private Image imgAuto;
    private Sprite auto; 
    private Image imgAutotwee;
    private Sprite autotwee; 
    private Image imgAutodrie;
    private Sprite autodrie; 

 
    public MyCanvas() {
    
            try { 
                imgBackground = Image.createImage("/bg.gif");
            }
        catch (IOException e){ System.out.println(e);}
        
        background = new Sprite (imgBackground, 180, 177);
        
                    try { 
                imgAuto = Image.createImage("/auto1.gif");
            }
        catch (IOException e){ System.out.println(e);}
        
        auto = new Sprite (imgAuto, 38, 22);
        
                    try { 
                imgAutotwee = Image.createImage("/auto1.gif");
            }
        catch (IOException e){ System.out.println(e);}
        
        autotwee = new Sprite (imgAutotwee, 38, 22);
        
        
                    try { 
                imgAutodrie = Image.createImage("/auto1.gif");
            }
        catch (IOException e){ System.out.println(e);}
        
        autodrie = new Sprite (imgAutodrie, 38, 22);
    }
                                    
    public void paint(Graphics g){
            background.paint(g);
            auto.paint(g);
            auto.setPosition(x, 42);
            try {
                    Thread.sleep(10);
            }
            catch (InterruptedException e){}
            x--;
            if (x == 0) 
            {
                auto.setPosition(200, 42);
            }
            
            autotwee.paint(g);
            autotwee.setPosition(x2, 42);
            try {
                    Thread.sleep(10);
            }
            catch (InterruptedException e){}
            x2--;
            
            autodrie.paint(g);
            autodrie.setPosition(x3, 42);
            try {
                    Thread.sleep(10);
            }
            catch (InterruptedException e){}
            x3--;
            
            repaint();
        }
    }


Zoals je ziet heb ik bij de sprite auto het volgende geprobeerd:

code:
1
2
3
4
            if (x == 0) 
            {
                auto.setPosition(200, 42);
            }


Alleen knippert het plaatje hier een keer en gaat vrolijk weer verder...

Weet iemand hier hoe ik dit op kan lossen en hoe ik dus een plaatje kan blijven loopen?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je zult x op 200 moeten zetten ;)

code:
1
2
3
4
            if (x == 0) 
            {
                x = 200;
            }


Had je de moeite genomen om je code even te debuggen (zet een watch op x) dan had je het zelf ook gezien. Sterker: Ik heb je code niet eens gedebugged maar puur naar je code gekeken en logisch nagedacht; dit moet je zelf toch ook (aan de hand van het "symptoom" dat je geeft) hebben kunnen verzinnen?

[ Voor 169% gewijzigd door RobIII op 12-01-2007 00:25 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij