-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStartScreen.java
More file actions
122 lines (79 loc) · 3.33 KB
/
StartScreen.java
File metadata and controls
122 lines (79 loc) · 3.33 KB
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package com.udacity.gamedev.donkeykong;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.InputAdapter;
import com.badlogic.gdx.Screen;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.GlyphLayout;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.viewport.FitViewport;
import com.udacity.gamedev.donkeykong.util.Constants;
public class StartScreen extends InputAdapter implements Screen {
DonkeyGame donkeyGame;
ShapeRenderer renderer;
SpriteBatch batch;
FitViewport viewport;
BitmapFont font;
public StartScreen(DonkeyGame donkeyGame){
this.donkeyGame = donkeyGame;
}
@Override
public void show() {
renderer = new ShapeRenderer();
batch = new SpriteBatch();
viewport = new FitViewport(Constants.START_WORLD_SIZE, Constants.START_WORLD_SIZE);
Gdx.input.setInputProcessor(this);// con esta funcion llamo a touchDown()
font = new BitmapFont();
font.getData().setScale(Constants.START_LABEL_SCALE);
font.getRegion().getTexture().setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);
}
@Override
public void render(float delta) {
viewport.apply();
Gdx.gl.glClearColor(Constants.BACKGROUND_COLOR.r, Constants.BACKGROUND_COLOR.g, Constants.BACKGROUND_COLOR.b, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
renderer.setProjectionMatrix(viewport.getCamera().combined);
//dibujar el boton
renderer.begin(ShapeRenderer.ShapeType.Filled);
renderer.setColor(Constants.START_COLOR);
renderer.circle(Constants.BUTTON_START_CENTER.x, Constants.BUTTON_START_CENTER.y, Constants.START_BUBBLE_RADIUS);
renderer.end();
batch.setProjectionMatrix(viewport.getCamera().combined);
//dibujar letras
batch.begin();
final GlyphLayout easyLayout = new GlyphLayout(font, Constants.START_LABEL);
font.draw(batch, Constants.START_LABEL, Constants.START_CENTER.x, (Constants.START_CENTER.y - 120) + easyLayout.height / 2, 0, Align.center, false);
font.draw(batch, Constants.DONKEY_KONG_LABEL, Constants.START_CENTER.x, (Constants.START_CENTER.y + 130) + easyLayout.height/2, 0, Align.center, false);
batch.end();
}
@Override
public void resize(int width, int height) {
viewport.update(width, height, true);
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void hide() {
batch.dispose();
font.dispose();
renderer.dispose();
}
@Override
public void dispose() {
}
public boolean touchDown(int screenX, int screenY, int pointer, int button){
Vector2 worldTouch = viewport.unproject(new Vector2(screenX, screenY));
if (worldTouch.dst(Constants.BUTTON_START_CENTER) < Constants.START_BUBBLE_RADIUS) {
donkeyGame.showDonkeyScreen();
}
return true;
}
}