Navigation

    Fuze Arena Logo
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    • Help
    • Discord

    Extra Features for the map editor

    General Discussion
    9
    16
    714
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • SteveZX81
      SteveZX81 F last edited by

      I hope so. I really wanted a rotate tile option today and was a little surprised it's not there. I'm sure it will be updated over time though.

      1 Reply Last reply Reply Quote 1
      • Dave
        Dave Fuze Team last edited by

        Both those features will be in an update. Map editor is getting much more functionality!

        Discostew 1 Reply Last reply Reply Quote 5
        • A
          Ancientspark F last edited by

          This is promising

          1 Reply Last reply Reply Quote 0
          • Discostew
            Discostew F @Dave last edited by

            @Dave Anything regarding tile animation, or being able to change individual tiles in real-time while our program is running the map?

            Dave 1 Reply Last reply Reply Quote 1
            • Martin
              Martin Fuze Team last edited by

              Being able to change tiles in real-time while the map is running is not really how maps are designed to work. You can do that kind of thing now by adding an additional array of image numbers and drawing them using drawImage or drawImageEx. People have been creating entire games this way without using maps at all since before the first update you could not use your own images as tiles in the map.

              1 Reply Last reply Reply Quote 0
              • Dave
                Dave Fuze Team @Discostew last edited by

                @Discostew

                @Martin is quite right, the way to do this is to use an array of tiles and drawSheet. I've been looking at this recently actually and I'm putting together a demo on doing exactly this.

                J 1 Reply Last reply Reply Quote 2
                • Martin
                  Martin Fuze Team last edited by

                  @Dave - I'm thinking that you could initially have your map, which is static data and any associated collision areas and any tile that will need to be changed during gameplay could be left out of the map. Then you could have an additional image as a draw target and render the extra tiles to that. The second image would be drawn on top of that map. Would that work?

                  There may be instances where it would not cover every eventuality but I bet it would cope with most.

                  1 Reply Last reply Reply Quote 0
                  • Dave
                    Dave Fuze Team last edited by

                    I've had exactly the same thoughts too @Martin. I think that's the way you would combine the map editor functionality with animated tiles. It's quite a tricky thing to do, and personally I would use drawSheet and arrays to do the entire map for simplicity's sake - but if your tile sheet has different tile sizes, this gets really difficult fast.

                    You wouldn't even need to leave the tile out of the map, as long as you were drawing the other tile "over" it it would look correct.

                    I'll have to get a demo together to demonstrate this, but it's going to take some learning first!

                    1 Reply Last reply Reply Quote 0
                    • Discostew
                      Discostew F last edited by

                      Oh, not saying I couldn't do this manually. I've already planned it out for my port. It's more of a CPU issue because the more tiles that have to be processed, the more iterations would need to be done. But, I guess what I assumed was that displaying a map would be faster because it's done internally, because I've come to the realization after trying it that it isn't actually the case because the map doesn't work the same way as manually laying out tiles to form an image. It's more object-based, that each tile is an object (which btw, if you button-press the left stick while the cursor is over an object, it causes problems for FUZE). So even if the request was fulfilled, using maps may not be the best approach for me anyways.

                      1 Reply Last reply Reply Quote 0
                      • J
                        Jack_Blue @Dave last edited by

                        @Dave Hi! Did you ever manage to put together that demo? This is exactly what I want to do! I want to make a driving game where the car always faces the top of the screen and the background rotates around it.

                        waldron 1 Reply Last reply Reply Quote 1
                        • waldron
                          waldron F @Jack_Blue last edited by

                          @Jack_Blue one way i'v thought up, have your map set out with your bends but have a sprite image half way to act as the horizon moving and set to your players -y speed, you could even track the x movement to change horizon states.happy to help if you want me to throw a test of this idea iv got a similar technique i use in another program

                          1 Reply Last reply Reply Quote 1
                          • J
                            Jack_Blue last edited by

                            @waldron That could be cool, but what I really want to do is to have a view of the car and the map from above (like in GTA Chinatown Wars). I think I might be too ambitious here; I've only been using Fuze4 for a few weeks, and I'm still getting used to the commands! I might give up on this project for now and try to walk before I run!

                            waldron 1 Reply Last reply Reply Quote 1
                            • waldron
                              waldron F @Jack_Blue last edited by

                              @Jack_Blue that would actually be a lot easier and even tho your only a week in make a start on it and update it as you learn.i can put together a program you can build from i'm wanting to set up programs in all different styles anyway and haven't done one like this yet.

                              J 1 Reply Last reply Reply Quote 1
                              • J
                                Jack_Blue @waldron last edited by pianofire

                                @waldron That would be fantiastic, if you could!

                                I actually managed to get this particular bit down (rotating the map around the car), but I don't know how to share my code... I'll type out the important bits! What I'm doing is moving the map's coordinates at the same rate as I'm rotating the image

                                car_x: the top-left corner of the car image (x)
                                car_y: the top-left corner of the car image (y)
                                car_ctr_x: the centre of the car image (x)
                                car_ctr_y: the centre of the car image (y)
                                car_width: the width of the car image (scaled)
                                car_height: the height of the car image (scaled)
                                map_x = the top-left corner of the map (x)
                                map_org_x = the origin of the map (where it'll be drawn from) (x) = 0
                                map_org_y = the origin of the map (where it'll be drawn from) (y) = 0
                                ... etc.
                                
                                IMPORTANT:
                                          map_x = car_ctr_x
                                          map_y = car-ctr_y
                                
                                car = [
                                     .image = car_image,
                                     .x = car_x,
                                     .y = car_y,
                                     .ctr_x = car_ctr_x
                                     .ctr_y = car_ctr_y,
                                     .width = car_width,
                                     .height = car_height
                                     .turning_speed = 5
                                ]
                                
                                map = [
                                     .image = map_image,
                                     .width = map_width,
                                     .height = map_height,
                                     .scale_x = map_scale_x,
                                     .scale_y = map_scale_y,
                                     .x = map_x,
                                     .y = map_y
                                     .org_x = map_org_x,
                                     .org_y = map_org_y,
                                     .orientation = map_orientation
                                ]
                                
                                loop
                                     clear()
                                
                                     ctl = controls(0)
                                
                                     steering(ctl)
                                
                                     drawImageEx(map.image, map.x, map.orientation, map.scale_x, map.scale_y, 1, 1, 1, 1, map.org_x, map.org_y)
                                
                                     drawSheet(car.image, 0, {car,x, car,y, car.width, car.height})
                                
                                     update()
                                
                                repeat
                                
                                
                                function steering(ctl)
                                     if ctl.zl and not ctl.zr then
                                          if (map.orientation + car.turning_speed)  > 360 then
                                               map.orientation = (map.orientation + car.turning_speed) - 360
                                          else
                                               map.orientation += car.turning_speed
                                          endif
                                
                                     if ctl.zr and no ctl.zl then
                                          if (map.orientation - car.turning_speed) < 0 then
                                               map.orientation = 360 + (map.orientation - car.turning_speed)
                                          else
                                               map.orientation -= car.turning_speed
                                          endif
                                     endif
                                return void
                                
                                1 Reply Last reply Reply Quote 3
                                • pianofire
                                  pianofire Fuze Team last edited by

                                  @Jack_Blue if you surround your code with ``` it will display the code better (I have done it for you)

                                  1 Reply Last reply Reply Quote 1
                                  • First post
                                    Last post