Quick Block

Quick Block by Ashteroide

Quick Block is simple game, tag all blocks in the chosen time limit. Challenge your friends to the fastest time with 100th of milliseconds accuracy.

Source Link: https://github.com/Ashteroide/QuickBlock-Arduboy

Quick_Block.ino.hex (33.8 KB)

Please enjoy :slight_smile:


What’s New?

12/8/2020 (2)

  • Thanks for the help a certain someone
  • Interrupts are now removed and replaced by a better system
  • Clean ups here and there

12/8/2020 (1)

  • Support for the emulator using millis() and interrupts makes it able for anyone to play now
  • Cleaned up some bits here and there

11/8/2020

  • An option to vary the the score goal and time to make it easier or harder, the cursor is much more adaptive on the menu
  • The character had some separation issues from the top wall, but I was able to help him out
  • Parts are more aligned and even (e.g The ending screen determines if your time is above 10 secs and then evens the positioning on the screen)
  • The game was being mean and was stuck saying “You Lose!”, which isn’t very nice so I fixed it’s attitude
  • Border is more constricted so you can’t hide on the edge like a snake in grass
  • Fixed some small issues with the timer
5 Likes

Probably for the same reason that some sounds don’t work. The emulator doesn’t fully handle all the ATmega32U4 built in timers and other peripherals.

@FManga, the developer of the ABE emulator, could confirm this.

Thank you for the info @MLXXXp

You should include a licence in your GitHub repository, so people will know what can be done with your code.

https://docs.github.com/en/github/building-a-strong-community/adding-a-license-to-a-repository

@MLXXXp What license type would you suggest?

That depends on what you would like others to be able to do with your code. You should read the each licence thoroughly before deciding, to make sure it conforms to your wishes.

For open source, MIT or one of the BSD licences are commonly used.

If you want the least restrictive “release to the public domain”, CC0 could be used.

I just added the basic MIT one, thanks for helping @MLXXXp

3 Likes

Yes, looks like that library uses timer 4, which wasn’t implemented since it’s almost never used. Isn’t the existing time function good enough for this case?

1 Like

It’s used by the Team A.R.G. ATMlib, for sound in some Team A.R.G. games, and others, including the popular Arduventure.

I used it for the BeepPin2 class, for generating simple tones, in the Arduboy2 library. (And I used timer 3 for the BeepPin1 class.)

1 Like

Made some good improvements but there is more to come

@FManga I was able to use millis() and interrupts (As mentioned in the What’s New)

I’m not sure what the intention is for calling millis() and arduboy.initRandomSeed() at the start of loop(). By being placed there, they will both be called rapidly while waiting for if(!arduboy.nextFrame()) to become true.

Calling millis() without using its return value just wastes a small amount of time.
arduboy.initRandomSeed() should only be called once, in setup() after arduboy.begin()