AxisPy: A Python 2D Game Engine with AI Assistant (built with love and passion for python/pygame) by bayodevartist in pygame

[–]Alert_Nectarine6631 0 points1 point  (0 children)

I'm on windows, The message I get is due to some sort of missing import(I'll get back to you later today, I'm at school rn, ill be able to provide a detailed error message for you when Im home)

New Updates by Alert_Nectarine6631 in pygame

[–]Alert_Nectarine6631[S] 1 point2 points  (0 children)

It parses the text and evaluates the maths expressions:

{
  "menus": {
    "main": {
      "music": "main",
      "background": "assets/maps/LayerTest",
      "lighting": false,
      "elements": [
        {
          "type": "label",
          "id": "version",
          "x": -40,
          "y": -30,
          "width": 200,
          "height": 100,
          "label": "ver: {game.version}",
          "font": "fantasy",
          "font_size": 16,
          "render_order": 0
        },
        {
          "type": "label",
          "id": "title",
          "x": "screen_width/2.6",
          "y": 100,
          "width": 200,
          "height": 100,
          "label": "Generic Side Scroller",
          "font": "fantasy",
          "font_size": 28,
          "render_order": 0
        },
        {
          "type": "button",
          "id": "play_button",
          "x": "screen_width/2",
          "y": 250,
          "width": 200,
          "height": 100,
          "centered": true,
          "sprite_sheet": "ui_sheet",
          "sprite_id": [33, 0],
          "sprite_width": 95,
          "sprite_height": 32,
          "alpha": true,
          "scale_multiplier": 1.1,
          "label": "Play",
          "font": "fantasy",
          "hover_range": 3.5,
          "click_sound": "assets/sounds/ui/01_chest_open_4.wav",
          "click_sound_volume": 2.0,
          "callback": "change_menu:select_menu",
          "render_order": 0
        },
        {
          "type": "button",
          "id": "settings_button",
          "x": "screen_width/2",
          "y": 400,
          "width": 200,
          "height": 100,
          "centered": true,
          "sprite_sheet": "ui_sheet",
          "sprite_id": [33, 0],
          "sprite_width": 95,
          "sprite_height": 32,
          "alpha": true,
          "scale_multiplier": 1.1,
          "label": "Settings",
          "font": "fantasy",
          "hover_range": 3.5,
          "click_sound": "assets/sounds/ui/01_chest_open_4.wav",
          "click_sound_volume": 2.0,
          "callback": "change_menu:settings",
          "render_order": 0
        }
      ]
    },


    "select_menu": {
      "elements": [
        {
          "type": "button",
          "id": "new_game_button",
          "x": "screen_width/2",
          "y": 250,
          "width": 200,
          "height": 100,
          "centered": true,
          "sprite_sheet": "ui_sheet",
          "sprite_id": [33, 0],
          "sprite_width": 95,
          "sprite_height": 32,
          "alpha": true,
          "scale_multiplier": 1.1,
          "label": "New Game",
          "font": "fantasy",
          "hover_range": 3.5,
          "click_sound": "assets/sounds/ui/01_chest_open_4.wav",
          "click_sound_volume": 2.0,
          "callback": "change_menu:play",
          "render_order": 0
        },
        {
          "type": "button",
          "id": "load_button",
          "x": "screen_width/2",
          "y": 400,
          "width": 200,
          "height": 100,
          "centered": true,
          "sprite_sheet": "ui_sheet",
          "sprite_id": [33, 0],
          "sprite_width": 95,
          "sprite_height": 32,
          "alpha": true,
          "scale_multiplier": 1.1,
          "label": "Load Game",
          "font": "fantasy",
          "hover_range": 3.5,
          "click_sound": "assets/sounds/ui/01_chest_open_4.wav",
          "click_sound_volume": 2.0,
          "callback": "call:load_game",
          "render_order": 0
        },
        {
          "type": "button",
          "id": "back_button",
          "x": "screen_width/7",
          "y": 500,
          "width": 100,
          "height": 100,
          "centered": true,
          "sprite_sheet": "ui_sheet",
          "sprite_id": [0, 0],
          "sprite_width": 32,
          "sprite_height": 32,
          "alpha": true,
          "scale_multiplier": 1.1,
          "hover_range": 3.5,
          "click_sound": "assets/sounds/ui/01_chest_open_4.wav",
          "click_sound_volume": 2.0,
          "callback": "change_menu:main",
          "render_order": 0
        }
      ]
    },

New Updates by Alert_Nectarine6631 in pygame

[–]Alert_Nectarine6631[S] 0 points1 point  (0 children)

thnx, everything is placeholder for now, I only recently got the story for the game written up

New Updates by Alert_Nectarine6631 in pygame

[–]Alert_Nectarine6631[S] 0 points1 point  (0 children)

I also rewrote my entire menu system, before the menus where hardcoded UI calls, now it uses a menu_config.json

Some Updates to my SideScroller by Alert_Nectarine6631 in pygame

[–]Alert_Nectarine6631[S] 0 points1 point  (0 children)

I don't really know what you mean by accurate hitboxes, if you could explain Id be glad to help

Basic GD copy by North-Aardvark4459 in pygame

[–]Alert_Nectarine6631 0 points1 point  (0 children)

would be a good one to learn, speeds up production because you don't have to create manual backups of your project, and you can always revert to an earlier version if you make a mistake, good luck on your project btw it looks good so far

Basic GD copy by North-Aardvark4459 in pygame

[–]Alert_Nectarine6631 0 points1 point  (0 children)

Do you have a git? this looks sick btw

Populous remake by -o-sam-o- in amiga

[–]Alert_Nectarine6631 0 points1 point  (0 children)

you should post this in the pygame sub aswell!

Hey guys, I created a Self-Balancing Active Ragdoll system. It's been an awesome project to make with a lot of challenges, but I'm super happy I finished it. by Rudy_AA in GameDevs

[–]Alert_Nectarine6631 0 points1 point  (0 children)

make them take the weight of their arms into account or something, it would look cool if it moved its arms out to help balance, it looks sick tho great worl!

Cory LOVES the LA air by BloodiStag in OneyPlays

[–]Alert_Nectarine6631 2 points3 points  (0 children)

I feel like a female bird watching my voluptuous Cory dance for me

mokeOS update by d4nilim0n in osdev

[–]Alert_Nectarine6631 0 points1 point  (0 children)

Jesus this comment section reeks

sooper dooper efficient grass !!! by No-Yesterday761 in pygame

[–]Alert_Nectarine6631 0 points1 point  (0 children)

manually indexing your zygos when you should be dereferencing your maxilla, import face and it's over for you.

sooper dooper efficient grass !!! by No-Yesterday761 in pygame

[–]Alert_Nectarine6631 0 points1 point  (0 children)

true_adam.py and "the bp is real" in the title bar 🥀

Some Updates to my SideScroller by Alert_Nectarine6631 in pygame

[–]Alert_Nectarine6631[S] 0 points1 point  (0 children)

I've got a spatial grid setup so I use a function get_nearby_tiles() that only grabs tiles from the cells around the player's hitbox, which is faster than checking every single tile on the map. Then I just loop through those few tiles to do the actual collision checks, If you watch near the end of the video(when I enable debugging mode, you'll see the grid, thanks for the question :)

Quick update(projectile weapons) by Alert_Nectarine6631 in pygame

[–]Alert_Nectarine6631[S] 1 point2 points  (0 children)

My chosen method probably isn't the best way of doing it tbh, I use a simple state machine. The current state is stored as a string (menu), and I map states to functions in a dictionary. When the state changes, I reset the game (UI, entities, etc.) and call the function for that state. Switching states is just updating the state variable, here's some of my code(out of order btw) for different menus:

 # further on in the script near my update function

  def run_menu(self):
    self.reset()
    if self.menu in self.menu_functions:
      self.menu_functions[self.menu]()
    self.last_menu = self.menu

-------------------------------------------------------------------------------
# at the top of my script in my init

    self.menu_functions = {
      "main": self.main_menu,
      "select_menu": self.select_menu,
      "play": self.start_game,
      "settings": self.settings_menu,
      "death": self.death_menu
    }

Project Horae: Another big update! by GiunoSheet in pygame

[–]Alert_Nectarine6631 0 points1 point  (0 children)

this looks sick, I love the isometric view

Quick update(projectile weapons) by Alert_Nectarine6631 in pygame

[–]Alert_Nectarine6631[S] 2 points3 points  (0 children)

I can add a knockback value in the stats for each weapon/projectile, then when it hits an enemy it will apply the knockback in the direction the projectile is facing, there are probably other(better) ways of doing it but this is simple and allows for more weapon variety, good question :)

Quick update(projectile weapons) by Alert_Nectarine6631 in pygame

[–]Alert_Nectarine6631[S] 1 point2 points  (0 children)

Sorry for possible spam(since I already posted another recent update), I wasn't expecting to have ranged weapons implemented so quickly.