ImagesCollide und delete...Hilfe...SOS
Übersicht

Gehe zu Seite Zurück 1, 2, 3 Weiter
![]() |
Tobchen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wir dich auch, wir dich auch. | ||
Tobchen - die Welt von Tobi!
|
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Midimaster: In blitz darfst du je einen Type, Variable, Label und Funktion den selben Namen geben. Bltz kann das unterscheiden. Ob es sinnvoll ist ist was anderes. | ||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@silver_knee
Oh, das war mir neu. Danke. Aber wir sind uns ja einig, dass das alles andere als hilfreich ist. Du schreibst in "Blitz".... Das probier ich gleich mal BlitzMax aus. Ich fände es schrecklich, wenn SUPERSTRICT dies erlauben würde. |
||
MarieBube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab noch eine Frage. Und zwar hab ich jetzt noch so eine Startseite für das Spiel gebastelt. Da steht halt wie das Spiel funktioniert und dann "drücke Enter". Ich möchte halt, dass das Spiel anfängt, wenn man dann Enter gedrückt hat.
Wie verknüpfe ich denn diese beiden Fenster (oder wie man das nennt...)? LG |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du packst alles in Funktionen... Meine übliche Struktur wäre etwa:
BlitzBasic: [AUSKLAPPEN] Local timer = CreateTimer(60) |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
MarieBube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
eeeeeeeeehm.... jaaaa. danke.
*hust. ich hab keine ahnung, wie ich das einbaue.hust* |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast eine Hauptschleife. Aus der Rufst du endweder die Funktion für das Spiel oder für das Menü auf. In den Funktionen steht einfach der Code für dein Spiel. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
MarieBube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wo schreib ich den dahin, dass der zu "Game.bb" wechseln soll? | ||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] Repeat @Xeres vielleicht besser erst mal so mit 2 WHILE/FLIP/WENDs, das ist leichter zu verstehen. |
||
- Zuletzt bearbeitet von Midimaster am So, Jan 03, 2010 14:21, insgesamt 2-mal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst den Code mittels include![]() Edit: Midimaster: Was ist der Sinn hinter den Funktionen, wenn man doch alles doppelt und dreifach ausführt? Das würde es für mich noch unverständlicher machen... |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
MarieBube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-.-
-.- -.- Also das ist die Startseite ("startseite.bb"). "game.bb" hätte ich gerne bei Drücken von Enter... Code: [AUSKLAPPEN] Graphics 1000,600
SetBuffer BackBuffer () landschaft2=LoadImage("landschaft2.bmp") ScaleImage landschaft2,1.2,1; hungry=LoadImage("hungry.bmp") ScaleImage hungry,1,1; MaskImage hungry,255,255,255; mammoth1=LoadImage("Mammoth1.bmp") ScaleImage mammoth1,1,1; MaskImage mammoth1,255,255,255; While Not KeyDown (1) Cls; DrawImage landschaft2,x,y; DrawImage hungry,120,5; DrawImage mammoth1,400,250; If Blink Then Text 20,200 , "Bewege Mammuth mit der linken und der rechten Pfeiltaste und fang die Cookies auf." font = LoadFont("Comic Sans MS",25,15) SetFont Font Color 237,126,218 If Blinktimer < MilliSecs () Then Blink = 1 - Blink Blinktimer = MilliSecs () + 600 End If Flip Wend |
||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Pack doch einfach den Inhalt deiner jeweiligen Mainloops in unterschiedliche Funktionen.
Dann machst du eine Bedingung: Code: [AUSKLAPPEN] IF Game_State = 0 THen
Menue() else Game() Endif Dann musst du in dem Menü wenn du Enter drückst, die Variable Game_State auf 1 setzten, dann wird nicht mehr das Menue() aufgerufen, sondern Game() |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Xeres
Hast Du gerade den Eindruck MarieBube würde deine Hilfe verstanden haben? Schließlich fragt er zum 3.Mal nach! Deine Lösung ist elegant und richtig. Aber nix für MarieBube.... Für ihn sind es ja sogar zwei BB-Programme: eines das den Titel zeigt und eines das das Spiel macht. Und es überfordert ihn gerade sich vorzustellen, dass beides mit einer WHILE/FLIP/WEND hinzukriegen wäre. Er hat ja bereits das Modell mit zwei WHILE/FLIP/WEND fertig. Darüber stellen wir ihm jetzt eine Entscheidungsebene. Code: [AUSKLAPPEN] While
If Entweder Titel oder Spiel Endif Wend Funktion Titel While ... Flip Wend End Function Funktion Spiel While ... Flip Wend End Function |
||
MarieBube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das Problem ist, ICH BIN EIN HOFFNUNGSLOSER ANFÄNGER, ich kann das nicht "einfach" mal machen... Ich mache das nicht schon seit Jahren, so wie einige von euch, sondern seit ein paar Wochen.
Ich brauch das halt dür die Schule, sonst würde ich euch nicht mit meinen Problemen belästigen. ![]() ![]() Also da oben ist ja meine Startseite. Kann das nicht jemand "einfach mal" dareinschreiben? ![]() ![]() Ah, danke Midimaster ![]() ![]() ![]() |
||
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() |
||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du hast doch bei beiden Dateien immer eine Mainloop:
BlitzBasic: [AUSKLAPPEN] While Not KeyDown (1) Dann nimmst du bei beiden Dateien jeweils das, was dazwischen ist( hier jetzt Game ) , und schreibst diese in Funktionen: BlitzBasic: [AUSKLAPPEN] Function Game() Danach schreibst du alles was bei beiden BB Dateien geladen wird in einer Datei komplett oben drüber, sodass das, was du für das Menü brauchst, gleichzeitig mit dem, was du fürs Spiel brauchst, geladen wird (nur so nebenbei: LoadFont besser auch obendrüber). Dann musst du die Funktionen in die Mainloop einbauen: BlitzBasic: [AUSKLAPPEN] While Not KeyDown (1) Da ja aber bei dem was du dann bis zu dieser Stelle gemacht hast, Game_State immer nur 0 ist, also nur das Menü aufgerufen wird, musst du noch in die Menue() eine Abfrage reinmachen, in der du Game_State auf 1 setzt: BlitzBasic: [AUSKLAPPEN]
Übrigens, wenn du da noch nicht ganz so fit bist, schau dir mal Midimaster's Tutorial an(@Midimaster, sei mir nicht böse für die Werbung ![]() |
||
MarieBube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Den Schritt verstehe ich nicht ![]() Den Rest hab ich gemacht. Mehr oder weniger richtig. Aber da erscheint dann "'Function' can only appear in main program" Zitat: Danach schreibst du alles was bei beiden BB Dateien geladen wird in einer Datei komplett oben drüber, sodass das, was du für das Menü brauchst, gleichzeitig mit dem, was du fürs Spiel brauchst, geladen wird Dann musst du die Funktionen in die Mainloop einbauen: BlitzBasic: [AUSKLAPPEN] While Not KeyDown (1) |
||
![]() |
Thorsten |
![]() Antworten mit Zitat ![]() |
---|---|---|
MarieBube hat Folgendes geschrieben: Aber da erscheint dann "'Function' can only appear in main program"
Dann solltet du bis hierhin erstmal deinen QuellCode posten. |
||
MarieBube |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also gut Freunde. Hier sind meine Codes:
Startseite Code: [AUSKLAPPEN] Graphics 1000,600
SetBuffer BackBuffer () landschaft2=LoadImage("landschaft2.bmp") ScaleImage landschaft2,1.2,1; hungry=LoadImage("hungry.bmp") ScaleImage hungry,1,1; MaskImage hungry,255,255,255; mammoth1=LoadImage("Mammoth1.bmp") ScaleImage mammoth1,1,1; MaskImage mammoth1,255,255,255; While Not KeyDown (1) Cls; ;Funktion Function Menue() DrawImage landschaft2,x,y; DrawImage hungry,120,5; DrawImage mammoth1,400,250; If Blink Then Text 20,200 , "Bewege Mammuth mit der linken und der rechten Pfeiltaste und fang die Cookies auf." font = LoadFont("Comic Sans MS",25,15) SetFont Font Color 237,126,218 If Blinktimer < MilliSecs () Then Blink = 1 - Blink Blinktimer = MilliSecs () + 600 End If ;funktion If KeyHit(28) Then Game_State = 1 End Function Flip Wend Dann das Spiel: Code: [AUSKLAPPEN] AppTitle "Mammuth hat Hunger!"
PlayMusic("ice.wav") SeedRnd MilliSecs() Const width=10,height=10,depth=1 Global points=0,mx=100,my=550 Graphics 1024,768 SetBuffer BackBuffer() landschaft=LoadImage("Landschaft.bmp") i=MilliSecs() zeit=i-m ;bilder hochladen mammoth=LoadImage("Mammoth3.bmp") ScaleImage mammoth,0.75,0.75 MaskImage mammoth,255,255,255 cookie=LoadImage("cookie2.bmp") ScaleImage cookie,0.04,0.04 MaskImage cookie,255,255,255 ;type erstellen Type cookie Field x Field y Field gfx Field punkte Field speed End Type ;counter counter = 1 fontno=LoadFont("verdana",50) SetFont fontno While Not KeyDown(1) Color Rnd(256),Rnd(256),Rnd(256) counter = counter + 1 If counter>45 Then c.cookie = New cookie c\x = Rnd(1,950) c\y = 0 c\gfx = cookie c\speed = Rnd(1.5,6) c\punkte = z counter = 0 EndIf ;steuerung If KeyDown(205) mx=mx+10 EndIf If KeyDown(203) mx=mx-10 EndIf Cls ;funktion Function Game() DrawImage landschaft,x,y DrawImage Mammoth,mx,my If mx>820 Then mx=820 EndIf If mx<0 Then mx=0 EndIf For c.cookie=Each cookie DrawImage c\gfx,c\x,c\y c\y = c\y + c\speed If ImagesCollide(Mammoth,mx,my,0,c\gfx,c\x,c\y,0) Then Delete c.Cookie points = points+10 EndIf Next ;anzeige Text 10,0,"Zeit: " Text 10,40,"Leben: " Text 10,80,"Punkte: "+points ;counter ;Text 960,720,counter ;funktion End Function Flip Wend End |
||
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also nach meiner Anleitung müsste eigentlich das hier auskommen:
BlitzBasic: [AUSKLAPPEN] AppTitle "Mammuth hat Hunger!" Aber wie ich schon schrieb, schau dir am besten mal Midimaster's Tutorials an, die wären für dich genau das richtige ![]() |
||
Gehe zu Seite Zurück 1, 2, 3 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group