Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles

Harder You Fools

9
Posts
31
Followers
348
Following
A member registered Oct 27, 2015 · View creator page →

Creator of

Recent community posts

(1 edit)

Sorry for the late reply, just saw this now! Here's some commented code for Ninja Punch Zone. It's been long enough that I had to go through it and figure out what every line did again, and while doing that I found a couple of things I think I can optimize further. So thanks for that! :D

EDIT: Itch's comment system mangles the formatting so I've put an easier-to-read version up here.

--INITIALIZING VARIABLES--
--the number '30' came up a lot in the math stuff bleow,
--so i assigned it to a variable to save characters
t=30
--the player's x position
x=t
--the player's FIST position, relative to the player
--(it's always four pixels away from the player in the direction they're facing,
--but storing the offset in a variable saves chars when drawing later on)
f=4
--making aliases for some commonly used functions to save chars later on
z=rectfill
y=rnd
a=abs
--cooldown timer for the player's punch
c=0
--x position of red ninjas coming in from the right/left respectively
--every time we do this we randomize their position slightly,
--so the ninjas always come at the player at different times
r=130+y(30)
l=y(30)-82
--the player's score and the high score
s=0
h=0
--changing to low res mode (64x64 resolution)
poke(0x5f2c,3)
--the UPDATE LOOP--
function _update60()
 --if the player presses left or right then move them in that direction
 if btn(⬅️)
  then x=max(x-1,3)
  f=-4
 end
 if btn(➡️)then
  x=min(x+1,62)
  f=4 end
 end
 --if the player presses 'O' then punch,
 --but only if the cooldown timer from the last punch is finished
 if c==0 then
  if(btnp(🅾️)) c=10
 end
 --updating the cooldown timer for this frame
 c=max(c-1,0)
 --moving the two red ninjas towards the player
 l+=.7
 r-=.7
 --if the left ninja has run all the way off screen then reset them
 --also: some more character optimization seems possible here!
 --must have missed it at the time :-D
 if l>70 then
  l=y(t)-t
 end
 -- likewise, if the right ninja has ran all the way off the screen then reset them
 if(r<-10) r=y(t)+70
 --ALSO: ^^^^ do i even need to check for the ninjas running off screen?
 --they should collide with the player and reset before they reach the other side.
 --going to look into this, I might be able to create an even more optimized version! \o/
 --PUNCH CHECKING. if the punch cooldown is greater than zero,
 --then check if the player's arm is close enough to an enemy ninja to hit them
 --if it is then we add one to the score and reset the ninja's position off-screen
 if c>0 then
  if a(x-l+f)<4 then
   s+=1l=y(t)-t
  end
  if a(x-r+f)<4 then
   s+=1r=y(t)+70
  end
 end
 -- if the player has beaten the high score then we update the hi-score
 if(s>h) h=s
 -- if the player has collided with either of the two ninjas
 -- we start a new game (reset the score and move the two ninjas to their start points)
 if a(x-r)<2or a(x-l)<2 then
  s=0
  r=y(t)+130
  l=y(t)-82
 end
-- finally, the DRAW LOOP--
-- (naughtily done in _update60() to save chars)
 -- clear the screen
 cls()
 --draw two rectangles for the ground and sky
 z(0,14,64,49,12)
 z(0,43,64,49,5)
 --draw the player
 ?"웃",x-4,39,0
 --if the player is punching, draw a "-" for the player's extended arm
 if c>0 then
  ?"-",x+f-2,39,0
 end
 --draw the two red ninjas
 ?"웃",l-3,39,8
 ?"웃",r-3,39,8
 --print the score and high score at the top
 ?s,6,16,10
 ?h,54,16,10
end


Thank you!

<3

Hi again, and thanks for the update! I'll try it tomorrow and let you know how it goes.

Thanks Jupiter!

Thank you for taking a look!

Thank you for featuring it!

Not yet, we missed the jam deadline and then life got in the way. We're still working on it when we get time, but a playable build is still a few days away (at least!).

Hey! 

Just wanted to report that the mouse isn't working in the current Linux build. 

If you're using Unity 5.6.0/5.6.1 there's a bug with fullscreen mouse input for Linux builds - you can avoid the bug by having the Linux build launch in windowed mode (or the bug was recently fixed in 5.6.1p2 if you want to upgrade).

Hope that helps!