Probleme mit Types, Catchem Klon
Übersicht

D@NieLBetreff: Probleme mit Types, Catchem Klon |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi alle!!!
Sorry erstmal, dass ich, wie viele andere, wieder mit Type Problem komme... Ich habe gerade meinen Ping Pong Klon fertiggestellt und wollte jetzt einen Catchem Klon machen. Kennt das jemand? Das ist ein Spiel in dem man verschiedene Bilder mit einem balken auffangen musst. Ich wusste dass ich die Types brauche und habs zuerst alleine versucht aber irgendwie kapier ich das net... Jetzt mein Problem: Ich will das in jedem Level (levelübergang muss ich auch noch schauen wie das geht ![]() Jetzt muss ich das mit types machen um sie dann unten wenn man sie fängt wieder deleten zu können. Jedes bild hat verschiedene x koordinaten. Code: [AUSKLAPPEN] Graphics 1400,1050,36,1
SetBuffer BackBuffer() Global player = LoadAnimImage("player.bmp",200,180,0,3) MaskImage player,255,0,255 Global ball1 = LoadImage ("level1_testfigure.bmp") MaskImage ball1,255,0,255 Global player_pos_x = 0 Global player_pos_y = 860 Global ball1_pos_x = Rnd(0,1200) ; Für die Zwei soll ja son Type entstehen Global ball1_pos_y = 0 ; so ungefähr oder? Type images Field x = Rnd(0,1200) Field y = 0 Field image = ;was kommt hier hin? End Type Global frame = 0 ; Hauptschleife Repeat Cls Moveplayer() Drawplayer() Drawthings_level1() Drop() Flip Until KeyHit (1) End Function Moveplayer() player_pos_x = MouseX() If player_pos_x >1200 Then player_pos_x = 1200 End Function Function Drawplayer() DrawImage player,player_pos_x,player_pos_y,frame End Function Function drawthings_level1() DrawImage ball1,ball1_pos_x, ball1_pos_y ; bis jetzt hab ich nur einen ball der nach unten fliegt - Kollisionen kann ich ja erst nachdem ich types gemacht habe wenn ich deleten kann End Function Function Drop() If MouseHit(1) Then Start = 1 ElseIf Start = 1 Then ElseIf ball1_pos_y < 1000 Then ball1_pos_y = ball1_pos_y + 1 EndIf End Function Hoffe das ihr mir mit dem Each + New + etc. helfen könnt. Bitte auch erklären nicht nur Code ![]() Lg D@niel |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Ich habe deine Code durchgesehen und ein paar Bemerkungen reingeschrieben, ob das jetzt so ist wie du dir das vorgestellt hast, weiß ich nicht! Types hab ich dir eingebaut, damit du siehst wie man damit arbeitet Code: [AUSKLAPPEN] ;Diese krumme Auflösung wird von den meißten Graka´s nicht unterstüzt
; besser 1024x768; 800x600; 1280x1024; usw.. Graphics 1400,1050,36,1 SetBuffer BackBuffer() Global player = LoadAnimImage("player.bmp",200,180,0,3) MaskImage player,255,0,255 Global ball1 = LoadImage ("level1_testfigure.bmp") MaskImage ball1,255,0,255 Global player_pos_x = 0 Global player_pos_y = 860 Global Start ;das ist auch über , da du ja types benutzt ;Global ball1_pos_x = Rnd(0,1200) ; Für die Zwei soll ja son Type entstehen ;Global ball1_pos_y = 0 ; so ungefähr oder? Type images Field x = Rnd(0,1200) Field y = 0 ;Braucht du wenn es mehr bilder werden ;denn dann kannst du das Handle des Bildes kopieren Field image = ;was kommt hier hin? ; End Type ;neue Bälle erstellen 10 Stück For t= 1 To 10 TypeHandle.images = New images ; Hier wird ein neues Type erstellt ; und hier die Werte eingegeben TypeHandle\x = Rand(0,1200) ; Rnd normal nur für Floats(Kommazahlen) TypeHandle\y = 0 ; ich denke das hier ein auch ein Zufallswert im Minus Bereich rein soll TypeHandle\Image = ball1 Next Global frame = 0 ; Hauptschleife Repeat Cls Moveplayer() Drawplayer() Drawthings_level1() Drop() If First images = Null Then End ; keine mehr da dann ende Flip Until KeyHit (1) End Function Moveplayer() player_pos_x = MouseX() ; If player_pos_x >1200 Then player_pos_x = 1200 End Function Function Drawplayer() DrawImage player,player_pos_x,player_pos_y,frame End Function Function drawthings_level1() For TypeHandle.images = Each images ; alle durchgehen und zeichnen DrawImage TypeHandle\image,TypeHandle\x,TypeHandle\y Next ;DrawImage ball1,ball1_pos_x, ball1_pos_y ; bis jetzt hab ich nur einen ball der nach unten fliegt - Kollisionen kann ich ja erst nachdem ich types gemacht habe wenn ich deleten kann End Function Function Drop() ; das hier ist etwas komplex ???? If MouseHit (1) Then START = 1 If START = 1 Then ; erst weitersetzt wenn gestartet wurde For TypeHandle.images = Each images ; auch alle durchgehen und weitersetzten TypeHandle\y = TypeHandle\y +1 If TypeHandle\y > 1000 Then Delete TypeHandle ; ggf löschen Next End If End Function |
||
[BB2D | BB3D | BB+]
|
D@NieL |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmmmm..... danke!
Ist ne gute erklärung ![]() Ne frage: muss ich jetzt das image machn oder net? Weil bei mir stimmt der code jetzt irgendwie net!! Code: [AUSKLAPPEN] Graphics 1400,1050,36,1
SetBuffer BackBuffer() Global player = LoadAnimImage("player.bmp",200,180,0,4) MaskImage player,255,0,255 Global ball1 = LoadImage ("level1_testfigure.bmp") MaskImage ball1,255,0,255 Global player_pos_x = 0 Global player_pos_y = 860 Global player_frame = 0 Global score = 0 Global start = 0 Global fallen = ball1_pos_y = ball1_pos_y + 1 Type images Field x = Rnd(0,1200) Field y = 0 End Type For t = 1 To 10 TypeHandle.images = New images TypeHandle\x# = Rnd(0,1200) TypeHandle\y# = 0 Next ; hauptschleife Repeat Cls If start = 0 Then Text 0,0, "Drücken Sie die linke Maustaste um das Spiel zu starten!" EndIf If MouseHit(1) Then start = 1 EndIf If start = 1 Then frame = 0 DrawImage player,player_pos_x,player_pos_y,player_frame Moveplayer() Drawplayer() Drawthings_level1() Drop() Kollision() Checkpoints() EndIf Flip Until KeyHit (1) End Function Moveplayer() player_pos_x = MouseX() If player_pos_x >1200 Then player_pos_x = 1200 End Function Function Drawplayer() DrawImage player,player_pos_x,player_pos_y,player_frame End Function Function drawthings_level1() For TypeHandle.images = Each images DrawImage ball1,Typehandle\x,typehandle\y Next End Function Function Drop() If fallen = 1 Then ball1_pos_y = ball1_pos_y + 1 EndIf If ball1_pos_y < 1010 Then For TypeHandle.images = Each images Typehandle\y = Typehandle\y + 1 If Typehandle\y > 1010 Then Delete Typehandle Next EndIf If ball1_pos_y = 1010 Then DrawImage player,player_pos_x,player_pos_y,player_frame player_frame = player_frame + 1 ball1_pos_x = Rnd(0,1200) ball1_pos_y = 0 EndIf If player_frame = 3 Then Text 400,400, "Achtung - Neues Spiel" player_frame = 0 score = 0 EndIf End Function Function Kollision() If ImagesCollide(ball1,ball1_pos_x, ball1_pos_y,0, player,player_pos_x,player_pos_y,frame) Then ball1_pos_x = Rnd(0,1200) ball1_pos_y = 0 score = score + 10 EndIf End Function Function Checkpoints() Text 10,10,"Punkte: " Text 70,10, score End Function Sry für den langen Code!!!! Lg |
||
D@NieL |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ups noch vergessen was jetzt mein problem ist:
die kollision funtzt irgendwie net egal wies ich mit delete etc. umstell... kannst du mir das auch noch erklären? bittä! ![]() (Vorher waren noch # falsch - hab ich selbst wieder weggemacht) Thanks for helping me ![]() |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo, hab das nochmal abgeändert um es auch so lauffähig zu machen!
Es werde jetzt keine Bilder geladen , sondern im Code Standart Bilder erstellt! BlitzBasic: [AUSKLAPPEN]
|
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group