screen nich so breit wie gedacht <- erledigt

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

diGGa

GruppenKaspar

Betreff: screen nich so breit wie gedacht <- erledigt

BeitragFr, März 25, 2005 22:33
Antworten mit Zitat
Benutzer-Profile anzeigen
ho.
ich hab per
graphics 800,600,32,2
das bild initialisiert. es ist aber nur ca 760 px breit.
bemerkbar macht sich das zB wenn ich

BlitzBasic: [AUSKLAPPEN]

Global fnt_failure = LoadFont(\"verdana\",46,True,False,False)
SetFont fnt_failure
Text 400-(StringWidth(fnt_failure)/2),300-(FontHeight ()/2), \"Y O U H A V E F A I L E D\"


mache.. der text is nicht in der mitte sondern leicht nach rechts verschoben. auch bei der bewegung der figur stimmt es nicht...

ich muss anstatt

BlitzBasic: [AUSKLAPPEN]

If player_x < 790 Then
If KeyDown(key_right) Then
player_x = player_x + player_speed
End If
End If


dies hier machen:

BlitzBasic: [AUSKLAPPEN]

If player_x < 750 Then
If KeyDown(key_right) Then
player_x = player_x + player_speed
End If
End If


wodran könnte das liegen?
is vollbild und im fenster gleich. auch wenn ich auf 1024x769 gehe isses das gleiche (also per graphics)
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram
  • Zuletzt bearbeitet von diGGa am Sa, März 26, 2005 17:15, insgesamt einmal bearbeitet

Bigmichi

BeitragFr, März 25, 2005 22:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Also bei mir stimtm alles kansnt du ja testen mom


BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,16,2
SetBuffer BackBuffer()


Global X



While Not KeyHit(1)

Color 255,255,128

Rect X,0,1,600

If KeyDown(205) X = X + 1

Text 10,10,X

Flip
Cls
Wend
End

diGGa

GruppenKaspar

BeitragFr, März 25, 2005 23:01
Antworten mit Zitat
Benutzer-Profile anzeigen
ja da passt bei mir auch alles...
hier mal mein code

BlitzBasic: [AUSKLAPPEN]
Graphics 800,600,32,2 
SetBuffer BackBuffer()
fpstimer = CreateTimer(60)

;keys
Global key_left = 203
Global key_right = 205
Global key_space = 57

;ressourcen laden
Global img_ship = LoadImage(\"player.bmp\") : MaskImage img_ship, 255, 0, 255
Global img_laser = LoadAnimImage(\"laser.bmp\",12,3,0,1) : MaskImage img_laser, 255, 0, 255
Global img_asteroid = LoadAnimImage(\"asteroid.png\",100,100,0,20)
Global img_stars = LoadImage(\"stars.bmp\")

Global snd_laser = LoadSound(\"laser.wav\")
Global snd_asteroid = LoadSound(\"asteroid.wav\")

Global fnt_score = LoadFont(\"verdana\",14,True,False,False)
Global fnt_failure = LoadFont(\"verdana\",46,True,False,False)

;eigenschaften
Const player_start_x = 400 - 22
Global player_x = player_start_x
Const player_start_y = 600 - 72
Global player_y = player_start_y

Const player_speed = 6

;etc
Global stars_x#, stars_y#, count_laser, count_asteroid, score, asteroid_timer, asteroid_field
Global field_timer = MilliSecs()
Dim laser(100,2)
Dim asteroid(20,4)

;#############################################################################
;##### hauptschleife ##############################
Repeat
WaitTimer(fpstimer)
Cls

move_bg()
move_player()
move_laser()
move_asteroid()
draw_bg()
draw_player()
draw_laser()
draw_asteroid()
draw_score()
col_request()
field_trigger()


Flip
Until KeyHit(1)
End

;#############################################################################
;##### funktionen ##############################
Function move_bg()
stars_y# = stars_y# + 2
stars_x# = stars_x# - 0.5
End Function

Function move_player()
If player_x > 10 Then
If KeyDown(key_left) Then
player_x = player_x - player_speed
End If
End If

If player_x < 750 Then
If KeyDown(key_right) Then
player_x = player_x + player_speed
End If
End If
End Function

Function move_laser()
If KeyHit(key_space) Then
count_laser = count_laser + 1
If count_laser = 100 Then count_laser = 1
laser(count_laser,0) = True
laser(count_laser,1) = player_x + 16
laser(count_laser,2) = player_y - 5
PlaySound(snd_laser)
End If
End Function

Function move_asteroid()
If asteroid_field = True
If asteroid_timer + 200 < MilliSecs() ;asteroiden auslöser
SeedRnd MilliSecs()
count_asteroid = count_asteroid + 1
If count_asteroid = 20 Then count_asteroid = 1
asteroid(count_asteroid,0) = True
asteroid(count_asteroid,1) = Rnd(20,700)
asteroid(count_asteroid,2) = -100
PlaySound(snd_asteroid)

asteroid_timer = MilliSecs()
End If
End If
End Function

Function draw_bg()
TileBlock img_stars,stars_x#,stars_y#
End Function

Function draw_player()
DrawImage img_ship, player_x, player_y
End Function

Function draw_laser()
For counter=1 To 100
If laser(counter,2) < 0 Then laser(counter,0) = False ;laser löschen wenn aus dem bild
If laser(counter,0) = True Then
laser(counter,2) = laser(counter,2) - 10
DrawImage img_laser, laser(counter,1), laser(counter,2)
End If
Next
End Function

Function draw_asteroid()
For counter=1 To 20
If asteroid(counter,2) > 600 Then asteroid(counter,0) = False ;asteroid löschen wenn aus dem bild
If asteroid(counter,3) + 70 < MilliSecs() Then ;animation
If asteroid(counter,4)=19 Then asteroid(counter,4) = 0
asteroid(counter,4) = asteroid(counter,4) + 1
asteroid(counter,3) = MilliSecs()
End If
If asteroid(counter,0) = True Then ;asteroid malen
asteroid(counter,2) = asteroid(counter,2) +4
DrawImage img_asteroid, asteroid(counter,1),asteroid(counter,2),asteroid(counter,4)
End If
Next
End Function

Function draw_score()
SetFont fnt_score
Text 10,5,\"Abschüsse: \" + score
End Function

Function col_request()
For counter_laser = 1 To 100
If laser(counter_laser,0) = 1 Then ;wenn laser da ist
For counter_asteroid = 1 To 20
If asteroid(counter_asteroid,0) = 1 Then ;wenn asteroid da ist
If ImagesCollide(img_laser,laser(counter_laser,1),laser(counter_laser,2),0,img_asteroid,asteroid(counter_asteroid,1),asteroid(counter_asteroid,2),asteroid(counter_asteroid,4)) Then
laser(counter_laser,0) = 0
asteroid(counter_asteroid,0) = 0
score = score + 1
End If
End If
Next
End If
Next

For counter_asteroid = 1 To 20
If asteroid(counter_asteroid,0) = 1 Then
If ImagesCollide(img_ship, player_x, player_y, 0, img_asteroid, asteroid(counter_asteroid,1), asteroid(counter_asteroid,2), asteroid(counter_asteroid,4)) Then
game_over()
asteroid(counter_asteroid,0) = 0
End If
End If
Next
End Function

Function game_over()
game_failed = 1
If game_failed = 1 Then
Repeat
SetFont fnt_failure
Text 400-(StringWidth(fnt_failure)/2),300-(FontHeight ()/2), \"Y O U H A V E F A I L E D\"
Flip
Until KeyHit(1)
End
End If
End Function

Function field_trigger()
If field_timer + 5000 < MilliSecs() Then
asteroid_field = True
field_timer = MilliSecs()
End If
End Function


vielleicht sieht ja jemand den fehler... ich nich

//edit

wenn ich deinen code bei mir einbau gibt er mir korrekte daten... das problem is nur das die schrift immer falsch angezeigt wird... (beim player is klar... da wird ja von der linken ecke gerechnet)
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram

sbrog

BeitragFr, März 25, 2005 23:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielleicht ist dein Bildschirm verstellt. Allerdings ist mir bei Blitz auch schon aufgefallen, dass über den Rand hinausgezeichnet wird, obwohl sonst alles stimmt.

diGGa

GruppenKaspar

BeitragFr, März 25, 2005 23:42
Antworten mit Zitat
Benutzer-Profile anzeigen
neee ist wie gesagt im fenster und full modus... und wenn ich den code einbau zeigt der auch dir richtigen koordinaten an...

ich versteh das nich

///
hab nun mal n bild als game over screen genommen... das kann er normal berechnen... muss n fehler bei stringwidth sein...
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram
 

Ensign Joe

BeitragSa, März 26, 2005 0:41
Antworten mit Zitat
Benutzer-Profile anzeigen
haste Modus 2 oder 3 als bildschirmmodus?
du kannst es auch von bb aus zentrieren, den text:
Text x,y,text$,Horizontal Zentrieren, Vertikal Zentrieren (einfach auf true setzen und dann als x graphicwidth()/2) und als y graphicsheight()/2
Ich habe jetzt eine Pommesbude aufgemacht am Münchner Hauptbahnhof.
Und da ich Herbert Görgens heiße, heißt diese Pommesbude
Herbert's Pommesbude Smile

diGGa

GruppenKaspar

BeitragSa, März 26, 2005 0:48
Antworten mit Zitat
Benutzer-Profile anzeigen
1 und 2 hatte ich probiert.
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram

Alfadur

BeitragSa, März 26, 2005 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
is doch logisch, ich schätze mal dein bild ist einfach 40 oder 50 pixel breit, da du nicht midhandle gemacht hast ist der punkt des bildes der für die ganzen berechnungen gebraucht wird oben links und nicht mittig. das mußte natürlich beachten...
A Cray is the only computer that runs an endless loop in less than four hours.

diGGa

GruppenKaspar

BeitragSa, März 26, 2005 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
liest hier eigentlich kein schwein durch was geschrieben wird?

diGGa hat Folgendes geschrieben:

wenn ich deinen code bei mir einbau gibt er mir korrekte daten... das problem is nur das die schrift immer falsch angezeigt wird... (beim player is klar... da wird ja von der linken ecke gerechnet)
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram

Bigmichi

BeitragSa, März 26, 2005 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Fehler daran ist nicht ein Bug von BB sondern ein Fehler in dir :p du kannst net mal die Befehle richtig benutzen Wink find den Fehler selber raus und sag net BB hätte fehler...

Alfadur

BeitragSa, März 26, 2005 16:55
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du dir mal die onlinehilfe zu stringwidth angeschaut hättest, dann wüßtest du evtl schon was du falsch machst. aber ich bin ja nicht so ...

in der oh steht :
Breite=STRINGWIDTH (Text$)

du hast gemacht :
SetFont fnt_failure
Text 400-(StringWidth(fnt_failure)/2),300-(FontHeight ()/2), "Y O U H A V E F A I L E D"

na? naaa??
A Cray is the only computer that runs an endless loop in less than four hours.

diGGa

GruppenKaspar

BeitragSa, März 26, 2005 17:15
Antworten mit Zitat
Benutzer-Profile anzeigen
aja
kleiner flüchtigkeitsfehler xD
Gestern Nacht Schlug der Regen an mein Fenster
Ich ging durch das dunkle Zimmer und
glaubte im Licht der Straßenlampe
Den Geist unseres jahrhunderts auf der
Straße zu sehen
Der uns sagte, daß wir alle am Rande
des Abgrunds stehen.
- Al Steward


Athlon 64 3000+ / Radeon 9600 / 1024mb ddram

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group