Shooting
Author |
Message |
Guy
|
Posted: Mon May 16, 2005 11:27 am Post subject: Shooting |
|
|
I need to find out how to shoot with a character (red) in my game......
var x, x2, y, y2 : int := 200
loop
colorback (black)
cls
setscreen ("graphics: vga")
drawfillbox (50, 110, 40, 280, white)
drawfillbox (590, 110, 600, 280, white)
drawfillbox (490, 0, 500, 25, white)
drawfillbox (490, 375, 500, maxy, white)
drawfillbox (125, 375, 135, maxy, white)
drawfillbox (125, 0, 135, 25, white)
drawfilloval (320, 190, 50, 50, white)
drawfilloval (450, 200, 5, 5, blue)
drawfilloval (x, y, 5, 5, red)
var input : char := getchar
if input = KEY_UP_ARROW then
y := y + 5
elsif input = KEY_DOWN_ARROW then
y := y - 5
elsif input = KEY_LEFT_ARROW then
x := x - 5
elsif input = KEY_RIGHT_ARROW then
x := x + 5
end if
end loop |
|
|
|
|
![](images/spacer.gif) |
Sponsor Sponsor
![Sponsor Sponsor](templates/subSilver/images/ranks/stars_rank5.gif)
|
|
![](images/spacer.gif) |
jamonathin
![](http://compsci.ca/v3/uploads/user_avatars/57683465145f851a43dd9a.gif)
|
Posted: Mon May 16, 2005 1:29 pm Post subject: (No subject) |
|
|
elaborate more on what you want to shoot / where you want to shoot / how many times. For all I know you want him to shoot turds at the white bars.
I cleaned your program up a touch, it was aggrivating me.
Turing: |
var x, x2, y, y2 : int := 200
var input : array char of boolean
setscreen ("offscreenonly")
loop
colorback (black)
cls
drawfillbox (50, 110, 40, 280, white)
drawfillbox (590, 110, 600, 280, white)
drawfillbox (490, 0, 500, 25, white)
drawfillbox (490, 375, 500, maxy, white)
drawfillbox (125, 375, 135, maxy, white)
drawfillbox (125, 0, 135, 25, white)
drawfilloval (320, 190, 50, 50, white)
drawfilloval (450, 200, 5, 5, blue)
drawfilloval (x, y, 5, 5, red)
View.Update
Input.KeyDown (input )
if input (KEY_UP_ARROW) then
y := y + 5
elsif input (KEY_DOWN_ARROW) then
y := y - 5
elsif input (KEY_LEFT_ARROW) then
x := x - 5
elsif input (KEY_RIGHT_ARROW) then
x := x + 5
end if
delay (10)
end loop
|
Also check tutorials for shooting, or use the search engine at the top. |
|
|
|
|
![](images/spacer.gif) |
MysticVegeta
![](http://www.geocities.com/ohsoinsane/my_avatar.JPG)
|
Posted: Mon May 16, 2005 3:37 pm Post subject: (No subject) |
|
|
code: | var x, x2, y, y2 : int := 200
var input : array char of boolean
setscreen ("offscreenonly")
loop
colorback (black)
cls
% drawfillbox (50, 110, 40, 280, white)
% drawfillbox (590, 110, 600, 280, white)
% drawfillbox (490, 0, 500, 25, white)
% drawfillbox (490, 375, 500, maxy, white)
% drawfillbox (125, 375, 135, maxy, white)
% drawfillbox (125, 0, 135, 25, white)
% drawfilloval (320, 190, 50, 50, white)
drawfilloval (450, 200, 5, 5, brightblue)
drawfilloval (x, y, 5, 5, brightred)
View.Update
Input.KeyDown (input)
if input (KEY_UP_ARROW) then
y := y + 5
elsif input (KEY_DOWN_ARROW) then
y := y - 5
elsif input (KEY_LEFT_ARROW) then
x := x - 5
elsif input (KEY_RIGHT_ARROW) then
x := x + 5
elsif input (KEY_ESC) then
% colour (0)
% locate(1, 1)
% put x
for s : x .. maxx
if s > x + 20 then
drawline (s - 11, y, s + 1, y, black)
drawline (s - 10, y, s, y, white)
View.Update
delay (1)
end if
end for
end if
delay (10)
end loop
|
You mean something like that? If you want to make it something like after you shoot, immediately you can move without waiting for the bullet to get at the end then i would suggest you learn "procedures" and "forward"ing them |
|
|
|
|
![](images/spacer.gif) |
jamonathin
![](http://compsci.ca/v3/uploads/user_avatars/57683465145f851a43dd9a.gif)
|
Posted: Tue May 17, 2005 5:49 am Post subject: (No subject) |
|
|
Thats actually a bad method for shooting. Just check for where the bullet is constantly, and if the bullet is less than your target, then have it keep moving, like this.
code: | var x, x2, y, y2 : int := 200
var shot : boolean := false
var bulletx, bullety : int := 0
var input : array char of boolean
setscreen ("offscreenonly")
loop
colorback (black)
cls
% drawfillbox (50, 110, 40, 280, white)
% drawfillbox (590, 110, 600, 280, white)
% drawfillbox (490, 0, 500, 25, white)
% drawfillbox (490, 375, 500, maxy, white)
% drawfillbox (125, 375, 135, maxy, white)
% drawfillbox (125, 0, 135, 25, white)
% drawfilloval (320, 190, 50, 50, white)
drawfilloval (450, 200, 5, 5, brightblue)
drawfilloval (x, y, 5, 5, brightred)
Input.KeyDown (input)
if input (KEY_UP_ARROW) then
y := y + 5
elsif input (KEY_DOWN_ARROW) then
y := y - 5
elsif input (KEY_LEFT_ARROW) then
x := x - 5
elsif input (KEY_RIGHT_ARROW) then
x := x + 5
elsif input (KEY_ESC) and shot = false then
shot := true
bulletx := x + 5
bullety := y
end if
if bulletx < maxx and shot then
bulletx += 5
drawline (bulletx, bullety, bulletx + 10, bullety, white)
elsif bulletx >= maxx then
shot := false
end if
View.Update
delay (10)
end loop
|
|
|
|
|
|
![](images/spacer.gif) |
Guy
|
Posted: Wed May 18, 2005 11:20 am Post subject: THANKS |
|
|
Thanks for da help |
|
|
|
|
![](images/spacer.gif) |
|
|