Computer Science Canada

Laser pointer... ish. help please

Author:  Mayb123 [ Tue Oct 02, 2007 5:01 pm ]
Post subject:  Laser pointer... ish. help please

i'm trying to make a 2d sidescroller shooter, and i am trying to make a line appear every time you click the mouse which will (so far) extend from coordinates 0 and 0 all the way across the window intercepting with the mouse cursor. so far i can only make it extend to the cursor. help please. here's the code:

var key : array char of boolean
var reticle : int
var mx, my, button, linebasex, linebasey : int
var reticlenum : string
var weapons :array 1..5 of int
setscreen ("graphics:640;480")
View.Set ("nomouse")
% put "would you like to use reticle one or two?"
% get reticlenum
% if reticlenum = "one" then
% reticle := Pic.FileNew ("Reticle.bmp")
% elsif reticlenum = "two" then
% reticle := Pic.FileNew ("Reticle2.bmp")
% end if
loop
View.Set ("offscreenonly")
Input.KeyDown (key)
View.Set ("nomouse")
Mouse.Where (mx, my, button)



drawfillbox (0, 0, maxx, maxy, 7)

% Pic.Draw (reticle, mx - 12, my - 12, picMerge)

if button = 1 then
drawline (0, 0, mx, my, 12)
end if
delay (1)
View.Update
cls
end loop

Author:  CodeMonkey2000 [ Tue Oct 02, 2007 5:10 pm ]
Post subject:  RE:Laser pointer... ish. help please

You can take the angle between the mouse and the player, and use some basic trig to extend the line.

Author:  Mayb123 [ Tue Oct 02, 2007 5:21 pm ]
Post subject:  Re: Laser pointer... ish. help please

and how does one incorporate trig into this?

Author:  CodeMonkey2000 [ Tue Oct 02, 2007 5:35 pm ]
Post subject:  RE:Laser pointer... ish. help please

Tan=opposite/adjacent

opposite=delta Y
adjacent=delta X

tan inverse give you the angle if you have opposite/adjacent

Author:  Clayton [ Tue Oct 02, 2007 5:48 pm ]
Post subject:  RE:Laser pointer... ish. help please

Why use trig at all? Why not just use your general equation for a line? y = mx + b? You know your y-intercept is going to be zero, and you can figure out slope, and then solve for x.

Author:  CodeMonkey2000 [ Tue Oct 02, 2007 6:00 pm ]
Post subject:  RE:Laser pointer... ish. help please

Or you could do that.
But the advantage with trig is that you can detect obstacles efficiently (ie if there is a ceiling above you, stop the laser).

Author:  Mayb123 [ Tue Oct 02, 2007 6:34 pm ]
Post subject:  RE:Laser pointer... ish. help please

well, my reasoning for this is that i'm going to have a character from which the line will be emitted and that character will be able to run and jump all around the screen (platformer game) and i'm using the mouse as a targeting reticle. so the line will start from the character to the mouse, as i said before

Author:  Mayb123 [ Tue Oct 02, 2007 6:39 pm ]
Post subject:  RE:Laser pointer... ish. help please

oh, and CodeMonkey, thanks for the advice, the only issue is that i don't know where to put that in my code. we were basically given a school project where we have to make a game and learn all the stuff on our own

Author:  CodeMonkey2000 [ Tue Oct 02, 2007 9:23 pm ]
Post subject:  RE:Laser pointer... ish. help please

I think Clayton's method might be better for what you are doing.


: