Moi,
Olen tehnyt tämän esimerkin pohjalta kalastuspeliä: http://www.javacooperation.gmxhome.de/
Jos lisään tuohon esimerkkiin antialiasing, alkaa kaikki mitä piirretään, vilkkumaan/räpsymään. Kestääkö noiden kuvioiden piirrossa sitten niin kauan taustan piirron jälkeen, että noin käy?
Millä tavalla se pitäis toteuttaa jos haluaa reunojen pehmennyksen? Tässä miten yritin tuohon esimerkkiin laittaa:
import java.applet.*;
import java.awt.*;
public class Ballbewegung1 extends Applet implements Runnable
{
// Initialisierung der Variablen
int x_pos = 10; // x - Position des Balles
int y_pos = 100; // y - Position des Balles
int radius = 20; // Radius des Balles
RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
public void init()
{
setBackground (Color.blue);
}
public void start ()
{
// Schaffen eines neuen Threads, in dem das Spiel läuft
Thread th = new Thread (this);
// Starten des Threads
th.start ();
}
public void stop()
{
}
public void destroy()
{
}
public void run ()
{
// Erniedrigen der ThreadPriority um zeichnen zu erleichtern
Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
// Solange true ist läuft der Thread weiter
while (true)
{
// Verändern der x- Koordinate
x_pos ++;
// Neuzeichnen des Applets
repaint();
try
{
// Stoppen des Threads für in Klammern angegebene Millisekunden
Thread.sleep (20);
}
catch (InterruptedException ex)
{
// do nothing
}
// Zurücksetzen der ThreadPriority auf Maximalwert
Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
}
}
public void paint (Graphics g)
{
rh.put (RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY );
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHints(rh);
g2d.setColor (Color.red);
g2d.fillOval (x_pos - radius, y_pos - radius, 2 * radius, 2 * radius);
}
}Ja täällä ne mun kalat pyörii, jos jotain kiinnostaa.. http://www.jrantala.com/kalat.html
Muuta ei ole valmiina.
Linkkaamasi oppaan seuraava kappale käsittelee Double Buffering -tekniikkaa, jonka pitäisi ratkaista tämä ongelma. Oletko kokeillut käyttää sitä?
Tosiaan, kiitoksia! Nyt on kaloilla pehmeät reunat.
Aihe on jo aika vanha, joten et voi enää vastata siihen.