Mein_erstes_Spiel
Übersicht

![]() |
Rotes_EichhörnchenBetreff: Mein_erstes_Spiel |
![]() Antworten mit Zitat ![]() |
---|---|---|
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) ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Eichhörnchen ![]() 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 ![]() 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 ![]() |
||
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Bildschirmauflösung springt in 800*600
Zitat: Code: [AUSKLAPPEN]
GRAPHICS 640,480,0,1
![]() |
||
www.xairro.com |
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
AvaGast |
![]() 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?! ![]() |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
oder auch ziemlich missverstehen | ||
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
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: ![]() der hintergrund: ![]() dass ich das geschafft habe, glaub ich kaum.^^ Bin sooo glücklich |
||
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ä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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Vollversionen kannst Du über http://www.blitzbasic.com/Products/_index_.php käuflich erwerben ![]() 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 ![]() Gruß Preachie |
||
![]() |
Rotes_Eichhörnchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, der Thread is noch nicht mal über eine Seite lang... das passt schon noch ![]() 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) ![]() Gruß Preachie |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group