Hem E-böcker Specialeffekter och spelutveckling i Java Appleten Gradient

Specialeffekter och spelutveckling i Java(TM) - Appleten Gradient

import java.applet.*;
import java.awt.*;
import java.awt.image.*;

public class gradient extends Applet {

//"gradientimage" kommer att hålla reda på
//bilden som vi skapar.
Image gradientimage=null;

public void init()
{
    //Vi måste nu veta appletskärmens storlek.
    Dimension d;
    d=size();

    //Vi börjar med att skapa en array som
    //är lika stor som skärmen. Den kommer
    //att innehålla färgvärdena som vi sedan
    //använder för att skapa en bild.
    int pixels[]=new int[d.width*d.height];
    int red,blue,colorvalue;

    //Följande FOR-slinga sveper igenom
    //bilden från vänster till höger.
    //Den fyller upp arrayen med
    //pixelvärden som blandas mellan
    //rött och blått (rött längst till vänster
    //och blått längst till höger.
    for (int x=0; x < d.width; x++)
    {
        //Räkna ut ett värde på röd- och blå-
        //komponenterna beroende på var
        //positionen på "x" är. ((d.width-x)/d.width)
        //samt (x/d.width) används som faktorer.
        red=(255*(d.width-x))/d.width;
        blue=(255*x)/d.width;

        //Dessa två värden är
        //komponenter för färgvärdet, som vi
        //bygger upp tillsammans med alfa-kanalen
        //(0xff000000). Observera att röd-komponenten
        //måste skiftas 2 bytes åt vänster så att
        //den hamnar på rätt plats. Detta gör vi genom
        //att multiplicera två gånger med 256.
        //Blå-komponenten ÄR redan i rätt plats, så
        //där behöver vi inte multiplicera.
        colorvalue=0xff000000+(red*256*256)+blue;

        //Följande FOR-slinga kommer att
        //svepa igenom bilden upp och ner.
        for (int y=0; y < d.height; y++)
        {
            //Kom ihåg att x+y*d.width är
            //positionen för pixeln som
            //skall sättas eller läsas
            //av.
            pixels[x+y*d.width]=colorvalue;
        }
    }
    //Nu kan vi skapa ett MemoryImageSource-
    //objekt.
    MemoryImageSource imgsrc=new MemoryImageSource(d.width,d.height,pixels,0,d.width);

    //Med createImage() skapar vi bilden som
    //man kan använda i paint() metoden.
    gradientimage=createImage(imgsrc);
}

public void paint(Graphics g)
{
    //Vi måste först kolla att gradientimage
    //inte är NULL innan vi ritar ut den.
    if (gradientimage!=null) g.drawImage(gradientimage,0,0,this);
}


}