Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 3.043 pregleda

Najnovija ↓

Kako programirati animaciju? 02.09.2007. u 16:00 · pre 233 meseca #1
Ne pravim igru ali mi treba slična stvar. Jedan objekat treba da se kreće po ekranu i pri tome reaguje na nekoliko okolnosti na koje se upravlja pritiskom na tastere. Sve treba da izgleda tečno kao film da nema trzanja i da se brzina objekta ne menja bez obzira na složenost frejma i na snagu kompjutera...
Probavao sam da smislim nekoliko načina ali imam osećaj da se to radi drugačije. Pretpostavljam da developeri igara već imaju nekoliko uhodanih metoda. Da li neko od prgramera može da mi objasni teoretski kako treba da ide tok programa za animaciju u video igri? Ako ima više metoda volio biha da čujem pa da vidim šta će odgovarati za moje potrebe.
Re: Kako programirati animaciju? 03.10.2007. u 17:54 · pre 232 meseca #2
Ja mogu da ti pomognem,samo u jeziku Java,evo ti kod za jednu animaciju
Code:

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Color;

public class Neko extends java.applet.Applet
    implements Runnable {

    Image nekoPics[] = new Image[9];
    Image currentImg;
    Thread runner;
    int x;
    int y = 50;

    public void init() {
        String nekoSrc[] = { "right1.gif", "right2.gif",
            "stop.gif", "yawn.gif", "scratch1.gif",
            "scratch2.gif","sleep1.gif", "sleep2.gif",
            "awake.gif" };

        for (int i=0; i < nekoPics.length; i++) {
            nekoPics[i] = getImage(getCodeBase(),
                "images/" + nekoSrc[i]);
        }
    }

    public void start() {
        if (runner == null) {
            runner = new Thread(this);
            runner.start();
        }
    }

    public void stop() {
        runner = null;
    }

    public void run() {
        setBackground(Color.white);
        // run from one side of the screen to the middle
        nekoRun(0, size().width / 2);
        // stop and pause
        currentImg = nekoPics[2];
        repaint();
        pause(1000);
        // yawn
        currentImg = nekoPics[3];
        repaint();
        pause(1000);
        // scratch four times
        nekoScratch(4);
        // sleep for 5 "turns"
        nekoSleep(5);
        // wake up and run off
        currentImg = nekoPics[8];
        repaint();
        pause(500);
        nekoRun(x, size().width + 10);
    }

    void nekoRun(int start, int end) {
        for (int i = start; i < end; i += 10) {
            x = i;
            // swap images
            if (currentImg == nekoPics[0])
                currentImg = nekoPics[1];
            else currentImg = nekoPics[0];
            repaint();
            pause(150);
        }
    }

    void nekoScratch(int numTimes) {
        for (int i = numTimes; i > 0; i--) {
            currentImg = nekoPics[4];
            repaint();
            pause(150);
            currentImg = nekoPics[5];
            repaint();
            pause(150);
        }
    }

    void nekoSleep(int numTimes) {
        for (int i = numTimes; i > 0; i--) {
            currentImg = nekoPics[6];
            repaint();
            pause(250);
            currentImg = nekoPics[7];
            repaint();
            pause(250);
        }
    }

    void pause(int time) {
        try {
            Thread.sleep(time);
        } catch (InterruptedException e) { }
    }

    public void paint(Graphics screen) {
        if (currentImg != null)
            screen.drawImage(currentImg, x, y, this);
    }
}
Potpis
lammas
Re: Kako programirati animaciju? 04.10.2007. u 05:41 · pre 232 meseca #3
Citat:
Stranger2: Sve treba da izgleda tečno kao film da nema trzanja i da se brzina objekta ne menja bez obzira na složenost frejma i na snagu kompjutera...

Kad ovo završiš, javi i nama, svi bi voleli da znamo - ako ne patentiraš pre toga, naravno :)
Re: Kako programirati animaciju? 04.10.2007. u 09:18 · pre 232 meseca #4
Citat:
Stranger2: Da li neko od prgramera može da mi objasni teoretski kako treba da ide tok programa za animaciju u video igri? Ako ima više metoda volio biha da čujem pa da vidim šta će odgovarati za moje potrebe.


Da, ima vise metoda, ja cu da ti objasnim kako ja radim: Umesto veceg broja slika koje bi prestavljale animaciju, koristim jednu na kojoj se na istoj udaljenosti nalaze sve manje slike. Napravim funkciju koja ce u zavisnosti od parametra velicine pravougaonika koji sam joj prosledio da vraca sledeci sprite. Sad jedino jos namestis da se taj pomeraj vrsi u odredjenom vremenskom periodu (npr. svaka nova slika na 0.3 sec). Nadam se da si razumeo...
Potpis
The earth teaches us more about ourselves than all the books. Because it resists us. Man discovers himself when he measures himself against the obstacle.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme