Kanonenschuss funktioniert nicht richtig
Übersicht

![]() |
Dice of DarknessBetreff: Kanonenschuss funktioniert nicht richtig |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo zusammen!
Ich muss gleich vornweg sagen, dass ich quasi ein totaler Noob bin, also so gut wie gar keine Kenntnisse von Blitz Basic habe. Das heißt nicht, dass ich die Befehle nicht kennen würde, sondern dass ich noch nie ein komplettes Spiel programmiert habe... Ok, das Problem ist folgendes: Ich wollte eine Art Schiffe versenken machen, mit verschiedenen Schiffen, die man abschießen muss etc. Ich habe bis jetzt nur ein Hintergrundbild, eine Kanone und ein Schiff. Die Kanone ist ganz unten aufm Bildschirm in der Mitte, und wenn man auf Leertaste drückt, kommt aus der Spitze eine Kugel heraus, die geradeaus schießt. Das Schiff fährt derweil über den Bildschirm. Hier ist der Code: Code: [AUSKLAPPEN] Graphics 1024,768,32,1
timer = CreateTimer (30) SetBuffer BackBuffer () Global Tile = LoadImage ("Ship_r_gr.bmp"); Schiff MaskImage Tile, 255, 0, 255 Global Cannon = LoadImage ("cannon.bmp"); Kanone MaskImage Cannon, 255, 0, 255 Global Ball = LoadImage ("ball.bmp"); Kugel MaskImage Ball, 255, 0, 255 Global Back = LoadImage ("water.jpg"); Hintergrund Global player_pos_x# = -100; Startposition Schiff (-100, damit es von links erscheint) Global player_pos_y# = 400 Global ball_x = 540; Position der Kugel Global ball_y = 700 Repeat Cls WaitTimer (timer) DrawImage Back, 0, 0; Hintergrund zeichnen DrawImage Cannon, 512, 600; Kanone zeichnen DrawImage Tile, player_pos_x#, player_pos_y#; Schiff zeichnen player_pos_x# = player_pos_x# +3.3; Schiff fährt über den Bildschirm If KeyHit (57) Then DrawImage Ball, ball_x, ball_y; Bei Leertaste soll die Kugel erscheinen ball_y = ball_y - 2; Kugel bewegt sich vorwärts Flip Until KeyHit (1) End Probleme sind dabei: Mit KeyHit erscheint die Kugel einmal ganz kurz, dann ist sie wieder weg. Wenn man wieder auf die Leertaste drückt, ist sie wieder kurz da und wieder weg. Außerdem gibt es ein Problem, wenn das Schiff sich in der Nähe der Kanone aufhält: Dann wird die Kugel an einer ganz anderen Stelle (irgendwo über dem Schiff) dargestellt. ![]() Meine Frage wäre also: Wie kriege ich die Probleme gelöst, dass die Kugel nicht gleich wieder verschwindet, sondern auf dem Bildschirm bleibt, und wie kann man die Position der Kugel "festsetzen", ohne dass sie ständig woanders erscheint? Vielen Dank schon im Voraus, mfg Dice of Darkness |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du mußt den Schuss aktivieren damit dieser in jedem Schleifendurchgang gezeichnet wird
etwa so Code: [AUSKLAPPEN] If KeyHit (57) Then AktiverBall = 1; Bei Leertaste soll die Kugel erscheinen
If AktiverBall = 1 Then DrawImage Ball, ball_x, ball_y ball_y = ball_y - 2; Kugel bewegt sich vorwärts End If |
||
[BB2D | BB3D | BB+]
|
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Keyhit ist bei dir nur 1/30 Sekunde lang True, bzw. das bild ist nur den Frame sichtbar wo man die taste auch drückt. Danach wird das Bild wieder nicht eingezeichnet.
Und die Kugel bewegt sich auch immer vorwärts, egal was ist. Ich empfehle ein Type-Schuss-Tutorial... |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Dice of Darkness |
![]() Antworten mit Zitat ![]() |
---|---|---|
Super danke! Jetzt funktionierts, muss nur die Koordinaten von der Kugel noch mal überarbeiten.
thx! |
||
Schoasch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Xeres, da kann ich dir nicht zustimmen. (Ich bin auch kein Profie, eher auch ein Noob)
Wenn der die Taste einmal drückt, ist die Variable AktiverBall immer 1! (Sie wird ja nicht zurückgesetzt) Und deshalbt wird die abfrage If AktiverBall = 1 Then ... auch immer erfüllt und das Bild angezeigt =) Wenn ich mich täusche---> sry für den Post Mfg |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Würde ich mich auf Rallimens Code beziehen, aber ich bezog mich auf Dice of Darkness' Anfangspost... | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
Schoasch |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
achso sry^^... | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group