
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!
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


0