Spiel a la Slide a Lama von icq

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mas93

Betreff: Spiel a la Slide a Lama von icq

BeitragSo, Jul 22, 2007 11:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich habe mich vor einiger ezit mal daran gemacht ein spiel wie das slide a lama von icq zu proggen.
Jetzt wollte ich wieder weitermachen habe aber bemerlt das enige funktionen total verbugt sind und nicht so funktionieren wie sie sollteen.

ICh wollte hier jetzt einfach mal den code reinstellen und euch um Hilfe beten.

Code: [AUSKLAPPEN]

AppTitle "Slide a lama"

Graphics 1024,768,16,2
SetBuffer BackBuffer()
SeedRnd MilliSecs()

;Variablen

Global mausklick
Global zahl
Global feldpics=LoadAnimImage("felder.png",40,40,0,5)
Global auswahl ;Welche Zeile oder Spalte ausgewählt ist.(1-5=Zeile, 5-10=Spalte)
Global pointer=LoadImage("maus.png")
MaskImage pointer,0,0,255
Global item=3

;Dim-Felder
Dim feld(4,4)

For y = 0 To 4
 For x = 0 To 4
  feld(x,y)=Rnd(1,4)
 Next
Next



;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;::::::::::::::::::::::::::::::-------|||HAUPTSCHLEIFE|||--------:::::::::::::::::::::::::::::::::::::
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Repeat 
Cls

mausklick=MouseHit(1)


checkfeld()
rutschen()
fallen()

;Die map zeichnen
For y = 0 To 4
 For x = 0 To 4
  DrawImage feldpics,x*40+50,y*40+50,feld(x,y)
 Next
Next


Text 700,40,"Nächster Stein:  "
Text 300,300,"Auswahl:  " +auswahl
DrawImage pointer,MouseX(),MouseY()
DrawImage feldpics,850,40,item

maus()

Flip
Until KeyHit(1)
End

;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;:::::::::::::::::::::::::::-------|||HAUPTSCHLEIFE ENDE|||--------:::::::::::::::::::::::::::::::::::
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::





Function fallen()

For y = 1 To 4
 For x = 0 To 4
 If feld(x,y)=0 Then feld(x,y)=feld(x,y-1)
 Next
Next

End Function


Function checkfeld()

For Y=0 To 4 ; waagerecht
    For a=1 To 2
      If feld(a-1,Y) = feld(a,Y)Then If Not feld(a-1,Y)=0 Or feld(a,Y)=0 Then
        If feld(a,Y) = feld(a+1,Y)Then
            feld(a-1,Y)=0 : feld(a,Y)=0 : feld(a+1,Y)=0
        End If
      End If
    Next
Next

For X=0 To 4 ; senkrecht
    For a=1 To 2
      If feld(X,a-1) = feld(X,a)Then If Not feld(X,a-1)=0 Or feld(X,a)=0 Then
        If feld(X,a) = feld(X,a+1)Then
            feld(X,a-1)=0 : feld(X,a)=0 : feld(X,a+1)=0
        End If
      End If
    Next
Next

End Function
;----------------------------------------------------------------------------------------------------


Function maus()

;Zeilenauswahl
If MouseY()<90 And MouseY()>50 Then auswahl=1 :Rect 50,50,200,40,0
If MouseY()>90 And MouseY()<130 Then auswahl=2 :Rect 50,90,200,40,0
If MouseY()>130 And MouseY()<170 Then auswahl=3 :Rect 50,130,200,40,0
If MouseY()>170 And MouseY()<210 Then auswahl=4 :Rect 50,170,200,40,0
If MouseY()>210 Then auswahl=5

;Spaltenauswahl

If MouseX()<90 And MouseY()<39 Then auswahl=6 :Rect 50,50,40,200,0
If MouseX()>90 And MouseY()<39 And MouseX()<130 Then auswahl=7 :Rect 90,50,40,200,0
If MouseX()>130 And MouseY()<39 And MouseX()<170 Then auswahl=8 :Rect 130,50,40,200,0
If MouseX()>170 And MouseY()<39 And MouseX()<210 Then auswahl=9 :Rect 170,50,40,200,0
If MouseX()>210 And MouseY()<39 Then auswahl=10 :Rect 210,50,40,200,0

End Function


Function rutschen()

If auswahl=6 And mausklick=1 And feld(0,0)<>0
 feld(0,4)=feld(0,3)
 feld(0,3)=feld(0,2)
 feld(0,2)=feld(0,1)
 feld(0,1)=feld(0,0)
 feld(0,0)=item
item=Rnd(1,4)
Else
 feld(0,0)=item
EndIf

If auswahl=7 And mausklick=1 Then If Not feld(1,0)=0
 feld(1,4)=feld(1,3)
 feld(1,3)=feld(1,2)
 feld(1,2)=feld(1,1)
 feld(1,1)=feld(1,0)
 feld(1,0)=item
item=Rnd(1,4)
EndIf

If auswahl=8 And mausklick=1 Then If Not feld(2,0)=0 
 feld(2,4)=feld(2,3)
 feld(2,3)=feld(2,2)
 feld(2,2)=feld(2,1)
 feld(2,1)=feld(2,0)
 feld(2,0)=item
item=Rnd(1,4)
EndIf

If auswahl=9 And mausklick=1 Then If Not feld(3,0)=0 
 feld(3,4)=feld(3,3)
 feld(3,3)=feld(3,2)
 feld(3,2)=feld(3,1)
 feld(3,1)=feld(3,0)
 feld(3,0)=item
item=Rnd(1,4)
EndIf

If auswahl=10 And mausklick=1 Then If Not feld(4,0)=0 
 feld(4,4)=feld(4,3)
 feld(4,3)=feld(4,2)
 feld(4,2)=feld(4,1)
 feld(4,1)=feld(4,0)
 feld(4,0)=item
item=Rnd(1,4)
EndIf

;------------------------

If auswahl=1 And mausklick=1 Then If Not feld(0,0)=0 
 feld(4,0)=feld(3,0)
 feld(3,0)=feld(2,0)
 feld(2,0)=feld(1,0)
 feld(1,0)=feld(0,0)
 feld(0,0)=item
item=Rnd(1,4)
EndIf

If auswahl=2 And mausklick=1 Then If Not feld(0,1)=0 
 feld(4,1)=feld(3,1)
 feld(3,1)=feld(2,1)
 feld(2,1)=feld(1,1)
 feld(1,1)=feld(0,1)
 feld(0,1)=item
item=Rnd(1,4)
EndIf

If auswahl=3 And mausklick=1 Then If Not feld(0,2)=0 
 feld(4,2)=feld(3,2)
 feld(3,2)=feld(2,2)
 feld(2,2)=feld(1,2)
 feld(1,2)=feld(0,2)
 feld(0,2)=item
item=Rnd(1,4)
EndIf

If auswahl=4 And mausklick=1 Then If Not feld(0,3)=0 
 feld(4,3)=feld(3,3)
 feld(3,3)=feld(2,3)
 feld(2,3)=feld(1,3)
 feld(1,3)=feld(0,3)
 feld(0,3)=item
item=Rnd(1,4)
EndIf

If auswahl=5 And mausklick=1 Then If Not feld(0,4)=0 
 feld(4,4)=feld(3,4)
 feld(3,4)=feld(2,4)
 feld(2,4)=feld(1,4)
 feld(1,4)=feld(0,4)
 feld(0,4)=item
item=Rnd(1,4)
EndIf


;Das hier falls das feld leer ist:


End Function

Waäre nett wenn ihr mir hlfen könntet

mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Jul 22, 2007 11:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Als erstes fällt mir folgendes auf Graphics 1024,768,16,2. Ich kann nur empfehlen, wenn man ein Fensterprogramm erstellt, dass man die Farbtiefe automatisch von Blitz setzen lässt. Das wäre dann Graphics 1024,768,0,2

Als zweites fiel mir auf, dass Flip benutzt wurde. Ich habe festgestellt, dass Flip 1 (also das warten auf VSync) sehr viel Recourcen benötigt (>40 % Rechenpower auf meinem Rechner). Flip 0 mit timer=CreateTimer(120) bereits mehr 0 % als 1 % Rechenpower verschwendet wird, obwohl mehr Frames berechnet werden.

Dem Rest gegenüber würde es uns viel weiter helfen, welche Funktion nun verbugt sein soll. So müssten wir uns dein kompletten Code im Kopf zusammenarbeiten und den Fehler finden. Ein paar Zeilen Fremdcode kann man ja noch im Kopf zusammentragen, aber so ist es schon ein bisschen nervig.^^
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

mas93

BeitragSo, Jul 22, 2007 11:54
Antworten mit Zitat
Benutzer-Profile anzeigen
ok danke.
Es geht ,denke ich, vor allem um die funktionen fallen und rutschen.

mfg
mas93
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group