Mein_erstes_Spiel

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Rotes_Eichhörnchen

Betreff: Mein_erstes_Spiel

BeitragMo, Jan 16, 2006 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ich will mein erstes Spiel schreiben, (also das erste mit BB). Da ich den gratis compiler seit rund 24 Stunden habe, denke ich, ist es an der Zeit, mal etwas zu machen.

Also folgendes habe ich schon geschafft:

Bildschirmauflösung springt in 800*600, es erscheint ein button, wenn ich den mit dem Mauszeiger (bild) anklicke, kommt ein Text.

Mein Problem: der Text bleibt nur solange, wie die Maus gedrückt gelassen wird.

Was ich möchte:

Ich will verschiedene Buttons, die dann verschiedenen Text aufrufen, wenn ich einen neuen Button klicke, soll ein neuer Text erscheinen. Also (ich mach mal ein bild davon, was ich machen will)

user posted image

So schaut übrigens mein derzeitiger Code aus:

Code: [AUSKLAPPEN]
GRAPHICS 640,480,0,1

SetBuffer BackBuffer()

maus = LoadImage("maus.bmp")
button = LoadImage("button.bmp")
 stream = OpenFile("datei.txt")

MaskImage maus, 0, 0, 255
MaskImage button, 255, 0, 255


While Not KeyHit(1)

   X=MouseX()

   Y=MouseY()

   Cls



DrawImage button, 100, 70

If X>=100 And X<=300And y>=70 And y<=120 Then

If MouseDown(2) Then

Text 10, 10, "Hallo Inge"

 EndIf

If MouseDown(1) Then

Text 10, 25, "Wie geht es dir?"

 EndIf


EndIf




DrawImage maus, X, Y
Flip

Wend

End


beim anschauen bitte keine Schreikrämpfe bekommen, und immer daran denken, dass ich nur ein armes kleines kind bin, dass zum ersten mal mit dieser prog. sprache arbeite...

skey-z

BeitragMo, Jan 16, 2006 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du auf einen button klickst, speicher nen wert in eine Variable(zb. klick=1-für button1, klick=2-für Button2, etc).

Dann kannst du ne einfache select/case anweisung screiben, die du bei jedem schleifendurchlauf aufrufst
zb:
Code: [AUSKLAPPEN]

select klick
   case 1
      text x, y, "Button 1 wurde gedrückt"
   case 2
      text x, y, "Button 2 wurde gedrückt"
   ;etc.
   default
end select


außerdem solltest du dann aber mit mousehit, anstatt mousedown arbeiten.

da du ja noch nicht sehr lange dabei bist, wirst du wahrscheinlich auch die Onlinehilfe noch nicht kennen, dort sind *fast* alle Befehle dokumentiert.

schein als würdest du schon etwas länger proggen, andere "neulinge" in Blitz schaffen sowas nicht innerhalb von einem Tag, die brauchen dafür wochen, wenn nicht sogar monate, auch die Frage ist mal präzise gestellt und das Problem wurde gut dargestellt(endlich mal wieder jemanden, den man loben kann^^)
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Rotes_Eichhörnchen

BeitragMo, Jan 16, 2006 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
mein problem ist jetzt... dass mir halt die befehle alle durchlesen könnte, aber wirklich toll find ich das nicht.... aber...

ich hab mal das probiert (mit der Hilfe), was du gesagt hast, aber es funzt ned...:

Code: [AUSKLAPPEN]
If X>=100 And X<=300And y>=70 And y<=120 Then
klick=MouseDown 1
select klick
   case 1
      Text 5, 5, "Button 1 wurde gedrückt"
   case 2
      Text 5, 15, "Button 2 wurde gedrückt"
   default
End Select
EndIf

Rotes_Eichhörnchen

BeitragMo, Jan 16, 2006 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
achja... erstes jahr HTL... Visual Basic...und im grunde meine komplette Freizeit... aber eher im bereich HTMl (jetzt auch in C/C++ und BB)

preachie

BeitragMo, Jan 16, 2006 20:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Eichhörnchen Wink

Du prüfst in Deinem Code-Beispiel nur auf einen MouseDown der linken Maustaste

Code: [AUSKLAPPEN]
klick=MouseDown 1


Daher kann die Variable klick lediglich die Werte 0 und 1 annehmen (nicht gedrückt/gedrückt)

Anstelle von
Code: [AUSKLAPPEN]
klick=MouseDown 1


könntest Du evtl. sowas wie:

Code: [AUSKLAPPEN]
If MouseDown(1) Then
   klick = 1
Else If MouseDown(2) Then
   klick = 2
End If


Vielleicht hilft das als Denkanstoß schon weiter Wink

Gruß
Preachie

P.S.: Auch wenn Du es durch den Link von skey-z sicherlich schon selbst gefunden hast, unter http://www.blitzbase.de/befehle2d/mousedown.htm findest Du die genaue Definition von MouseDown Wink

Rotes_Eichhörnchen

BeitragMo, Jan 16, 2006 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
danke...hab den kleinen denkfehler gefunden...^^ is ja blöd... Mousedown is ja im grunde nur ne Richtig Falsch -Frage... hätte ich mir eigentlich denken können, also weiter im text... danke!

BlitzChecker

BeitragMo, Jan 16, 2006 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Bildschirmauflösung springt in 800*600

Zitat:
Code: [AUSKLAPPEN]
GRAPHICS 640,480,0,1


Laughing
www.xairro.com

Rotes_Eichhörnchen

BeitragMo, Jan 16, 2006 20:56
Antworten mit Zitat
Benutzer-Profile anzeigen
ja sry, hab die zahlen vertauscht^^, aber ich glaub du weißt, was ich meine.

Egal...hmm, das Problem ist jetzt wirklich, dass der Text nicht angezeigt blaibt, was aber (glaub ich) mit der komplett struktur vom ganzen Programm zusammen hängt. (wegen cls, nehm ich mal an), aber wie mach ich, dass der Text, sobald ich den Button drücke, angezeigt wird?

Soll ich einfach immer einen Text ausgeben (z.B. immer eine variable), und abhängig, von der Button Taste, soll dann da ein anderer Text drinnen stehen?

geht das?

Hagbard

BeitragMo, Jan 16, 2006 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, das geht.

Du musst also bei dem Klick des Buttons eine Variable auf 1 setzen, damit das nicht nur während des Klicks passiert, sondern auch so bleibt.

mfg

5k41

BeitragMo, Jan 16, 2006 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
JO klar so würd ich das auch machen! sieht dann so aus:
Code: [AUSKLAPPEN]

if mousdown(1) then
 button 1 then ;oder was auch imemr
   txt$="Hallo"
 elseif button 2 then
   txt$="wie gehts
  endif
;usw
endif

Text x,y,txt$



Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image
 

Ava

Gast

BeitragMo, Jan 16, 2006 21:40
Antworten mit Zitat
5k41 hat Folgendes geschrieben:
if mousdown(1) then
button 1 then ;oder was auch imemr
txt$="Hallo"
elseif button 2 then
txt$="wie gehts
endif
;usw
endif

Text x,y,txt$


Was ist denn das für ein Code?! Shocked

5k41

BeitragMo, Jan 16, 2006 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist mehr oder weniger pseudo code...ich mein ich weis ja nicht wie er seine buttons prüft etc...aber ich denke man kann es verstehen..
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Artemis

BeitragMo, Jan 16, 2006 22:03
Antworten mit Zitat
Benutzer-Profile anzeigen
oder auch ziemlich missverstehen

Rotes_Eichhörnchen

BeitragMo, Jan 16, 2006 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
ich bin jetzt fertig!

Es klappt alles wunderbar. Danke noch mal an alle. MEIN ERSTES PROGRAMM IST FERTIG"!!!!!

ich find grad die daten von meinem Server nicht, sonst würde ich euch das hier bereit stellen, aber ich geb euch mal den code, und die bilder:

[syntax="bb"]Graphics 640,480,0,1

SetBuffer BackBuffer()

maus = LoadImage("maus.bmp")
background = LoadImage("bg.bmp")

MaskImage maus, 255, 0, 255


While Not KeyHit(1)

X=MouseX()

Y=MouseY()

Cls

DrawImage background, 0, 0


If X>=5 And X<=125And y>=43 And y<=74 Then
If MouseDown(2) Then
ausgabe$="Hallo, bei meinem ersten Programm."
EndIf
EndIf

If X>=130 And X<=250And y>=43 And y<=74 Then
If MouseDown(2) Then
ausgabe$="Du hast Button 2 geklickt. Nett von dir!."
EndIf
EndIf

If X>=255 And X<=375And y>=43 And y<=74 Then
If MouseDown(2) Then
ausgabe$="Ich freue mich ja so, dass das jetzt funktioniert."
EndIf
EndIf

If X>=381 And X<=634And y>=44 And y<=73 Then
If MouseDown(2) Then
ausgabe$="Naja, das war der letzte Button."
EndIf
EndIf




If X>=505 And X<=649And y>=44 And y<=74 Then
If MouseDown(2) Then
Button1$="Hallo"
Button2$="Button 2"
Button3$="Freude"
Button4$="Vorbei"
EndIf
EndIf




Color 0, 0, 0
Text 108,161," " +ausgabe$
Color 255,255,255
Text 515, 50, "Beschriftung"
Text 15,50, " " +button1$
Text 140,50, " " +button2$
Text 265,50, " " +button3$
Text 391,50, " " +button4$
DrawImage maus, X, Y

Flip

Wend

End[/syntax]

Die Maus: user posted image

der hintergrund: user posted image


dass ich das geschafft habe, glaub ich kaum.^^ Bin sooo glücklich

Rotes_Eichhörnchen

BeitragMo, Jan 16, 2006 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
achja... wie erstelle ich jetzt daraus eine .exe datei? (oder halt eine andere endung für Linux, od. so) ?

ich find bei meinem demo-compiler/linke/programmierumgebung^^ keinen befehl, dafür...

5k41

BeitragMo, Jan 16, 2006 22:31
Antworten mit Zitat
Benutzer-Profile anzeigen
mh ich weiss nicht ob das mit der Demo geht und sowieso weiss ich garnicht wie es mit der kompatiblität unter linux steht...aber in der normalen version geht es oben in der Toolbar unter Program und dann Create executable
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Rotes_Eichhörnchen

BeitragMo, Jan 16, 2006 22:57
Antworten mit Zitat
Benutzer-Profile anzeigen
ähm...ne frage: wo bekomme ich die "normale version" her? ist das dann entweder die Blitz3D oder Blitzplus version, oder gibt es eine spetielle 2D.follversion?

(Ich finde, es gibt nichts grauenhafteres, als 3D zu programmieren, b.z.w. solche progs dann von anderen nicht Firmen dann zu spielen. 3D, muss so ausgetüftelt sein, dass es von einem einzelnen Menschen gar nicht möglich ist . Find ich halt. Und in 3D, komme ich sowieso nie an etwas, dass mit den Produkten aufm Markt konkurieren kann. 2D RULZ)

preachie

BeitragMo, Jan 16, 2006 23:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Vollversionen kannst Du über http://www.blitzbasic.com/Products/_index_.php käuflich erwerben Wink

Wenn Dich nur 2D Programmierung interessiert, musst Du Dich zwischen BlitzMax und BlitzPlus entscheiden (wobei Du natürlich auch mit Blitz3D weiterhin reine 2D Programmierung machen kannst).

Schaue Dir einfach mal die Unterschiede und Preise an und entscheide selbst, was Dir am meisten zusagt Wink

Gruß
Preachie

Rotes_Eichhörnchen

BeitragMo, Jan 16, 2006 23:07
Antworten mit Zitat
Benutzer-Profile anzeigen
das komische ist, ich hab auch die BlitzMax Demo. Aber wenn ich jetzt den Quellcode, denn ich in BB2D geschrieben habe, in BMax einfüge, dann kommt immer ne Fehlermeldung, und es funzt ned.

Apropro Fehlermeldung:

Immer, bevor ich ein Spiel starte, kommt eine Fehlermeldung, die mir sagt, dass meine Grafikkarte nicht ganz kompatiebel ist. (danach funzt aber alles locker). Nur halt...was muss ich tun, damit sie kompatiebel wird?


PS: ^^ dieseser tread artet langsam aus...tut mir leid, aber ich will, wegen so einer kleinigkeit, (ganz viele kleinigkeiten isnd eine großigkeit^^) nicht etra einnen neuen Tread aufmachen...

preachie

BeitragMo, Jan 16, 2006 23:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, der Thread is noch nicht mal über eine Seite lang... das passt schon noch Wink

Ich selbst habe noch nix mit BlitzMax gemacht, weiß nur, dass sich dort so einiges geändert hat (Stichwort: Objektorientierte Programmierung).
Von daher gehe ich mal davon aus, dass man nicht so ohne weiteres seinen Code von BlitzPlus, bzw. Blitz3D in BlitzMax verwenden kann.

Bezüglich der Fehlermeldung: wie genau lautet Sie und hast Du danach schonmal hier im Forum gesucht? (sonst schimpfen manche Leute hier wieder, dass man nicht suchen würde) Wink

Gruß
Preachie

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group