Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - b0undarybreaker

Pages: [1]
1
Development / Detecting when a pickable is picked up
« on: August 05, 2017, 08:27:14 am »
I have two pickable items named card and gem and I want to be able to tell when they're picked up and make pointers over each item disappear. I'm using this script to do that:
Code: Lua
  1. function map:on_update()
  2.   if not map.card:exists() then
  3.     cardpoint:remove()
  4.     print("Card removed!")
  5.   else if not map.gem:exists() then
  6.     gempoint:remove()
  7.     print("Gem removed!")
  8.   end
  9.   end
  10. end
However, when I do that, it errors Error: In on_update: [string "maps/street_arspace.lua"]:79: attempt to index field 'card' (a nil value), line 79 being if not map.card:exists() then. Any suggestion for what I'm doing wrong?
It also for some reason doesn't work without that extra end there. I'm not sure what's up with that.

2
Development / Adding WASD control in tandem with arrow keys
« on: July 29, 2017, 07:56:54 am »
I'm working on making a game with Solarus and I want the WASD keys to be usable for moving the character alongside the arrow keys, kinda like how you can use the demo mouse_control script and the arrow keys at the same time. Is this possible to do? I've tried making a script off of the mouse_control one but it isn't seeming to work. It doesn't help that d is a pause key, apparently. If anyone can point out where I messed up, I'd love to know. Thanks!

Code: Lua
  1. require("scripts/multi_events")
  2.  
  3.  
  4. local function initialize_wasd_control_features(game)
  5.  
  6.   local wasd_control = {}
  7.  
  8.   local is_key_pushed = false
  9.   print("wasd control startup")
  10.  
  11.   -- Movement of the hero.
  12.   local directions_pressed = {
  13.       right = false,
  14.       up = false,
  15.       left = false,
  16.       down = false
  17.   }
  18.  
  19.   function wasd_control:on_key_pressed(key)
  20.     is_key_pushed = true
  21.    
  22.   end
  23.  
  24.   function wasd_control:on_mouse_released(keu)
  25.  
  26.     is_key_pushed = false
  27.     pressed_key = key
  28.   end
  29.  
  30.   function wasd_control:on_update()
  31.  
  32.     local map = game:get_map()
  33.     if map == nil then
  34.       return
  35.     end
  36.  
  37.     if is_key_pushed then
  38.  
  39.       pressed_right = sol.input.is_key_pressed("d")
  40.       pressed_up = sol.input.is_key_pressed("w")
  41.       pressed_left = sol.input.is_key_pressed("a")
  42.       pressed_down = sol.input.is_key_pressed("s")
  43.  
  44.       self:update_direction("right", pressed_right)
  45.       self:update_direction("up", pressed_up)
  46.       self:update_direction("left", pressed_left)
  47.       self:update_direction("down", pressed_down)
  48.     else
  49.  
  50.       for direction, _ in pairs(directions_pressed) do
  51.         self:stop_direction(direction)
  52.       end
  53.     end
  54.     function wasd_control:start_direction(direction)
  55.  
  56.       if not directions_pressed[direction] then
  57.         directions_pressed[direction] = true
  58.         game:simulate_command_pressed(direction)
  59.       end
  60.     end
  61.  
  62.     function wasd_control:stop_direction(direction)
  63.  
  64.      if directions_pressed[direction] then
  65.         directions_pressed[direction] = false
  66.         game:simulate_command_released(direction)
  67.       end
  68.     end
  69.   end
  70. end
  71. local game_meta = sol.main.get_metatable("game")
  72. game_meta:register_event("on_started", initialize_wasd_control_features)
  73. return true

3
Bugs & Feature requests / More tile ground types
« on: July 13, 2017, 10:00:48 am »
I'm making a road in my project and I want the sides of the road to be half-traversible, half-wall. However, the only half-traversible tile grounds are corners and low wall. I want something like low wall, but for the top, left, and right as well. Would that be possible to do, and do you think it might be possible to be able to make custom tile hitboxes in the engine as well? It'd be really neat to be able to craft your own ground types by polygon out of the basic types.

Pages: [1]