Mouse Cursor

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen

Spikespine

BeitragMo, März 21, 2005 15:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, das ist ein Denkfehler: Du kannst ein Bild so oft zeichnen wie du willst.
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax
  • Zuletzt bearbeitet von Spikespine am Mo, März 21, 2005 15:48, insgesamt einmal bearbeitet

Jan_

Ehemaliger Admin

BeitragMo, März 21, 2005 15:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst das Bild mehrfach Zeichnen

z.B.

BlitzBasic: [AUSKLAPPEN]

Graphics 640,480,32,2
SetBuffer BackBuffer()

schuss=LoadImage(\"schuss.bmp\")

Repeat

For x=0 To 32
For y=0 To 32
DrawImage schuss,x*32,y*32
Next
Next
Flip
Until KeyHit(1)

so, hier wird das Bild 32^2 mal pro schleifen durchlauf gezeichnet.[/syntax]
between angels and insects
 

As$as$iN

BeitragMo, März 21, 2005 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
ok!
Mit freundlichen Grüßen

As$as$iN

Jan_

Ehemaliger Admin

BeitragMo, März 21, 2005 15:47
Antworten mit Zitat
Benutzer-Profile anzeigen
As$as$iN hat Folgendes geschrieben:
bei www.blitzbase.de steht sogar das DIM felder bevorzugt werden sollen!


Aber sicherlich nciht bei schüßen.
between angels and insects

BladeRunner

Moderator

BeitragMo, März 21, 2005 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
BlitzBasic: [AUSKLAPPEN]
If MouseDown(1) Then
DrawImage schusss(1),MouseX(),MouseY() + 1
EndIf


analysiere mal deinen Code. Was macht er ?


BlitzBasic: [AUSKLAPPEN]
If MouseDown(1) Then

Also: In jedem Durchlauf deiner Schleife bei dem die Maustaste gedrückt ist, wird folgendes ausgeführt (und nur dann):
BlitzBasic: [AUSKLAPPEN]
DrawImage schusss(1),MouseX(),MouseY() + 1


das Bild mit dem Handle schusss(1) wird an die aktuelle Position der Maus (auf der y-Achse jedoch um eins nach unten versetzt) gezeichnet.

Damit verursacht der Code mehrere Probleme:
- die Routine wird nur aufgerufen solange der Spieler etwas tut. Sobald er die Maustaste loslässt verschwindet der Schuss.
- es ist abgesehen von der Mausposition keine Koordinate vorhanden. Woher soll der Computer also wissen wohin und wie er den Schuss setzen soll? Er malt das Bild an die Mausposition. Fertig.

Was naheliegt wäre also die Koordinaten jedes schusses zu speichern und diese zu verändern.
Zudem sollte es eine Variable geben die anzeigt ob ein Schuss vorhanden ist und somit verändert /dargestellt werden muss.

Sowas solltest du früh lernen - Codes zerlegen und nachschauen wie sie von den Erwartungen abweichen.
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
 

As$as$iN

BeitragMo, März 21, 2005 15:49
Antworten mit Zitat
Benutzer-Profile anzeigen
ich versteh das mit dem type irrgendwie net........................
Mit freundlichen Grüßen

As$as$iN
 

As$as$iN

BeitragMo, März 21, 2005 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe das schiessen mal ein bisschen geändert....Wäre es so denn einigermaßen richitg:
BlitzBasic: [AUSKLAPPEN]

;Hauptschleife
MoveMouse 322,402
Repeat
Cls
DrawImage Raumschiff,MouseX(),MouseY()
DrawImage schuss,MouseX(),MouseY()
If KeyHit(1) Then
mausx = mausx + 1
EndIf
Flip
Until KeyDown(1)
Mit freundlichen Grüßen

As$as$iN

diGGa

GruppenKaspar

BeitragMo, März 21, 2005 16:09
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.robsite.de/download...blitzbasic

BladeRunner

Moderator

BeitragMo, März 21, 2005 16:14
Antworten mit Zitat
Benutzer-Profile anzeigen
As$as$iN hat Folgendes geschrieben:
Ich habe das schiessen mal ein bisschen geändert....Wäre es so denn einigermaßen richitg:
BlitzBasic: [AUSKLAPPEN]

;Hauptschleife
MoveMouse 322,402
Repeat
Cls
DrawImage Raumschiff,MouseX(),MouseY()
DrawImage schuss,MouseX(),MouseY()
If KeyHit(1) Then
mausx = mausx + 1
EndIf
Flip
Until KeyDown(1)


Analysiere deinen Code. Was macht er ?
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
 

As$as$iN

BeitragMo, März 21, 2005 16:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Er positioniert die maus auf die koordinaten 322.402.
Dannach fängt die Hauptschleife an.
Der Bildschirm wird mit schwarz gelöscht.
Das Bild Raumschiff wird auf den Koordinaten der Maus gezeichnet, also ist dieses Bild der neue Mauscursor.
Mit dem Bild Schuss passiert das gleiche.
Wenn die linke Maustaste gedrückt wird dann
wird mausx um 1 erhöht.
Die IF verzweigung wird mit EndIf beendet.
Die Buffer werden geflippt.
Wenn die ESC Taste gedrückt wird dann wird das Programm beendet.
Mit freundlichen Grüßen

As$as$iN
 

As$as$iN

BeitragMo, März 21, 2005 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

DrawImage schuss,mausx,mausy

Wenn ich aber das schreibe wird das Bild Schuss in der linken oberen Ecke gezeichnet. Das habe ich aber nicht vor.
Mausx und Mausy hatte ich vorher schon initialisirt.
Mit freundlichen Grüßen

As$as$iN

Jan_

Ehemaliger Admin

BeitragMo, März 21, 2005 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:

Er positioniert die maus auf die koordinaten 322.402.
wird mausx um 1 erhöht.

-->?
between angels and insects

BladeRunner

Moderator

BeitragMo, März 21, 2005 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
If keyhit(1) then- du überpfüfst auf ESCAPE, nicht auf Linke Maustaste.

Drawimage schuss,mausx,mausy wäre nicht verkehrt, aber wie Du selber schon festgestellt hast müssen diese Variablen erst Werte erhalten.

Also gib ihnen Werte Wink
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
 

As$as$iN

BeitragMo, März 21, 2005 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Mausx ist eine Variable die die Koordinaten der Maus enthällt.
movemaus 322,402 verschiebt die Maus doch auf die Koordinaten 322,402.
Das doch right.
Mit freundlichen Grüßen

As$as$iN

Jan_

Ehemaliger Admin

BeitragMo, März 21, 2005 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
nein.

mausx ist eine Variable
Mausx() ist eine Function.

bitte nciht verwechseln.
between angels and insects
 

As$as$iN

BeitragMo, März 21, 2005 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
ohh fuck(sry fürs wort) habe das wohl mit keyhit net gesehn!!!! SORRY!
Okay
Mit freundlichen Grüßen

As$as$iN
 

As$as$iN

BeitragMo, März 21, 2005 16:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Da steht doch mausx....
Mit freundlichen Grüßen

As$as$iN
 

As$as$iN

BeitragMo, März 21, 2005 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

;Hauptschleife
MoveMouse 322,402
Repeat
Cls
mausx = MouseX()
mausy = MouseY()
DrawImage Raumschiff,MouseX(),MouseY()
DrawImage schuss,mausx,mausy
If MouseHit(1) Then
mausx = mausx + 1
EndIf
Flip
Until KeyDown(1)



Ich glaube so müsste es richtig sein oder?
Ich kanns grade net überprüfen weil ich erst rebooten muss und darauf habe ich grade keine lust.....
Mit freundlichen Grüßen

As$as$iN

BladeRunner

Moderator

BeitragMo, März 21, 2005 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Du spielst Ratespielchen. Ich wies Dich auf Fehler hin, die nicht korrigiert wurden.
Kein Bock auf reboot und ausprobieren? Kein Problem. Dann hab ich keinen Bock mehr zu helfen.
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

Jan_

Ehemaliger Admin

BeitragMo, März 21, 2005 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
oh, darauf, wenn du keine Lust hast, habe ich auch keine Lust, dir zu helfen.
between angels and insects

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group