Figur mit der Maus steuern
Übersicht

![]() |
YankeeBetreff: Figur mit der Maus steuern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
ich bin gerade dabei ein boot spiel zu machen, wo man die Kanonen mit der Maus steuern kann. Nur weis ich nicht wie... Könnt ihr mir zeigen, wie ich das ungefähr machen könnte? Danke für eure Antworten, Yankee |
||
Um so kleiner der code, um so schwieriger den Fehler zu finden:
Siehst du den Fehler? Klick mal hier drauf... hehehe |
![]() |
Hellfront |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also das klingt jetzt stark nach : "Macht ma leute!! Yankee ruht sich heute aus!" ![]() Na ja jedenfalls solltest du genauer deine Frage erklären: hast du schon Ansätze oder was? Oder fällt dir einfdach nciht ein wie du anfangen sollst? Im jedenfall hoffe ich, dass du keinen Code erwartest. Hier mal ideen: Ich würde erstma (nachdem du den Weltenaufbau fertig hast) machen, dass die Boote schießen. Für die Richtung benutzt du MouseX(), MouseY(). Dann fragst du die Maus ab ob geklickt wurde und dann machst du einen Schuss. den Schuss solltest du erstma ruhig gerade verlaufend machen mit konstanter geschwindigkjeit. Danach musst du gucken wie du Schwerkraft einbringst. Hoffe das hilft dir ein wenig. |
||
![]() |
Yankee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein so war das net gemeint.^^
Ich wollte nur wissen, wie man das am besten machen sollte. Also ich habe eine Kanone, unten in der mitte, ok? Dann soll sich die Kanone immer der Maus nach ausrichten(wenn unten 0° ist dann 90°-180°) ähm... weis jetzt jmd was ich meine? ich wollte nur ein ganz kleines bsp. wo ich sehe, wie soetwas funktioniert. Danke, Yankee |
||
Um so kleiner der code, um so schwieriger den Fehler zu finden:
Siehst du den Fehler? Klick mal hier drauf... hehehe |
icestorm |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du meinst, dass es schräge Schüsse sein sollen, dann verweise ich dich hierhin: https://www.blitzforum.de/foru...hp?t=18100
Vincent hat da etwas ganz gutes dazu gepostet, du musst halt statt den zwei Spielern, einmal dein Boot nehmen und dann von der Maus. (also koordinaten) Mit dem Beitrag von Vincent solltest du es schaffen! *EDIT* Ok, dein Problem ist was anderes, wie ich die Antwort angefangen hab, war dein Beitrag noch nicht da^^ |
||
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/foru...hp?t=18274
letzter post. nur noch ankathete und gegenkathete angeben und fertig! cya, BlindGuy |
||
![]() |
Yankee |
![]() Antworten mit Zitat ![]() |
---|---|---|
also ich hab mir da jetzt schon was zusammengebastelt, aber jetzt habe ich zwei probleme:
1. Die Schüsse fliegen um so schneller, um so weit ich die maus von der kanone weg tue. 2. Die Schüsse fliegen immer in die entgegengesetzte richtung, wo die maus gerade ist(x) (y_speed soll immer gleich schnell sein) hier der code: Code: [AUSKLAPPEN] Graphics 640,480,16 SetBuffer BackBuffer() Global x_speedo, y_speedo Global kanone_x = 305, kanone_y = 450 Global kanone = LoadImage("kanone.bmp") Global schuss_b = LoadImage("schuss.bmp") While Not KeyHit(1) Cls ueberpruefe() verfolgung Flip Wend Function ueberpruefe() x_speedo = 0 y_speedo = 0 If MouseHit(1) Then s.schuss = New schuss s\x = kanone_x + 13 s\y = 443 x_speedo = (MouseX()-s\x) y_speedo = (MouseY()-s\y) s\x_speed = -x_speedo s\y_speed = -y_speedo EndIf If KeyDown(203) Then kanone_x = kanone_x - 1 If KeyDown(205) Then kanone_x = kanone_x + 1 If kanone_x < 0 Then kanone_x = 0 If kanone_x > 630 Then kanone_x = 630 End Function Function verfolgung() For s.schuss = Each schuss weiter = 0 s\y_speed = s\y_speed - 0.5 s\y = s\y - s\y_speed s\x = s\x + s\x_speed If s\y < -6 Then Delete s.schuss weiter = 1 EndIf If weiter = 0 Then DrawImage schuss_b,s\x,s\y Next DrawImage kanone,kanone_x,kanone_y End Function Type schuss Field x Field y Field x_speed Field y_speed End Type Kann jmd helfen? Yankee |
||
Um so kleiner der code, um so schwieriger den Fehler zu finden:
Siehst du den Fehler? Klick mal hier drauf... hehehe |
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: x_speedo = (MouseX()-s\x) y_speedo = (MouseY()-s\y) wenn du das so machst muss es ja mausabhängig sein! und was soll das werden ? : Code: [AUSKLAPPEN] s\x_speed = -x_speedo s\y_speed = -y_speedo so ist es doch immer entgegengesetzt. ?? ich glaube dir nicht wirklich das du das "zusammengebastelt" hast... cya, BlindGuy |
||
![]() |
Rone |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
habe zwar nicht wirklich verstanden was du da gemacht hast... ...aber habe deinen quelltext mal so abgeändert, dass es geht. Code: [AUSKLAPPEN] Graphics 640,480,16 SetBuffer BackBuffer() Global kanone_x = 305, kanone_y = 450 While Not KeyHit(1) Cls ueberpruefe() verfolgung () Print Angle( kanone_x + 13,443,MouseX(),MouseY()) Flip Wend End Function Angle#(fX1#, fY1#, fX2#, fY2#) Return (ATan2(fY2 - fY1, fX2 - fX1) + 450.0) Mod 360.0 End Function Function ueberpruefe() If MouseHit(1) Then s.schuss = New schuss s\x = kanone_x + 13 s\y = 443 s\win = Angle( kanone_x + 13,443,MouseX(),MouseY()) s\speed =5 EndIf If KeyDown(203) Then kanone_x = kanone_x - 1 If KeyDown(205) Then kanone_x = kanone_x + 1 If kanone_x < 0 Then kanone_x = 0 If kanone_x > 630 Then kanone_x = 630 End Function Function verfolgung() For s.schuss = Each schuss weiter = 0 s\x = s\x + s\speed*Sin(s\win) s\y= s\y - s\speed*Cos(s\win) x=s\x y=s\y Rect s\x,s\y,10,10,1 If y < -6 Or x <-8 Then Delete s.schuss weiter = 1 EndIf Next Rect kanone_x ,450,20,20,1 End Function Type schuss Field x Field y Field speed Field win# End Type mfg |
||
![]() |
Yankee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Äh danke vielmals.....
Yankee |
||
Um so kleiner der code, um so schwieriger den Fehler zu finden:
Siehst du den Fehler? Klick mal hier drauf... hehehe |
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
alles total sinnlos!
geh deinen code durch, bevor du hier nocheinmal eine frage stellst cya, BlindGuy |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group