Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!


1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


nickem

Member Since 14 Sep 2005
Offline Last Active Nov 20 2012 07:02 PM

Topics I've Started

Meridian59 Now Open Source

18 September 2012 - 06:04 PM

Hopefully this is allowed and some may find this useful.

https://github.com/Meridian59/Meridian59

C# AStar

28 June 2012 - 10:59 AM

[source lang="csharp"]while(openlist.Count > 0) { current_square = LowestF(openlist); openlist.Remove(current_square); closedlist.Add(current_square); List<Node> path = new List<Node>(); if(current_square.x == end.x && current_square.y == end.y) { path.Clear(); do { if(current_square.tile != 100) { //current_square.tile = 199; path.Add(current_square); current_square = current_square.parent; } }while(current_square.x != start.x && current_square.y != start.y); return path; } List<Node> sucessors = GetSucessors(current_square); foreach(Node successor in sucessors) { if(closedlist.Contains(successor)) { continue; } if(successor.tile == 100) { continue; } bool cornerwalkable = true; if(cornerwalkable == true) { if(!openlist.Contains(successor)) { if(successor.tile == 100) continue; successor.h = H(end.x, end.y,successor.x, successor.y); int addedG = 0; if(Math.Abs(successor.x - current_square.x) == 1 && Math.Abs(successor.y - current_square.y) == 1) addedG = 14; else addedG = 10; successor.g = current_square.g + addedG; successor.f = successor.g + successor.h; successor.parent = current_square; openlist.Add(successor); } else { if(successor.tile == 100) continue; int addedG = 0; if(Math.Abs(successor.x - current_square.x) == 1 && Math.Abs(successor.y - current_square.y) == 1) addedG = 14; else addedG = 10; int tempG = current_square.g + addedG; if(tempG < successor.g) { successor.parent = current_square; successor.g = tempG; } } }[/source]

For some reason it's not returning the path everytime. It only happens when there's a wall in between the player and the destination node. The path is only the start node and end node which makes the player walk right through the wall. But most of the time it works. Ha! Cannot figure it out!

LUA: return exposed object

14 September 2005 - 09:57 PM

In code, I can explain my problem better:
int li_GetPixel( lua_State *l )
{
    COLORREF c = GetPixel( GetDC( 0 ), lua_tonumber( l, 1 ), lua_tonumber( l, 2 ) );
    LRGB rgb;

    rgb.r = GetRValue( c );
    rgb.g = GetRValue( c );
    rgb.b = GetRValue( c );

    //now I want to return rgb, how would I do this?
    //I've already exposed this class via LuaBind
    //I thought it would be something easy like lua_pushuserdata()
    //but I'm guessing it ain't that easy(also there's no such thing) :)
}
Thanks in advance.

PARTNERS