1.Problem mit Fortsetzen der Laufschrift/2.Problem mit Figur
Übersicht

QuäinyBetreff: 1.Problem mit Fortsetzen der Laufschrift/2.Problem mit Figur |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich hab ein Problem, sobald ich enter klicke, bleibt alles stehen die schrift läuft nicht mehr von links nach rechts bzw. von rechts nach links und die farbe ändert sich nicht mehr, das ist ziemlich blöd. was muss ich schreiben damit das laufend flüssig weiter läuft??(das ist der 1.Code)
...bei 2.Code kann die Figur nach rechts gehen und auch stehen bleiben. das läuft reibungslos.doch wenn ich nach links klicke, zeigt er "illigall memory adress" an.ich versteh nicht warum!!! Bei Vorschlägen irgendwelche Befehle kürzer zu schreiben, würde ich mich sehr freuen!!! Code: [AUSKLAPPEN] Graphics 1280, 1024
SetBuffer BackBuffer() ;Dateien hochladen Global Hintergrund=LoadImage("hintergrund.bmp") Global font=LoadFont("chiller.ttf",120) Global bickley=LoadFont("Bickley script.TTF",170) Global bikley=LoadFont("Bickley script.TTF",50) Global arial=LoadFont("arial.ttf",30) Global harlow=LoadFont("harlow solid italic.ttf",50) Global hintergrundmusik=LoadSound("Homis.wav") Global counter;damit counter auch anzezeigt wird ;##################################################### ;Funktionen (Verlinkungen) Function steuerung() Repeat If KeyHit(28) Then flag =1-flag If flag=1 Then If counter = 3 Then Text 710,540, ("--->Steuerung") Text 860,640,("Musik") EndIf EndIf Flip Until KeyHit(28) End Function LoopSound hintergrundmusik channel=PlaySound (hintergrundmusik) ;#################################################### ;damit sich Schrift bewegt Local x=2 Local s=2 Local c=-2 Local t=900 Repeat If KeyHit(28) Then steuerung Color 255,100,0 TileImage hintergrund SetFont font kh=KeyDown(208) And KeyDown(200) ;Farbe verändern rgb = rgb + rgbplus If rgb = 0 Then rgbplus = -5 If rgb = 255 Then rgbplus = 5 ; Die Umrandung malen Color 164 - rgb, 117 - rgb, 94 - rgb Rect rectx - 2, recty - 2, laenge + 4, 90, 1 Color rgb, rgb, rgb Rect rectx, recty, laenge, 86, 1 If KeyHit (208) counter =counter + 1 EndIf If KeyHit (200) counter =counter - 1 EndIf If counter >6 Then counter = 1 If counter <1 Then counter = 6 ;;; Highscoore zeigen If counter = 2 And kh Then game= 1 If counter = 3 And kh Then game=1 If counter = 4 And kh Then game= 1 ;;; game starten If counter = 5 And kh Then Beenden=1;;; game beenden If counter = 6 And kh Then ende=1 If counter = 1 And kh Then viewhiscore=1 Color 255,100,0 Text 400,340, "Neues Spiel" Text 400,440, "Spiel laden" Text 440,540, "Optionen" Text 500,640, "Hilfe" Text 400,740, "Mitwirkende" Text 450,840, "Beenden" Select counter Case 1 rectx = 570 - (Len("Neues Spiel") * 32 / 2) - 10 recty = 350 laenge = Len("Neues Spiel") * 32 + 20 Case 2 rectx = 570 - (Len("Spiel laden") * 32 / 2) - 10 recty = 450 laenge = Len("Spiel laden") * 32 + 20 Case 3 rectx = 570 - (Len("Optionen") * 32 / 2) - 10 recty = 550 laenge = Len("Optionen") * 32 + 20 Case 4 rectx = 570 - (Len("Hilfe") * 32 / 2) - 10 recty = 650 laenge = Len("Hilfe") * 32 + 20 Case 5 rectx = 580 - (Len("Mitwirkende") * 32 / 2) - 10 recty = 750 laenge = Len("Mitwirkende") * 32 + 20 Case 6 rectx = 580 - (Len("Beenden ") * 32 / 2) - 10 recty = 850 laenge = Len("Beenden ") * 32 + 20 End Select x = x+s If x = 2 Or x =420 s = 0 EndIf Text x,30, "Die Homis" t=t+c If t=400 Or t=900 c=0 EndIf Text t,120,"in Belleville" Flip Until KeyHit(1) Code: [AUSKLAPPEN] Graphics 800, 600, 16, 2 SetBuffer BackBuffer() ;Variable BILD muss nur einmal mit dem Handle vom Image geladen werden bild = LoadAnimImage("figur2.bmp", 15, 35, 0, 4) bild2 = LoadAnimImage("figur3.bmp", 15, 35, 0, 4) ;Auch MaskImage bleibt erhalten und muss nicht in einer Schleife wiederholt werden MaskImage bild, 0, 255, 0 ;Hier wird (wie von Xeres beschrieben) eine Framebegrenzung eingestellt timer=CreateTimer(5) While Not KeyHit(1) If KeyDown (205) n=(n+5) Mod 4 x=x+5 DrawImage bild2, x, 100,n If KeyDown(203) n=(n-5) Mod 4 x=x-5 DrawImage bild, x, 100,n Color 0,0,0 If KeyDown(203)=0 And KeyDown(205) = 0 Then EndIf Rect 0,254, 800, 300 ,1 ;Hier wird auf Maximal der eingestellten Framebegrenzung gewartet WaitTimer(timer) ;Filp mit 0 als Parameter wartet nicht mehr auf VSync und entlastet den Prozessor ENORM Flip 0 Cls Wend End |
||
- Zuletzt bearbeitet von Quäiny am Fr, Apr 11, 2008 15:43, insgesamt einmal bearbeitet
![]() |
hamZtaAdministrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ad Problem 1:
Wie im Chat besprochen würde ich das ganze so lösen: Code: [AUSKLAPPEN] Global flag = 0
Repeat If KeyHit(28) flag = 1 - flag If flag = 1 Then If counter = 3 Then Text 710,540, ("--->Steuerung") Text 860,640,("Musik") EndIf EndIf Until KeyHit(1) |
||
Blog. |
Lador |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zu Problem2:
Bei mir steht da 'Image frame out of range' und nichts von 'Illegal memory address'. Hast du schon einmal an eine Richtige Bewegungsroutine gedacht? BladeRunner hat einmal etwas über animieren mithilfe von MilliSecs() geschrieben. Benutz doch mal die Forensuche. Code: [AUSKLAPPEN] If KeyDown(203)=0 And KeyDown(205) = 0 Then
EndIf Erscheint mir unsinnig. Code: [AUSKLAPPEN] kh=KeyDown(208) And KeyDown(200)
Gibt es diese Schreibweise? Wenn man es dann mit 'If kh Then...' benutzt? Wäre neu für mich. Mit einer 'richtigen' Bewegungsroutine meine ich: -Animieren mit MilliSecs() -statt 'n=(n+5) Mod 4 x=x+5' lieber 'n=n+1' und 'x=x+5' benutzen -es nicht von einem Timer abhängig zu machen Auch wenn das jetzt nur ein Test sein soll, denk da doch mal drüber nach. MFG Lador |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group