Computer Science Canada Final part on my game to bring it together |
Author: | SaintK [ Wed Jan 13, 2010 8:35 am ] |
Post subject: | Final part on my game to bring it together |
Okey im nearly done, a few days til this is due but I am close to finish anyway, to get it all done I require my character (who can rotate) to be able to shoot from his pistol in whatever position he may be so would it be either tied to trig of the character or by itself? Thx for the help in advance. ;D |
Author: | Ktomislav [ Wed Jan 13, 2010 12:59 pm ] |
Post subject: | Re: Final part on my game to bring it together |
Post your code.. |
Author: | TerranceN [ Wed Jan 13, 2010 3:45 pm ] |
Post subject: | RE:Final part on my game to bring it together |
The bullet's angle would be independent of the character's angle, but the bullet's angle would be set to the value of the character's angle at the moment the bullet is fired. I think thats what you're asking, if not, provide more details or post your code. |
Author: | SaintK [ Thu Jan 14, 2010 9:06 am ] |
Post subject: | Re: Final part on my game to bring it together |
okey here it is setscreen ("graphics:max;max,nocursor,nobuttonbar") View.Set ("offscreenonly") var temp : string (1) var mouseX, mouseY, button, charX, charY, character, oldCharacter, reticle : int var angle, dx, dy : real var key : array char of boolean charX := 300 charY := 300 loop Mouse.Where (mouseX, mouseY, button) character := Pic.FileNew ("shooter.bmp") reticle := Pic.FileNew ("reticle.bmp") charX := charX charY := charY dx := mouseX - charX dy := mouseY - charY const centX := Pic.Width (character) div 2 const centY := Pic.Height (character) div 2 % Movement of the character Input.KeyDown (key) Pic.Draw (character, charX, charY, picMerge) if key (KEY_UP_ARROW) then charY := charY + 5 Pic.Draw (character, charX, charY, picMerge) end if if key (KEY_RIGHT_ARROW) then charX := charX + 5 Pic.Draw (character, charX, charY, picMerge) end if if key (KEY_LEFT_ARROW) then charX := charX - 5 Pic.Draw (character, charX, charY, picMerge) end if if key (KEY_DOWN_ARROW) then charY := charY - 5 Pic.Draw (character, charX, charY, picMerge) end if % Rotation of the character if dx = 0 and dy > 0 then oldCharacter := character character := Pic.Rotate (character, 90, centX, centY) cls Pic.Draw (character, charX, charY, picMerge) Pic.Free (oldCharacter) Pic.Draw (reticle, mouseX, mouseY, picMerge) elsif dx = 0 and dy < 0 then oldCharacter := character character := Pic.Rotate (character, 270, centX, centY) cls Pic.Draw (character, charX, charY, picMerge) Pic.Free (oldCharacter) Pic.Draw (reticle, mouseX, mouseY, picMerge) else angle := arctand (dy / dx) if dx > 0 and dy > 0 then % top right oldCharacter := character character := Pic.Rotate (character, round (angle), centX, centY) cls Pic.Draw (character, charX, charY, picMerge) Pic.Free (oldCharacter) Pic.Draw (reticle, mouseX, mouseY, picMerge) elsif dx < 0 and dy > 0 then % top left oldCharacter := character character := Pic.Rotate (character, round (angle) + 180, centX, centY) cls Pic.Draw (character, charX, charY, picMerge) Pic.Free (oldCharacter) Pic.Draw (reticle, mouseX, mouseY, picMerge) elsif dx < 0 and dy < 0 then % bottom left oldCharacter := character character := Pic.Rotate (character, round (angle) + 180, centX, centY) cls Pic.Draw (character, charX, charY, picMerge) Pic.Free (oldCharacter) Pic.Draw (reticle, mouseX, mouseY, picMerge) elsif dx > 0 and dy < 0 then % bottom right oldCharacter := character character := Pic.Rotate (character, round (angle), centX, centY) cls Pic.Draw (character, charX, charY, picMerge) Pic.Free (oldCharacter) Pic.Draw (reticle, mouseX, mouseY, picMerge) end if end if View.Update cls end loop |
Author: | SaintK [ Thu Jan 14, 2010 9:14 am ] |
Post subject: | Re: Final part on my game to bring it together |
here are the images if needed |
Author: | Ktomislav [ Thu Jan 14, 2010 11:43 am ] | ||
Post subject: | Re: Final part on my game to bring it together | ||
Why did you put this in a loop? By doing so you will get an error pretty soon.
That what you are doing with oldCraracter is uselss. oldCharacter contains the original shooter.bmp picture all the time. Wouldn't it be easier if you defined it as a constanat or declare it outside of the main loop and not change it? |
Author: | Turing_Gamer [ Thu Jan 14, 2010 11:46 am ] |
Post subject: | Re: Final part on my game to bring it together |
You have to do a bit of trig, Math.Distance, and arrays. The first two I don't know how to do |