nickem

Member
  • Content count

    10
  • Joined

  • Last visited

Community Reputation

210 Neutral

About nickem

  • Rank
    Member
  1. Hopefully this is allowed and some may find this useful. https://github.com/Meridian59/Meridian59
  2. It's because bullet1 is declared locally, resulting in it being in the same spot every time. (Well, that's what it looks like anyway) I would create a list of bullets and add them as they're fired, update them every frame, and destroy them when no longer needed(ie collision)
  3. More confusion! [source lang="csharp"]int sy = ((tile_index - 1) / tileset_width); int sx = ((tile_index - 1) - (sy * tileset_width)) * tile_width; sy = sy * tile_height;[/source] Tile index to source rect [img]http://public.gamedev.net//public/style_emoticons/default/huh.png[/img]
  4. If you do not need it to be "human-readable", you could just read/write to a binary file...
  5. Having a different file for each tile some what defeats the purpose of using a tile-based map, in my opinion. Why not use a single tileset image and create "objects" to select from, using the tileset?
  6. C# AStar

    No no no. I didn't want any one o debug it for me, being this is just learning... just maybe thought someone could see something I couldn't after staring at the darn thing for awhile. But I did figure it out: Changed: [source lang="csharp"]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);[/source] To: while(true) { if(current_square.x == start.x) { if(current_square.y == start.y) return path; } path.Add(current_square); current_square = current_square.parent; } [source lang="csharp"][/source] And everything is working as it should! Thanks!
  7. C# AStar

    [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!
  8. LUA: return exposed object

    Thanks! I got it working. I wasn't exporting my C++ functions with LuaBind(rather just Lua), after I did that I used your 2nd option. Thanks.
  9. 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.