Water level visuals from above water

Co-authored-by: r3cp3ct <45179536+r3cp3ct@users.noreply.github.com>
Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
main
unknown 2 years ago
parent 2061be33a6
commit 7195cdd139
  1. BIN
      maps/world1.map
  2. 10
      src/sig/DrawLoop.java
  3. 4
      src/sig/objects/LevelRenderer.java

Binary file not shown.

@ -11,6 +11,8 @@ import sig.engine.Rectangle;
import sig.engine.Sprite;
import sig.engine.String;
import sig.engine.Transform;
import sig.map.Map;
import sig.objects.LevelRenderer;
public class DrawLoop {
public static Panel panel;
@ -204,11 +206,13 @@ public class DrawLoop {
public static void Draw(byte[] canvas,int index, byte col) {
if(RabiClone.player!=null && RabiClone.player.isUnderwater()){
canvas[index]=(byte)((int)(col+33)&0xff);
int camera_y = (int)RabiClone.level_renderer.getY();
int y = index/RabiClone.BASE_WIDTH;
if(RabiClone.level_renderer!=null&&y<=RabiClone.CURRENT_MAP.getMap().getWaterLevel()-camera_y){
canvas[index]=(byte)((int)(col)&0xff);
}
else{
canvas[index]=(byte)((int)(col)&0xff);
canvas[index]=(byte)((int)(col+33)&0xff);
}
}
}

@ -176,7 +176,9 @@ public class LevelRenderer extends Object{
for (int y=0;y<RabiClone.BASE_HEIGHT;y++) {
for (int x=0;x<RabiClone.BASE_WIDTH;x++) {
int index = y*RabiClone.BASE_WIDTH+x;
if(RabiClone.player!=null && RabiClone.player.isUnderwater()){
int camera_y = (int)RabiClone.level_renderer.getY();
int Y = index/RabiClone.BASE_WIDTH;
if(!(Y<=RabiClone.CURRENT_MAP.getMap().getWaterLevel()-camera_y)){
p[index] = (byte)(targetBackground.getPixels()[
((y+(int)(getY()*targetBackground.getScrollSpeed()))%targetBackground.getHeight())*targetBackground.getWidth()+((x+(int)(getX()*targetBackground.getScrollSpeed()))%targetBackground.getWidth())
]+33);

Loading…
Cancel
Save