Bildschirm Bewegen Script - 2 Probleme

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

nobf

Betreff: Bildschirm Bewegen Script - 2 Probleme

BeitragMo, Dez 06, 2004 22:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Problem 1:
Wenn ich meine Spielfigur durch die ForSchleife bewegen will, zeigt er immer nur ein Bild an welches er schiebt, er soll aber alle 3 zeigen.

Problem 2:
Wenn ich nach rechts gehen will sagt der immer "Image frame out of range". Ich denke er will mir damit sagen, dass das Bild in mehr im Fenster/sichtbaren Berreich ist, aber ich kann mir absolut nicht erklären wie das gehen soll(Schaut euch den Code an und ihr versteht vllt. was ich mein). Ich glaube der Fehler liegt irgendwo ab dem Kommentar Links. Ich hab dabei nur die Befehle für rechts kopiert und passend geändert...

BlitzBasic: [AUSKLAPPEN]
Graphics 640, 480
SetBuffer BackBuffer()

;Lade Grafiken, definier Variablen etc.
klempner = LoadAnimImage(\"klempner.png\",32,32,0,5)

ClsColor 0,153,255

Repeat
Cls

;Abfragen ob Ebene gewechselt wird
If (change = 1) Then
hero_x = 0
change = 0
EndIf

;Berreich ausgeben
Color 0,0,0
Select berreich
Case 0
Text 1,1,\"Berreich: 0\"
Case 1
Text 1,1,\"Berreich: 1\"
Case 2
Text 1,1,\"Berreich: 2\"
Case 3
Text 1,1,\"Berreich: 3\"
End Select

Text 1,20,\"Hero X:\" + hero_x

;Map dingsen(Hierbei wird eigentlich der Bereich abgefragt)
Color 106,255,0
Rect 0,316,640,164
DrawImage klempner,hero_x,284,1

;Bewegen
If (KeyDown(205)) Then ;Rechts

If (hero_x > 608) Then
If(berreich < 3) Then
berreich = berreich + 1
change = 1
Else
hero_x = 608
EndIf
Else
For i=0 To 2
hero_x = hero_x + 1
DrawImage klempner,hero_x,284,i
Next
EndIf

;FEHLER

ElseIf (KeyDown(203)) Then ;Links

If (hero_x < 32) Then
If(berreich > 0) Then
berreich = berreich + 1
change = 1
Else
hero_x = 32
EndIf
Else
For i=3 To 5
hero_x = hero_x - 1
DrawImage klempner,hero_x,284,i
Next
EndIf

EndIf

Flip
Until KeyHit(1)
End


user posted image
 

Gerhard

BeitragMo, Dez 06, 2004 23:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu Problem 1:
Bevor du zu deinem Flip (also zum Anzeigen auf dem Bildschirm) kommst, gehst du komplett (!) durch deine for-Schleife. Dann steht diese naturgemäß auf dem letzten i. Und das wird angezeigt.

Zu Problem 2:

Du hast oben den Klempner mit 5 Bildern geladen (also Bild 0 bis Bild 4).
Unten rufst du aber Bild 5 ab. Und das fehlt logischerweise.

nobf

BeitragDi, Dez 07, 2004 18:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, das Flip erst das momentane Endresultat im Backbuffer zeigt hab ich nicht beachtet Confused

Zu Problem 2:
Ja, klappt.


BlitzBasic: [AUSKLAPPEN]
klempner = LoadAnimImage(\"klempner.png\",32,32,1,6)

Der sagt mir immer "not enough parameter", aber wenn ich die 1 durch eine 0 ändere klappts oO.
 

azureuz

BeitragDi, Dez 07, 2004 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Datei = beliebige Grafikdatei evtl. mit Pfad (Bmp, Jpg, Png, Pcx, Tga, Iff)
Breite = Breite jedes Animationsbildes in Pixel
Höhe = Höhe jedes Animationsbildes in Pixel
Start = Startframe (normalerweise 0)
Frames = Anzahl der Animationsbilder


Wink

nobf

BeitragDi, Dez 07, 2004 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
azureuz hat Folgendes geschrieben:
Zitat:
Datei = beliebige Grafikdatei evtl. mit Pfad (Bmp, Jpg, Png, Pcx, Tga, Iff)
Breite = Breite jedes Animationsbildes in Pixel
Höhe = Höhe jedes Animationsbildes in Pixel
Start = Startframe (normalerweise 0)
Frames = Anzahl der Animationsbilder


Wink


So schlau war ich auch schon, aber wieso nimmt der 1 bei Startframe nicht an aber 0?
 

azureuz

BeitragDi, Dez 07, 2004 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
ich schätze mal wei ldas bild bei 0 anfängt.
hast du mla probiert den startframe auf 3 oder so zu setzen?

nobf

BeitragDi, Dez 07, 2004 19:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, klappt nicht =/
Teste mal:
BlitzBasic: [AUSKLAPPEN]
Graphics 640,480
SetBuffer BackBuffer()
bild = LoadAnimImage(\"bla.bmp\",1,1,0,6)
bild2 = LoadAnimImage(\"bla.bmp\",1,1,1,6)
DrawImage bild,1,1
DrawImage bild2,50,50
WaitKey
End


Kommt da ein Fehler bei dir?
 

getlose

BeitragDi, Dez 07, 2004 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Graphics 640,480 
SetBuffer BackBuffer()
bild = LoadAnimImage(\"bla.bmp\",1,1,0,6)
bild2 = LoadAnimImage(\"bla.bmp\",1,1,1,6)
DrawImage bild,1,1
DrawImage bild2,50,50
Flip
WaitKey
End


hast flip vergessen

nobf

BeitragDi, Dez 07, 2004 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Leider ändert das nichts an der Tatsache, dass der Fehler immer noch kommt =(

DA

BeitragDi, Dez 07, 2004 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,

Bei mir geht's?

Thx
DarkAngel
Deutscher Blitz Basic Chat

nobf

BeitragDi, Dez 07, 2004 21:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Komisch, mein Compiler nimmt das irgendwie nicht an...
Jedenfalls kann ich damit leben =9

D2006

Administrator

BeitragDi, Dez 07, 2004 21:35
Antworten mit Zitat
Benutzer-Profile anzeigen
ich tippe auf:
nobf ... BlitzPlus
DarkAngel ... Blitz2D

start muss halt immer auf 0 sein, bei B+. was solls

MfG

DA

BeitragDi, Dez 07, 2004 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,

Ne, ich habe BlitzPlus.
Aber ich habe mich vertan, klappt doch nicht schuldigung.


Thx
DarkAngel
Deutscher Blitz Basic Chat

nobf

BeitragDi, Dez 07, 2004 22:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Und ich habe 3D
Da haste leicht falsch geraten ^^

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group