waffenhangar problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

jj2

Betreff: waffenhangar problem

BeitragFr, Sep 22, 2006 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

waffenhangar()

Function waffenhangar()
hangar=LoadImage("waffenhangar.png")
buttona=LoadImage("1.png")
buttonaa=LoadImage("1.png")
buttonb=LoadImage("10.png")
buttonbb=LoadImage("10.png")
buttonc=LoadImage("20.png")
buttoncc=LoadImage("20.png")
buttond=LoadImage("100.png")
gfxSparks=LoadAnimImage("maus.png",16,16,0,33)
MaskImage gfxsparks,0,0,255
HidePointer


Repeat
Cls
DrawImage hangar,0,0
DrawImage buttona,249,215
DrawImage buttonaa,249,308
DrawImage buttonb,387,215
DrawImage buttonbb,387,308
DrawImage buttonc,518,215
DrawImage buttoncc,518,308
DrawImage buttond,249,393

;--------------------------------------auswahl------------------------------------------
If ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttona,249,215,0)And MouseDown(1) Then lenkrakete=lenkrakete+1
If ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttonaa,249,308,0)And MouseDown(1) Then rakete=rakete+1
If ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttonb,387,215,0)And MouseDown(1) Then lenkrakete=lenkrakete+10
If ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttonbb,387,308,0)And MouseDown(1) Then rakete=rakete+10
If ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttonc,518,215,0)And MouseDown(1) Then lenkrakete=lenkrakete+20
If ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttoncc,518,308,0)And MouseDown(1) Then rakete=rakete+20
WaitMouse


If MilliSecs() > tmrSparks + 80Then
tmrSparks=MilliSecs()
frmSparks=(frmSparks + 1) Mod 33
End If
DrawImage gfxSparks,MouseX(),MouseY(),frmSparks

If KeyHit(3) Then MoveHelikopter()
Flip
Until KeyHit(3)

End Function 



hi,ich habe hier ein kleines problem bei meinem projekt.
normal sollte wenn man auf den button drückt z.b +1 Raketen munnition geben.Wenn ich aber einmal drafdrücke kommt immer eine andere zahl.
Ich glaube es liegt daran das die kollisionen in der schleife abgefragt werden.

Wäre nett wenn ihr antworten würdet

thx
...:::ICH WOHNE IN DER GESÜNDESTEN STADT DEUTSCHLANDS:::...
Meine Pages : www.lpbase.de
mein projekt :Authority von Impulse Soft
User posted image

FreetimeCoder

BeitragFr, Sep 22, 2006 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If MouseHit(1)
   If ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttona,249,215,0)
      lenkrakete=lenkrakete+1
   ElseIf ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttonaa,249,308,0)
      rakete=rakete+1
   ElseIf ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttonb,387,215,0)
      lenkrakete=lenkrakete+10
   ElseIf ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttonbb,387,308,0)
      rakete=rakete+10
   ElseIf ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttonc,518,215,0)
      lenkrakete=lenkrakete+20
   ElseIf ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttoncc,518,308,0)
      rakete=rakete+20
   EndIf
EndIf


Damit sollte es gehen, du hast mit MouseDown gearbeitet, das liefert aber True zurück, wenn die Maus gedrückt ist. Wenn die Schleife zB 100 mal in der sekunde durchläuft, und du die maus eine sekunde gedrückt hälst, werden 100 mal mehr raketen addiert.
Du sollstest ein MouseHit einfügen und wenn dieses True liefert alle Bilder auf Kollision abfragen.
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

Schranz0r

BeitragFr, Sep 22, 2006 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Zumal ist es eh schlecht, Bilder in einer Function zu laden!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

jj2

BeitragFr, Sep 22, 2006 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
cool,vielen dank funktioniert
thx
...:::ICH WOHNE IN DER GESÜNDESTEN STADT DEUTSCHLANDS:::...
Meine Pages : www.lpbase.de
mein projekt :Authority von Impulse Soft
User posted image

Goodjee

BeitragFr, Sep 22, 2006 20:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Schranz0r hat Folgendes geschrieben:
Zumal ist es eh schlecht, Bilder in einer Function zu laden!



das kann man so nicht sagen. ich finde es ehrlich gesagt eher gut...so bleibt der code übersichtlich. man muss natürlich vprher alle globals definieren...
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

FreetimeCoder

BeitragFr, Sep 22, 2006 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Eigentlich ist es nicht gut, da jedes mal, wenn die Funktion aufgerufen wird, die Bilder geladen werden, damit wird nur der Speicher vollgemüllt.

Am besten ist es alle Bilder am Anfang mit Gloabal zu laden.
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

jj2

BeitragFr, Sep 22, 2006 21:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

If MouseHit(1)
If ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttona,249,215,0)
lenkrakete=lenkrakete+1 And geld=geld-50
ElseIf ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttonaa,249,308,0)
rakete=rakete+1 And  geld=geld-20
ElseIf ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttonb,387,215,0)
lenkrakete=lenkrakete+10 And  geld=geld-450
ElseIf ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttonbb,387,308,0)
rakete=rakete+10 And geld=geld-160
ElseIf ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttonc,518,215,0)
lenkrakete=lenkrakete+20 And  geld=geld-750
ElseIf ImagesCollide(gfxSparks,MouseX(),MouseY(),0,buttoncc,518,308,0)
rakete=rakete+20 And  geld=geld-300
EndIf
EndIf


das mit dem and geld = geld-irgendwas funktioniert nicht.Habt ihr ne idee warum nich??Wäre nett wenn ihr nochmal antworten würdet

thx
...:::ICH WOHNE IN DER GESÜNDESTEN STADT DEUTSCHLANDS:::...
Meine Pages : www.lpbase.de
mein projekt :Authority von Impulse Soft
User posted image

FreetimeCoder

BeitragFr, Sep 22, 2006 21:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst das "And" weglassen und in den Geldcode in die nächste Zeile schreiben. And gilt nur für If abfragen.

Wenn du schon alles in eine Zeile schreiben willst:

Code: [AUSKLAPPEN]
rakete=rakete+1 : geld=geld-20
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

jj2

BeitragFr, Sep 22, 2006 22:01
Antworten mit Zitat
Benutzer-Profile anzeigen
nochmal danke das mit dem Doppelpunkt hatte ich glatt vergessen.

thx du bist gut!!!
...:::ICH WOHNE IN DER GESÜNDESTEN STADT DEUTSCHLANDS:::...
Meine Pages : www.lpbase.de
mein projekt :Authority von Impulse Soft
User posted image

jj2

BeitragFr, Sep 22, 2006 22:05
Antworten mit Zitat
Benutzer-Profile anzeigen
könntest du mir auch noch sagen wie ich teste ob man z.b mehr als 50 geld hat?

thx
...:::ICH WOHNE IN DER GESÜNDESTEN STADT DEUTSCHLANDS:::...
Meine Pages : www.lpbase.de
mein projekt :Authority von Impulse Soft
User posted image

Goodjee

BeitragFr, Sep 22, 2006 22:49
Antworten mit Zitat
Benutzer-Profile anzeigen
if geld>50 ???
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

FreetimeCoder

BeitragSa, Sep 23, 2006 7:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du Waren nur kaufen können möchtest, wenn du genug Geld hast:

Code: [AUSKLAPPEN]
If Geld-20>=0
   rakete=rakete+1 : geld=geld-20
EndIf


Aber darauf hättest du eigentlich selber kommen müssen.
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

Schranz0r

BeitragSa, Sep 23, 2006 13:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Freetimecoder kann dir ja auch gleich das ganze Game schreiben Shocked

Du musst auch mal ein wenig selber versuchen, und nicht gleich wegen jeden kleineren Problem andere Fragen.
so lernst du nie was dazu Rolling Eyes
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 

Dreamora

BeitragSa, Sep 23, 2006 16:23
Antworten mit Zitat
Benutzer-Profile anzeigen
www.robsite.de bietet einige hervorragende Tutorials für totale Programmieranfänger, wo man auch lernt wie man IF und Schleifen einsetzt.

Das ist als totales Minimum anzusehen, solange du das nicht verstanden hast, macht es wenig Sinn ein Projekt zu beginnen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group