/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Hastighed i JavaSpil!
Fra : David Skipper


Dato : 21-06-01 12:15

Hej

Ved ikke om nogle af jer kan hjælpe, men jeg har et mindre problem!!

Har lige færdig programmeret et Java Pacman spil, men har nogle hastigheds
problemer idet,
når spillet afvikles på f.eks. en PIII800 maskine køre spille næsten 2 gange
hurtigere end på en Pentium 200MHz kan man ind programmere et delay eller
hvad skal man gøre???


Med Venlig Hilsen

David Skipper




 
 
Soren 'Disky' Reinke (21-06-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 21-06-01 12:48


"David Skipper" <ds@winxs.dk> skrev i en meddelelse
news:MIkY6.61$C_6.9947@news.get2net.dk...
> Hej
>
> Ved ikke om nogle af jer kan hjælpe, men jeg har et mindre
problem!!
>
> Har lige færdig programmeret et Java Pacman spil, men har nogle
hastigheds
> problemer idet,
> når spillet afvikles på f.eks. en PIII800 maskine køre spille
næsten 2 gange
> hurtigere end på en Pentium 200MHz kan man ind programmere et
delay eller
> hvad skal man gøre???

Ja brug en timer til at sænke hastigheden med, eller kør det i en
tråd der bliver afhviklet f.eks. hvert 20 ms.

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
Remove IHSYD from email address when replying by email

Please visit my Freshwater Aquaria Webpage
http://www.disky-design.dk/fish

Now available:
The internets first PLANT SEARCH ENGINE

http://www.disky-design.dk/fish/PlantSearch/PlantSearch.html




Hans Iversen (26-06-2001)
Kommentar
Fra : Hans Iversen


Dato : 26-06-01 12:05

venter maskinen på en event før den kan flytte "pacman" vidre?

David Skipper wrote in message ...
>Hej
>
>Ved ikke om nogle af jer kan hjælpe, men jeg har et mindre problem!!
>
>Har lige færdig programmeret et Java Pacman spil, men har nogle hastigheds
>problemer idet,
>når spillet afvikles på f.eks. en PIII800 maskine køre spille næsten 2
gange
>hurtigere end på en Pentium 200MHz kan man ind programmere et delay eller
>hvad skal man gøre???
>
>
>Med Venlig Hilsen
>
>David Skipper
>
>
>



Jacob Møller (26-06-2001)
Kommentar
Fra : Jacob Møller


Dato : 26-06-01 17:48



> venter maskinen på en event før den kan flytte "pacman" vidre?
>

Det vil være en utrolig dårlig idé at lave bevægelserne direkte
eventbaserede...

Med venlig hilsen,
Jacob Møller
www.kiloo.dk




Hans Iversen (26-06-2001)
Kommentar
Fra : Hans Iversen


Dato : 26-06-01 18:48

ja skal det ikke laves med en tråd?

jeg spurgte bare fordi han siger der er så stor forskel?!?


Jacob Møller wrote in message <9hae9f$2qe2$1@news.cybercity.dk>...
>
>
>> venter maskinen på en event før den kan flytte "pacman" vidre?
>>
>
>Det vil være en utrolig dårlig idé at lave bevægelserne direkte
>eventbaserede...
>
>Med venlig hilsen,
>Jacob Møller
>www.kiloo.dk




Jacob Møller (26-06-2001)
Kommentar
Fra : Jacob Møller


Dato : 26-06-01 19:05


> ja skal det ikke laves med en tråd?
>
> jeg spurgte bare fordi han siger der er så stor forskel?!?

Jo, det er (selvfølgelig) nødvendigt at benytte en tråd og så ændre
objekternes opførsel når en ny passende begivenhed er hændt.

Med venlig hilsen,
Jacob Møller
www.kiloo.dk




Mikkel Bundgaard (26-06-2001)
Kommentar
Fra : Mikkel Bundgaard


Dato : 26-06-01 19:10

David Skipper <ds@winxs.dk> wrote in message
news:MIkY6.61$C_6.9947@news.get2net.dk...
> Hej
>
> Ved ikke om nogle af jer kan hjælpe, men jeg har et mindre problem!!
>
> Har lige færdig programmeret et Java Pacman spil, men har nogle hastigheds
> problemer idet, når spillet afvikles på f.eks. en PIII800 maskine køre
> spille næsten 2 gange hurtigere end på en Pentium 200MHz kan man
> ind programmere et delay eller hvad skal man gøre???
>
>
> Med Venlig Hilsen
>
> David Skipper
>
Hej David

Så vidt jeg kan se er det et problem, at du har koblet
skærmopdatering og bevægelse for tæt. Som du selv er inde på
så gør det, at spillets hastighed afhænger af farten af
skærmopdatering.

Det som du kan gøre er at implementere en form for
håndtering af framerate. Således at f.eks. bevægelsen af den
person, som man styrer på skærmen, flytter sig den samme
afstand på en fastlagt tid ligemeget, hvor hurtig computeren er.
Dvs. at i stedet for at flytte personen en fast længde for hver
frame, flyttes den en variabel længde.

Eller også kan man implementere spillet således, at det kører
korrekt ved den laveste processor muligt og så tvinge det til
ikke at køre hurtigere, selvom der er mulighed derfor (lidt
ala det som Søren foreslog).

Se evt. på http://www.gamedev.net/. Sitet indeholder sikkert en
toturial, som du kan bruge (og som sikkert forklare det bedre
end jeg .
--
Mvh.
Mikkel Bundgaard
RUC Datalogi
http://officehelp.gone.dk



Brian Matzon (27-06-2001)
Kommentar
Fra : Brian Matzon


Dato : 27-06-01 08:27

<SNIP>
> Det som du kan gøre er at implementere en form for
> håndtering af framerate. Således at f.eks. bevægelsen af den
> person, som man styrer på skærmen, flytter sig den samme
> afstand på en fastlagt tid ligemeget, hvor hurtig computeren er.
> Dvs. at i stedet for at flytte personen en fast længde for hver
> frame, flyttes den en variabel længde.
<SNIP>
>--
> Mvh.
> Mikkel Bundgaard
> RUC Datalogi
> http://officehelp.gone.dk
>

Problemet med dette er bare at Thread.sleep() og System.currentTimeMillis()
er så pisse upræcise...
System.currentTimeMillis() kan fixes via jni eller hvis det er IE only:
QueryPerformanceCounter().
Men så er der stadig Thread.sleep() som man som sådan ikke kan gøre noget
ved...
Derfor - Flyt ALTID x per update, men SØRG FOR at du altid får det antal
updates der er relevant.
Hvis du ikke får det antal updates dit program er sat til, så lad vær med at
painte onscreen.

my $0.02 :)

/Brian Matzon



Soren 'Disky' Reinke (27-06-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 27-06-01 08:38

> Problemet med dette er bare at Thread.sleep() og
System.currentTimeMillis()
> er så pisse upræcise...
> System.currentTimeMillis() kan fixes via jni eller hvis det er
IE only:
> QueryPerformanceCounter().
> Men så er der stadig Thread.sleep() som man som sådan ikke kan
gøre noget
> ved...
> Derfor - Flyt ALTID x per update, men SØRG FOR at du altid får
det antal
> updates der er relevant.
> Hvis du ikke får det antal updates dit program er sat til, så
lad vær med at
> painte onscreen.

Ikke for noget, men har man arbejdet med at lave bevægelig grafik
i længere tid end ca 15 min. har man opdaget man skal bruge
double buffering :)

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email



Brian Matzon (27-06-2001)
Kommentar
Fra : Brian Matzon


Dato : 27-06-01 10:40

"Soren 'Disky' Reinke" <disky@disky-design.ihsyd.dk> wrote in message
news:z2g_6.254$cO1.715134995@news.euroconnect.net...
<snip>
>
> Ikke for noget, men har man arbejdet med at lave bevægelig grafik
> i længere tid end ca 15 min. har man opdaget man skal bruge
> double buffering :)
>
> --
> With many Thanks
>
> Soren ' Disky ' Reinke ICQ #1413069
> http://www.disky-design.dk/fish
> Remove IHSYD from email address when replying by email
Snafu?
Hvad har double buffering med bevægelse af sprites???
Selvfølgelig skal man double buffer! (også gerne multi buffering) - men det
løser
ikke nogen bevægelses problemer.
Prøv lav en sprite der bevæger sig linært (bare et par pixel af gangen) hen
over skærmen, så kan du se hvorfor at det er lidt af en kunst at få et
(action)spil til at se bare nogenlunde kønt ud - bevægelses mæssigt.



Soren 'Disky' Reinke (27-06-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 27-06-01 11:55

> Snafu?

Øh hvad ?

> Hvad har double buffering med bevægelse af sprites???

Hvis du ikke ved det kender du ikke meget til at lave
spil/bevægelig grafik

> Selvfølgelig skal man double buffer! (også gerne multi
buffering) - men det
> løser
> ikke nogen bevægelses problemer.

Jo det gør.

> Prøv lav en sprite der bevæger sig linært (bare et par pixel af
gangen) hen
> over skærmen, så kan du se hvorfor at det er lidt af en kunst
at få et
> (action)spil til at se bare nogenlunde kønt ud - bevægelses
mæssigt.

Det er faktisk ret nemt.

Nej jeg gider ikke vise dig et eksempel.

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email



Brian Matzon (27-06-2001)
Kommentar
Fra : Brian Matzon


Dato : 27-06-01 13:04

"Soren 'Disky' Reinke" <disky@disky-design.ihsyd.dk> wrote in message
news:uXi_6.5$C24.66705431@news.euroconnect.net...
> > Snafu?
>
> Øh hvad ?
Situation Normal All Fucked Up

> > Hvad har double buffering med bevægelse af sprites???
>
> Hvis du ikke ved det kender du ikke meget til at lave
> spil/bevægelig grafik
Jo, det har jeg - Det eneste formål med Multi buffering, er at eleminere
"flickering" - og
nogen gange for at forbedre performance.

> > Selvfølgelig skal man double buffer! (også gerne multi
> buffering) - men det
> > løser
> > ikke nogen bevægelses problemer.
>
> Jo det gør.
Nej! :)

>
> > Prøv lav en sprite der bevæger sig linært (bare et par pixel af
> gangen) hen
> > over skærmen, så kan du se hvorfor at det er lidt af en kunst
> at få et
> > (action)spil til at se bare nogenlunde kønt ud - bevægelses
> mæssigt.
>
> Det er faktisk ret nemt.
>
> Nej jeg gider ikke vise dig et eksempel.
>
Jeg har ikke brug for eksempler - det tyder på at du gør!.
Den eneste måde jeg har kunne få grafik til at bevæge sig 100%
flydende i java (ved ~ 50 - 60 fps) er desværre via Direct X.
Men du må meget gerne modbevise mig!!

> --
> With many Thanks
>
> Soren ' Disky ' Reinke ICQ #1413069
> http://www.disky-design.dk/fish
> Remove IHSYD from email address when replying by email

/Brian Matzon



Soren 'Disky' Reinke (27-06-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 27-06-01 13:16

> >
> > Nej jeg gider ikke vise dig et eksempel.
> >
> Jeg har ikke brug for eksempler - det tyder på at du gør!.

Nope,

> Den eneste måde jeg har kunne få grafik til at bevæge sig 100%
> flydende i java (ved ~ 50 - 60 fps) er desværre via Direct X.
> Men du må meget gerne modbevise mig!!

Læs om Java 3D api, den nye jdk 1.4, den sparker 100% røv, og den
bruger IKKE Direct X.

For bruger man det er java ikke platformsuafhængigt længere,
altså en dum ide, man skal selvfølgelig bruge OpenGL direkte (som
3d api'en gør)

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email



Brian Matzon (27-06-2001)
Kommentar
Fra : Brian Matzon


Dato : 27-06-01 13:37


"Soren 'Disky' Reinke" <disky@disky-design.ihsyd.dk> wrote in message
news:s7k_6.11$PD5.106522637@news.euroconnect.net...
> > >
> > > Nej jeg gider ikke vise dig et eksempel.
> > >
> > Jeg har ikke brug for eksempler - det tyder på at du gør!.
>
> Nope,
Nå ok.........

>
> > Den eneste måde jeg har kunne få grafik til at bevæge sig 100%
> > flydende i java (ved ~ 50 - 60 fps) er desværre via Direct X.
> > Men du må meget gerne modbevise mig!!
>
> Læs om Java 3D api, den nye jdk 1.4, den sparker 100% røv, og den
> bruger IKKE Direct X.
1. Jeg taler 2D.
2. 1.4 er kun i beta, og ja den performer rigtigt godt, men ikke ligeså godt
som Direct X.
3. VolatileImage = JNI + Direct X (Direct Draw) (under windows, og PixMap
på Solaris/Linux(?)).
4. Jeg har lavet mit eksempel med VolatileImage (dog ikke med
pageflipping da fullscreen er broken) - og det performer heller ikke "godt
nok".

Men min erfaring med jdk 1.4 er på Windows 2000, hvor der er nogle bugs hist
og her med VolatileImage.

Men jeg skal nok lige poste et simpelt eksempel i aften, som prøver med både
VoilatileImage og alm. Image. Så kan du se det ikke er muligt at flytte en
sprite
100% flydende...

> For bruger man det er java ikke platformsuafhængigt længere,
> altså en dum ide, man skal selvfølgelig bruge OpenGL direkte (som
> 3d api'en gør)
Som sagt, jeg taler om 2D. Jeg kan ikke rigtigt udtale mig om Java 3D
da jeg kun har kigget meget lidt på det. Men så jeg mener da ogå at Java 3D
er:
JNI + <Direct X | OpenGL>

>
> --
> With many Thanks
>
> Soren ' Disky ' Reinke ICQ #1413069
> http://www.disky-design.dk/fish
> Remove IHSYD from email address when replying by email

/Brian Matzon



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste