|
Pages: [1]
|
 |
|
Author
|
Topic: I present to you, Gem Hunt (Read 1831 times)
|
|
|
Deleter
Na_th_an
    
Posts: 1292

|
hmm...couldnt get the cheat code to work i tried to set the clicks so i pressed the combination typed in the thing to set the number of clicks pressed enter typed in the number of clicks i wanted...but it didnt work what am i doing wrong? btw, fun game. 
|
|
|
|
|
Logged
|
|
|
|
|
|
|
|
|
|
Anonymous
Guest
|
Hi, Speedy, long time no see  ....in the future you'd BETTER release source though, distributing binaries in a programmer community is just... meh. btw, Really neat concept, and a cool game ^^
|
|
|
|
|
Logged
|
|
|
|
|
|
speedlemon
I hold this place together
    
Posts: 874

|
Here's the code Ruben: restart: #include "fbgfx.bi" #define True 1 #define False 0 type XY X as single Y as single end type type tPlayer Position as XY Rotation as integer Radius as integer AimerRadius as integer end type type tGem position as xy radius as integer alive as integer end type dim shared as integer FPS,FramesDrawn,LastCheck sub UpdateFPS() if int(timer)-LastCheck>=1 then FPS=FramesDrawn FramesDrawn=0 LastCheck=int(timer) end if FramesDrawn+=1 end sub function GetDistance(byval X1 as single,byval Y1 as single,byval X2 as single,byval Y2 as single) as single return sqr((X1-X2)^2+(Y1-Y2)^2) end function function CCC(byval X1 as integer,byval Y1 as integer,byval R1 as integer,byval X2 as integer,byval Y2 as integer,byval R2 as integer) as integer if GetDistance(X1,Y1,X2,Y2)>R1+R2 then return false else return true end if end function function Face(byval Rotation as integer,byval X as integer,byval Y as integer,byval XTarget as integer,byval YTarget as integer) as integer dim as single faceradians,facedegrees faceradians=atan2(YTarget-Y,XTarget-X) facedegrees=faceradians*180/3.1415926535897932384626433832795 return facedegrees+90 end function function MoveForward(byval X as integer,byval Y as integer,byval Rotation as integer,byval Amount as integer) as XY dim newxy as xy newxy.x=x newxy.y=y newxy.x-=sin(rotation*(3.1415926535897932384626433832795/180))*Amount*-1 newxy.y-=cos(rotation*(3.1415926535897932384626433832795/180))*Amount return newxy end function randomize timer dim shared Work_Page as integer Work_Page = 0 windowtitle "The Hunt" screenres 800,600,32,2,1 setmouse ,,0 LastCheck=int(timer) dim ctarget as xy ctarget.x=400 ctarget.y=300 dim canclick as integer canclick=false dim ClicksLeft as integer dim Score as integer dim MouseX as integer dim MouseY dim Buttons as integer dim Player as tPlayer Player.Position.X=400 Player.Position.Y=300 Player.AimerRadius=10 Player.Radius=30 ClicksLeft=6 Score=0 dim Gem(1 to 50) as tgem for makegems=1 to ubound(Gem) gem(makegems).position.x=int(rnd(1)*800)+1 gem(makegems).position.y=int(rnd(1)*600)+1 gem(makegems).radius=int(rnd(1)*20)+10 gem(makegems).alive=true next color rgb(0,0,0),rgb(255,255,255) do getmouse MouseX,MouseY,,Buttons UpdateFPS player.rotation=face(player.rotation,player.position.x,player.position.y,ctarget.x,ctarget.y) player.position=moveforward(player.position.x,player.position.y,player.rotation,getdistance(player.position.x,player.position.y,ctarget.x,ctarget.y)/10) if buttons and 1 then if canclick=true then canclick=false ctarget.x=mousex ctarget.y=mousey clicksleft-=1 end if else canclick=true end if for drawgems=1 to ubound(gem) if gem(drawgems).alive=true then circle(gem(drawgems).position.x,gem(drawgems).position.y),gem(drawgems).radius end if next for cc=1 to ubound(gem) if gem(cc).alive=true then if ccc(player.position.x,player.position.y,player.radius,gem(cc).position.x,gem(cc).position.y,gem(cc).radius)=true then gem(cc).alive=false score+=gem(cc).radius end if end if next circle(Player.Position.X,Player.Position.Y),Player.Radius circle(MouseX,MouseY),Player.AimerRadius line(mousex,mousey)-(player.position.x,player.position.y) if clicksleft<=-1 then mostpossible=0 for countup=1 to ubound(gem) mostpossible+=gem(countup).radius next percent=(score/mostpossible)*100 do locate 20,10 print "Your final score was: ";score locate 23,10 print "Most possible was: ";mostpossible locate 26,10 print "You got ";percent;"%" locate 29,10 if percent<75 then print "Get 75% or higher to unlock the cheat codes." else print "codes: to enter codes press ctrl+c during game" locate 30,10:print "after entering the code, you may need to enter the value" locate 31,10:print "cc = changes look of the game" locate 32,10:print "setclix = after doing this, type in new amount of clicks" locate 33,10:print "setscore = after doing this, type in new score" end if locate 37,10 print "Press the space key to close or r to restart" if multikey(sc_r) then goto restart screenset Work_Page, Work_Page xor 1 screensync cls Work_Page = Work_Page xor 1 loop while not multikey(sc_space) end end if locate 2,2:print "FPS: ";FPS locate 5,2:print "Score: ";Score locate 7,2:print "Clicks Left: ";clicksleft if multikey(sc_c) and multikey(sc_control) then input code$ if code$="setclix" then input clicksleft if code$="setscore" then input score if code$="cc" then color rgb(int(rnd(1)*255)+1,int(rnd(1)*255)+1,int(rnd(1)*255)+1),rgb(int(rnd(1)*255)+1,int(rnd(1)*255)+1,int(rnd(1)*255)+1) end if screenset Work_Page, Work_Page xor 1 screensync cls Work_Page = Work_Page xor 1 loop while not multikey(SC_Escape) end
Ryan, replay has been added in the source above (i couldn't upload the updated exe. it seems fileanchor is not working at the moment.). :wink: Thanks for the advice. By the way, very nice score Ryan. I think the most I've gotten is around 85%
|
|
|
|
|
Logged
|
|
|
|
Anonymous
Guest
|
It's pretty nice, man. You encapsulated into subroutines pretty well  Very easy to understand exactly what's going on. btw, type XY is actually what you call a 'vector' =) maybe you know that...
|
|
|
|
|
Logged
|
|
|
|
|
|
|
|
|
Pages: [1]
|
|
|
|
|