Hej udviklere,
jeg skrev for knap en uge siden vedr. mit eksamenprojekt til Programmering C på HTX. Jeg har besluttet mig for at jeg vil prøve at arbejde i at lave et "tegn og gæt" spil der fungerer med flere spillere på netværket.
Kan godt være det er lidt optimistisk, men om ikke andet vil jeg i hvert fald prøve at arbejde med tegnedelen af programmet, men er allerede her stødt på problemer.
Jeg har ind til videre lavet at program der har et MouseDragged event der kalder repaint efter musens koordinater er sat. I mit paint() event bruger jeg så følgende kode:
- public void paint(Graphics g)
- {
- g.setColor(Color.black);
- g.fillRect(x1, y1, 5, 5);
- }
x1 og y1 er de koordinater sat igennem MouseDragged().
Problemet er dog at når jeg forsøger dette, og trækker musen bare ved nogenlunde normal hastighed, hopper mine pixels helt vildt og den tegnede streg bliver langt fra jævn.
Er der nogen der har en anden metode til tegne med musen så man kan få en jævn streg?
Hele koden for programmet er her:
- /**
- * Eksamensprojekt til Programmering C
- * Simon R. Smith
- * 2.A OTG 2011
- * @author Simon R. Smith
- */
- package eksamensprojekt;
- import java.awt.*;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseMotionListener;
-
- public class Main extends Frame implements MouseMotionListener
- {
- private int x1, y1, x2, y2;
- public Main()
- {
- addMouseMotionListener(this);
- setBounds(50,50,400,250);
- setVisible(true);
- }
- public static void main(String[] argv)
- {
- new Main();
- }
- public void update(Graphics g)
- {
- paint(g);
- }
- public void paint(Graphics g)
- {
- g.setColor(Color.black);
- g.fillRect(x1, y1, 5, 5);
- }
- public void mouseDragged(MouseEvent me)
- {
- me.consume();
- int x = me.getX();
- int y = me.getY();
- if ( x1 == 0 )
- {
- x1 = x;
- }
- if ( y1 == 0 )
- {
- y1 = y;
- }
- x2 = x;
- y2 = y;
- repaint();
- x1 = x2;
- y1 = y2;
- }
- public void mouseMoved(MouseEvent me)
- { }
- }