SOLVED: Radar Object follows NPC's Y co-ordinates

Started by steptoe, Thu 08/03/2012 11:53:15

Previous topic - Next topic

steptoe

First off,

Thanks Khris and Dualnames for your help with my last post and with this dry test.

I am now on part 2 of my control pad.

I have built a Radar GUI.  

On this is an animated Radar screen.

On the Radar GUI screen is a small object that represents the enemy's location in that room. I am certain you have come across this before.

cWaeks is the NPC enemy and BSonar is the Button Object and cEgo is the player.

And yes, I did call it Sonar but it is actually a Radar.

I am sure there is a better way but the way I have written it is as follows in the Rep Exec:

Code: ags

  //SIDEWAYS
  
   if (cWaeks.x<10)
  {
 BSonar.X =2;
  } 
  else if (cWaeks.x<20)
  {
 BSonar.X =8;
  } 
  else if (cWaeks.x<40)
  {
 BSonar.X = 12;
  } 
  else if (cWaeks.x<60)
  {
 BSonar.X = 16;
  } 
  else if (cWaeks.x<80)
  {
 BSonar.X = 22;
  } 
  else if (cWaeks.x<100)
  {
 BSonar.X = 24;
  } 
  else if (cWaeks.x<110)
  {
 BSonar.X = 28;
  } 
  else if (cWaeks.x<130)
 {
 BSonar.X = 30;
 } 
 else if (cWaeks.x<140)
 {
 BSonar.X = 32;
 } 
 else if (cWaeks.x<160)
 {
 BSonar.X = 38;
 } 
 else if (cWaeks.x<190)
 {
 BSonar.X = 40;


This seems to work alright. However, I am having a slight snag with Y co-ordinates.

The NPC by the way walks timed Randomly.

I am sure that there is a better way then what I have to check both X and Y co=ordinates


EDIT: Having worked on it the following works its purpose. Though I expect, yet again, its a long version:

Code: ags

// UP AND DOWN
 
  }
 if (cWaeks.y<50)
 {
 BSonar.Y=3;
 } 
 else if (cWaeks.y<70)
 {
 BSonar.Y=6;
 } 
 else if (cWaeks.y<100)
 {
 BSonar.Y=10;
 } 
 else if (cWaeks.y<118)
 {
 BSonar.Y=16;
 } 
 else if (cWaeks.y<126)
 {
 BSonar.Y=20;
 } 
 else if (cWaeks.y<130)
 {
 BSonar.Y=24;
 } 
 else if (cWaeks.y<140)
 {
 BSonar.Y=34;
 



Help appreciated

steptoe




Khris

Are you kidding?
What happened to using arithmetics?
Code: ags
  BSonar.X = cWaeks.x/5;
  BSonar.Y = cWaeks.y/3;


I'm sorry but anybody who can't figure this out should stay the hell away from programming... :-X

suicidal pencil

Quote from: Khris on Thu 08/03/2012 13:16:19
-snip-
I'm sorry but anybody who can't figure this out should stay the hell away from programming... :-X

Wait, programming requires math?!? Stop the presses, ring the church bells, and tell Donald Knuth so he can write a series of 5 books that confuses the shit out of me  ??? Besides, it's not like it's the worst that code could be abused. I mean, look at the abomination I created (programmers with a faint heart need not look):

Spoiler

SDATAW.WriteString("R");SDATAW.WriteString("0");SDATAW.WriteString("-1");SDATAW.WriteString("2");SDATAW.WriteString("-1");SDATAW.WriteString("1");SDATAW.WriteString("353");SDATAW.WriteString("241");
SDATAW.WriteString("D");SDATAW.WriteString("1");SDATAW.WriteString("-1");SDATAW.WriteString("0");SDATAW.WriteString("-1");SDATAW.WriteString("3");SDATAW.WriteString("348");SDATAW.WriteString("247");
SDATAW.WriteString("D");SDATAW.WriteString("2");SDATAW.WriteString("-1");SDATAW.WriteString("4");SDATAW.WriteString("-1");SDATAW.WriteString("0");SDATAW.WriteString("417");SDATAW.WriteString("266");
SDATAW.WriteString("R");SDATAW.WriteString("3");SDATAW.WriteString("6");SDATAW.WriteString("1");SDATAW.WriteString("7");SDATAW.WriteString("5");SDATAW.WriteString("284");SDATAW.WriteString("241");
SDATAW.WriteString("R");SDATAW.WriteString("4");SDATAW.WriteString("8");SDATAW.WriteString("9");SDATAW.WriteString("-1");SDATAW.WriteString("-1");SDATAW.WriteString("422");SDATAW.WriteString("241");
SDATAW.WriteString("D");SDATAW.WriteString("5");SDATAW.WriteString("-1");SDATAW.WriteString("3");SDATAW.WriteString("-1");SDATAW.WriteString("10");SDATAW.WriteString("279");SDATAW.WriteString("269");
SDATAW.WriteString("D");SDATAW.WriteString("6");SDATAW.WriteString("11");SDATAW.WriteString("-1");SDATAW.WriteString("3");SDATAW.WriteString("-1");SDATAW.WriteString("299");SDATAW.WriteString("236");
SDATAW.WriteString("D");SDATAW.WriteString("7");SDATAW.WriteString("3");SDATAW.WriteString("-1");SDATAW.WriteString("12");SDATAW.WriteString("-1");SDATAW.WriteString("318");SDATAW.WriteString("305");
SDATAW.WriteString("D");SDATAW.WriteString("8");SDATAW.WriteString("13");SDATAW.WriteString("-1");SDATAW.WriteString("4");SDATAW.WriteString("-1");SDATAW.WriteString("455");SDATAW.WriteString("236");
SDATAW.WriteString("D");SDATAW.WriteString("9");SDATAW.WriteString("-1");SDATAW.WriteString("14");SDATAW.WriteString("-1");SDATAW.WriteString("4");SDATAW.WriteString("486");SDATAW.WriteString("253");
SDATAW.WriteString("R");SDATAW.WriteString("10");SDATAW.WriteString("-1");SDATAW.WriteString("5");SDATAW.WriteString("-1");SDATAW.WriteString("15");SDATAW.WriteString("215");SDATAW.WriteString("241");
SDATAW.WriteString("R");SDATAW.WriteString("11");SDATAW.WriteString("16");SDATAW.WriteString("17");SDATAW.WriteString("6");SDATAW.WriteString("-1");SDATAW.WriteString("284");SDATAW.WriteString("172");
SDATAW.WriteString("R");SDATAW.WriteString("12");SDATAW.WriteString("7");SDATAW.WriteString("-1");SDATAW.WriteString("-1");SDATAW.WriteString("18");SDATAW.WriteString("284");SDATAW.WriteString("310");
SDATAW.WriteString("R");SDATAW.WriteString("13");SDATAW.WriteString("-1");SDATAW.WriteString("-1");SDATAW.WriteString("8");SDATAW.WriteString("19");SDATAW.WriteString("421");SDATAW.WriteString("172");
SDATAW.WriteString("R");SDATAW.WriteString("14");SDATAW.WriteString("-1");SDATAW.WriteString("-1");SDATAW.WriteString("-1");SDATAW.WriteString("9");SDATAW.WriteString("491");SDATAW.WriteString("241");
SDATAW.WriteString("D");SDATAW.WriteString("15");SDATAW.WriteString("-1");SDATAW.WriteString("10");SDATAW.WriteString("-1");SDATAW.WriteString("15");SDATAW.WriteString("210");SDATAW.WriteString("282");
SDATAW.WriteString("D");SDATAW.WriteString("16");SDATAW.WriteString("21");SDATAW.WriteString("-1");SDATAW.WriteString("11");SDATAW.WriteString("-1");SDATAW.WriteString("322");SDATAW.WriteString("167");
SDATAW.WriteString("D");SDATAW.WriteString("17");SDATAW.WriteString("-1");SDATAW.WriteString("22");SDATAW.WriteString("-1");SDATAW.WriteString("11");SDATAW.WriteString("348");SDATAW.WriteString("204");
SDATAW.WriteString("D");SDATAW.WriteString("18");SDATAW.WriteString("-1");SDATAW.WriteString("12");SDATAW.WriteString("-1");SDATAW.WriteString("23");SDATAW.WriteString("279");SDATAW.WriteString("345");
SDATAW.WriteString("D");SDATAW.WriteString("19");SDATAW.WriteString("-1");SDATAW.WriteString("13");SDATAW.WriteString("-1");SDATAW.WriteString("22");SDATAW.WriteString("417");SDATAW.WriteString("190");
SDATAW.WriteString("R");SDATAW.WriteString("20");SDATAW.WriteString("-1");SDATAW.WriteString("15");SDATAW.WriteString("-1");SDATAW.WriteString("-1");SDATAW.WriteString("146");SDATAW.WriteString("241");
SDATAW.WriteString("R");SDATAW.WriteString("21");SDATAW.WriteString("-1");SDATAW.WriteString("-1");SDATAW.WriteString("16");SDATAW.WriteString("-1");SDATAW.WriteString("284");SDATAW.WriteString("103");
SDATAW.WriteString("R");SDATAW.WriteString("22");SDATAW.WriteString("-1");SDATAW.WriteString("19");SDATAW.WriteString("-1");SDATAW.WriteString("17");SDATAW.WriteString("353");SDATAW.WriteString("172");
SDATAW.WriteString("R");SDATAW.WriteString("23");SDATAW.WriteString("-1");SDATAW.WriteString("18");SDATAW.WriteString("-1");SDATAW.WriteString("-1");SDATAW.WriteString("215");SDATAW.WriteString("310");

//this is only because I don't have a proper 'level creator' to make specific levels, instead of just random ones.
[close]

Hey Steptoe, don't be afraid to try and solve a problem on paper (or a whiteboard if you have one). If you can figure it out on paper then programming it will be easy. That, and if you ever forget something, you have a hard copy you can look from!


steptoe

#3
Thank you.

Khris:

Code: ags

BSonar.X = cWaeks.x/5;
BSonar.Y = cWaeks.y/5;

Works best.

Don't be too harsh.. ;) Cheers anyhow khris.

Thanks guys

SMF spam blocked by CleanTalk