Adventure Game Studio

AGS Support => Beginners' Technical Questions => Topic started by: steptoe on Thu 08/03/2012 11:53:15

Title: SOLVED: Radar Object follows NPC's Y co-ordinates
Post by: steptoe on Thu 08/03/2012 11:53:15
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:


 //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:


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



Title: Re: Radar Object follows NPC's Y co-ordinates
Post by: Khris on Thu 08/03/2012 13:16:19
Are you kidding?
What happened to using arithmetics?
  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
Title: Re: Radar Object follows NPC's Y co-ordinates
Post by: suicidal pencil on Thu 08/03/2012 13:58:21
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!

Title: Re: Radar Object follows NPC's Y co-ordinates
Post by: steptoe on Thu 08/03/2012 19:56:44
Thank you.

Khris:


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

Works best.

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

Thanks guys