Spaced trail code
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
This commit is contained in:
parent
41bff4ce7a
commit
24429fe72a
@ -2,16 +2,12 @@ package sig;
|
|||||||
|
|
||||||
import sig.engine.AnimatedSprite;
|
import sig.engine.AnimatedSprite;
|
||||||
import sig.engine.Color;
|
import sig.engine.Color;
|
||||||
import sig.engine.Font;
|
|
||||||
import sig.engine.Key;
|
import sig.engine.Key;
|
||||||
import sig.engine.Mouse;
|
|
||||||
import sig.engine.Panel;
|
import sig.engine.Panel;
|
||||||
import sig.engine.Point;
|
|
||||||
import sig.engine.Sprite;
|
import sig.engine.Sprite;
|
||||||
import sig.engine.Transform;
|
|
||||||
import sig.engine.PolygonStructure;
|
|
||||||
|
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
class Player{
|
class Player{
|
||||||
@ -20,6 +16,23 @@ class Player{
|
|||||||
|
|
||||||
double animationFrame=0;
|
double animationFrame=0;
|
||||||
double animationSpd=2; //Animation Speed will be 2 frames per second
|
double animationSpd=2; //Animation Speed will be 2 frames per second
|
||||||
|
int TAIL_SPACING=32;
|
||||||
|
|
||||||
|
List<Tail> tail = new ArrayList<Tail>();
|
||||||
|
List<PositionMarker> path = new ArrayList<PositionMarker>();
|
||||||
|
}
|
||||||
|
|
||||||
|
class Tail{
|
||||||
|
double x,y;
|
||||||
|
Tail(List<PositionMarker> tailTrail,int TAIL_SPACING){
|
||||||
|
for (int i=0;i<TAIL_SPACING;i++) {
|
||||||
|
tailTrail.add(new PositionMarker());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class PositionMarker{
|
||||||
|
double x,y;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class JavaProjectTemplate {
|
public class JavaProjectTemplate {
|
||||||
@ -35,6 +48,25 @@ public class JavaProjectTemplate {
|
|||||||
//Initialize your game here.
|
//Initialize your game here.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GeneratePath(){
|
||||||
|
double prev_tail_x=pl.x;
|
||||||
|
double prev_tail_y=pl.y;
|
||||||
|
for (int i=0;i<pl.path.size();i++) {
|
||||||
|
PositionMarker t = pl.path.get(i);
|
||||||
|
double prevpos_x=t.x;
|
||||||
|
double prevpos_y=t.y;
|
||||||
|
t.x=prev_tail_x;
|
||||||
|
t.y=prev_tail_y;
|
||||||
|
prev_tail_x=prevpos_x;
|
||||||
|
prev_tail_y=prevpos_y;
|
||||||
|
}
|
||||||
|
for (int i=0;i<pl.tail.size();i++) {
|
||||||
|
Tail t = pl.tail.get(i);
|
||||||
|
t.x=pl.path.get(i*pl.TAIL_SPACING).x;
|
||||||
|
t.y=pl.path.get(i*pl.TAIL_SPACING).y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void updateGame(double fElapsedTime) {
|
public void updateGame(double fElapsedTime) {
|
||||||
//Put game update logic in here.
|
//Put game update logic in here.
|
||||||
|
|
||||||
@ -55,49 +87,24 @@ public class JavaProjectTemplate {
|
|||||||
pl.y+=200*fElapsedTime;
|
pl.y+=200*fElapsedTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Mouse.isPressed(2)) { //If middle click is pressed, reset the player position.
|
if (Key.isPressed(KeyEvent.VK_SPACE)) {
|
||||||
pl.x=pl.y=200;
|
pl.tail.add(new Tail(pl.path,pl.TAIL_SPACING));
|
||||||
}
|
}
|
||||||
|
GeneratePath();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drawGame() {
|
public void drawGame() {
|
||||||
//Put rendering logic in here.
|
//Put rendering logic in here.
|
||||||
|
|
||||||
game.Clear(Color.BRIGHT_BLUE); //Clear the screen so all pixels from the previous frame are removed.
|
game.Clear(Color.BRIGHT_BLUE); //Clear the screen so all pixels from the previous frame are removed.
|
||||||
|
game.Fill_Rect(pl.x, pl.y, 64, 64, Color.BLACK);
|
||||||
|
|
||||||
game.Draw(100,20,Color.BLACK); //That's not a dead pixel, it's a black one!
|
for (int i=0;i<pl.tail.size();i++) {
|
||||||
game.Draw_Line(10,10,35,35,Color.BLACK); //Line Drawing
|
Tail t = pl.tail.get(i);
|
||||||
|
game.FillCircle(t.x+22, t.y+22, 10, Color.BLUE);
|
||||||
game.Draw_Sprite(450,75,bookSpr,Color.GREEN); //Sprite drawing (with green tint)
|
game.Draw_Circle((int)t.x+22, (int)t.y+22, 10, Color.BLACK);
|
||||||
game.Draw_Sprite(450,75+bookSpr.getHeight(),bookSpr,Transform.VERTICAL); //Sprite drawing with vertical flip
|
}
|
||||||
|
|
||||||
game.Draw_Animated_Sprite(pl.x,pl.y,pl.spr,pl.animationFrame); //Animated Sprite drawing
|
|
||||||
|
|
||||||
game.Draw_Text(10,40,"Mouse X: "+Mouse.x+" Mouse Y:"+Mouse.y,Font.PROFONT_12); //Draw Mouse coordinates in tiny font
|
|
||||||
game.Draw_Text_Ext(10,52,"Hello World 2!",Font.PROFONT_36,Color.MAGENTA); //Draw in larger font
|
|
||||||
|
|
||||||
game.Fill_Triangle(160,160,190,190,50,250,new Color(255,0,0,150)); //Draw a translucent colored triangle
|
|
||||||
|
|
||||||
|
|
||||||
game.FillTexturedPolygon( //Define the uv tex coords of a polygon and a sprite and draw a texture onto it
|
|
||||||
List.of(
|
|
||||||
new Point<Double>(600d,400d),
|
|
||||||
new Point<Double>(600d,550d),
|
|
||||||
new Point<Double>(750d,550d),
|
|
||||||
new Point<Double>(750d,0d)
|
|
||||||
),
|
|
||||||
List.of(
|
|
||||||
new Point<Double>(0d,0d),
|
|
||||||
new Point<Double>(0d,1d),
|
|
||||||
new Point<Double>(1d,1d),
|
|
||||||
new Point<Double>(1d,0d)
|
|
||||||
),
|
|
||||||
List.of(
|
|
||||||
new Color(0,0,0,255),
|
|
||||||
Color.WHITE,
|
|
||||||
Color.RED,
|
|
||||||
Color.WHITE
|
|
||||||
), bookSpr, PolygonStructure.FAN);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user