Java - Bajar velocidad del tick()

   
Vista:
Imágen de perfil de Badozard

Bajar velocidad del tick()

Publicado por Badozard (1 intervención) el 21/05/2015 22:43:27
Buenas. Cómo están?
Estoy haciendo un trabajo para la facultad en el que tengo que hacer un juego similar al Plants vs. Zombies y quería hacer una consulta.

Ya está creada la interfaz y la clase del personaje que va caminando por el mapa para instalar torretas. El problema que tengo es que cuando presiono alguna tecla para que camine en cierta dirección, se mueve demasiado rápido. Me preguntaba si se podía bajar la frecuencia del tick() de alguna forma, o cómo hacer mediante otro método.

Acá dejo el código de la clase Juego (la principal) y si necesitan algo más lo subo, también.
Desde ya, muchas gracias!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package juego;
 
import java.awt.Color;
 
import entorno.*;
 
 
public class Juego extends InterfaceJuego
{
	private Entorno entorno;
 
	Torreta t1;
	Chabon chabon;
	Sion[] sion;
 
	Juego()
	{
		entorno = new Entorno(this, "Zombieland - Versión 0.01", 790, 590);
		t1=new Torreta(50,50);
		chabon=new Chabon(50,150);
		this.sion = new Sion[8];
		for(int i = 0; i<this.sion.length; i++) {
			this.sion[i] = new Sion();
		}
 
		entorno.iniciar();
	}
 
	public void tick()
	{
		for(int i=100;i<=800;i=i+100){
			entorno.dibujarRectangulo(i,0,3,1300,0,Color.white);
		}
		for(int i=100;i<=600;i=i+100){
			entorno.dibujarRectangulo(0,i,1700,3,0,Color.white);
		}
 
		for (int i=0;i<sion.length;i++)
		{
			if (!sion[i].getGolpeado())
			{
				sion[i].dibujarse(entorno);
			}
		}
 
		t1.dibujarse(entorno);
		chabon.dibujarse(entorno);
 
		if (entorno.estaPresionada(entorno.TECLA_IZQUIERDA) && chabon.getX() > 100)
			chabon.moverIzquierda();
		if (entorno.estaPresionada(entorno.TECLA_DERECHA) && chabon.getX() < entorno.ancho() - 100)
			chabon.moverDerecha();
		if (entorno.estaPresionada(entorno.TECLA_ARRIBA) && chabon.getY() > 100)
			chabon.moverArriba();
		if (entorno.estaPresionada(entorno.TECLA_ABAJO) && chabon.getY() < entorno.alto() - 100)
			chabon.moverAbajo();
 
		if (!entorno.estaPresionada('P'))
		{
			for (int i=0;i<sion.length;i++)
			{
				if (!sion[i].getGolpeado())
				{
					sion[i].avanzar();
				}
			}
		}
	}
 
	@SuppressWarnings("unused")
	public static void main(String[] args)
	{
		Juego juego = new Juego();
	}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Bajar velocidad del tick()

Publicado por Isa (1 intervención) el 23/05/2015 02:12:22
Hola, has probado utilizar los ""Thread.sleep(100);"" ?
Me puedes pasar todos tus códigos de ese proyecto? me causa mucha curiosidad.
gracias!! espero que te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar