Schuss
Übersicht

jackyBetreff: Schuss |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi, ich habe da eine (wahrscheinlich kleinliche) Frage:
Ich habe eine Spiel, wo ich mit einem Fadenkreuz, dass sich mit der Maus bewegt, auf einem Bild herumfahren kann. Nun möchte ich, dass wenn ich eine Taste drücke, dass auf dem Bild ein Loch erscheint (kein richtiges natürlich -.-) Code: DrawImage fadenkreuz,MouseX(),MouseY() If MouseDown(1) Then schuss EndIf Flip Wend Function schuss() DrawImage loch,MouseX(),MouseY() End Function Wenn ich jetzt aber die Maustaste drücke, dann fährt das Loch mit dem Fadenkreuz mit. Ich möchte aber dass es auf dem Punkt bleibt, wo ich geschossen habe. thx for help |
||
Aller Anfang ist schwer!!! |
huii |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Versuch es so:
Code: [AUSKLAPPEN] DrawImage fadenkreuz,MouseX(),MouseY() If MouseDown(1) Then schuss EndIf Flip Wend Function schuss() x = MouseX() y = MouseY() DrawImage loch,x,y End Function MfG huii 8) |
||
jacky |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
funzt auch nich ![]() |
||
Aller Anfang ist schwer!!! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Erstell eine Variable (oder Dim/type) um die Position des Schussloches zu speichern.
Danach in jedem Durchlauf der Mainloop das Loch an die gespeicherten Funktionen speichern. Wenn du nur ein Loch brauchst: globale Variable (da sie sonst ja von der Funktion nicht verändert werden kann. Bei mehreren Einschüssen bietet sich Dim (oder noch besser) Type an. Dim ist immer global, daher ist der Zugriff leichter. Allerdings ist ein DimFeld statisch. Types sind sehr variabel, aber du musst sie eben in einer for...each...schleife durchlaufen lassen (was ja nit schwer ist). EDIT Ach ja, und Zeichne dein Fadenkreuz nach den Löchern, sonst wird es überpinselt... |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
- Zuletzt bearbeitet von BladeRunner am Fr, Nov 05, 2004 22:27, insgesamt einmal bearbeitet
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Du nimmst einen Typ und erstellst pro Schuss ein neues Objekt. Bei jedem Renderdurchlauf zeichnest du jedes "Einschussloch". Nach einiger Zeit zerstörst du die Löcher am besten wieder... Edit: 2 l8 :/ grüße |
||
http://bl4ckd0g.funpic.de |
jacky |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@BladeRunner:
Wie soll ich die Position in einer Variable speichern? Ich meine, mit x=MouseX() geht's ja nich, weil sich ja dann die Variable auch immer wieder ändert. Wenn möglich mit Pseudocode, wäre nett |
||
Aller Anfang ist schwer!!! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code gibts keinen. Denk einfach mal nach. Wenn du wirklich nur ein Einschußloch brauchst, kannst du ja auch noch ne 3 Var einführen, welche festlegt ob schon geschossen wurde.
Aber am Besten ists wie es David gesagt hat. Erstell immer ein neues schuss-objekt und lass die alle Pinseln (Schleife). Dann könntest du auch ne "Existenzdauer" festlegen. Es gibt auf www.blitzbase.de ein sehr gutes Type-tut. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Pseudocode: Code: [AUSKLAPPEN] Grafikmodus setzen typ schuss imageID x, y alter lade texturen hauptschleife zeichne grafiken benutzereingabe decals updaten zeichne mauscursor ende hauptschleife benutzereingabe Neuen schuss erstellen decals updaten for each... Zeichne Dekal an x, y Wenn alter > x dann zerstöre decal grüße |
||
http://bl4ckd0g.funpic.de |
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
du kannst auch die löcher auf ein grosses bild zeichnen...
dann zeichnest du das bild transparent zu den bildschirm kurz vor das fadenkreuz... vorteile sind beispielsweise das du unendlich viele löcher haben darfst, ohne dass der geschwindigkeit sich verändert... jetzt brauchst du sie auch nicht mehr zu zerstören... ausserdem brauchst du nicht mehr die verschiedene löcher in variablen zu speicheren... |
||
Norweger...
Spreche aber verdammt gut 8086 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group