Paprika's problemlist ^^

Übersicht BlitzBasic Allgemein

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Paprika

Betreff: Paprika's problemlist ^^

BeitragSa, Feb 28, 2004 3:34
Antworten mit Zitat
Benutzer-Profile anzeigen
hi!
ich hab zur zeit noch die blitz plus demo evtl liegt da das eine oder andere an dem ...

auf jedenfall hab ich folgende probs:

1.
Code: [AUSKLAPPEN]

SetBuffer BackBuffer()
Cls
Color 255,0,0
Rect 0,0,800,2,1
Rect 0,0,2,600,1
Rect 0,598,800,600,1
Rect 798,0,800,600,1
Color 255,255,255
Text 400,470,"press space to countinue",1
Viewport 50,20,750,290


er zeigt mir hierbei zwar alle 4 linien an, jedoch an der stelle rechts vom viewport wird die linie am rechten bildschirmrand einfach unterbrochen ... ich hab schon versucht den viewport kleiner zu machen, ging aber nich weg. why?

2.
Code: [AUSKLAPPEN]

music=LoadSound("sfx/sonar.wav")
LoopSound music

hier sollte ja eigentlich der sound als loop abgespielt werden. er wird aber garnich abgespielt... wenn ich drunter "PlaySound music" schreib wirds nich wirklich besser... er spielt den sound dann nur einmal ab. ...

und zu guter letzt noch nummero 3

[code]
courser()
bg=LoadImage("gfx/background.bmp")
menu=LoadAnimImage("gfx/menu.bmp",300,50,0,8)
MaskImage menu,255,0,255

SetBuffer BackBuffer()
Cls
DrawImage bg,0,0
mx=MouseX():my=MouseY():mb=MouseHit(1)

If RectsOverlap(mx,my,10,10,350,250,300,50)
DrawImage menu,350,250,1
Else
DrawImage menu,350,50,0
EndIf ... rest aufm screene
[/code ]

das is jetz eigentlich mein menü... aber irgendwie ... geht das nich so
aber sehr selbst: screen


thx 4 help

greetz
paprika

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Feb 28, 2004 10:37
Antworten mit Zitat
Benutzer-Profile anzeigen
ich glaube mal das das doch am viewport liegt
Viewport 50,20,750,290
der bereich den du jetzt zum malen benutzt liegt auf der x position
von 50 -800
deswegen wird der Rand auch übermalt

Code: [AUSKLAPPEN]
Viewport 50,20,700,290
so sollte es funzenCode: [AUSKLAPPEN]
Graphics 800,600,16,2
SetBuffer BackBuffer()
Cls
Color 255,0,0
Rect 0,0,800,2,1
Rect 0,0,2,600,1
Rect 0,598,800,600,1
Rect 798,0,800,600,1
Color 255,255,255 Flip
Text 400,470,"press space to countinue",1
ClsColor 0,0,255
Viewport 50,20,0,290
Cls
Flip :WaitKey

Alledings Blitz 2D 1.80

beim Abspielen der Music mußt du noch einen weiteren befehl nutzen
Code: [AUSKLAPPEN]
music=LoadSound("sfx/sonar.wav")
LoopSound music
playsound (Music)

hier nachzulesen
http://www.blitzbase.de/befehle2d/loopsound.htm
[BB2D | BB3D | BB+]

Ctuchik

BeitragSa, Feb 28, 2004 10:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Beim 3ten Problem musst du eine Schleife machen, sonst wird das menü nur einmal durchlaufen und dann endet das Programm!
Code: [AUSKLAPPEN]

courser()
bg=LoadImage("gfx/background.bmp")
menu=LoadAnimImage("gfx/menu.bmp",300,50,0,
MaskImage menu,255,0,255
Local button1 = False
Local button_geklickt = 0

SetBuffer BackBuffer()
Cls

While button_geklickt = 0
  DrawImage bg,0,0
  mx=MouseX():my=MouseY():mb=MouseHit(1)
  If mb And RectsOverlap(mx,my,10,10,350,250,300,50)
    DrawImage menu,350,250,1
    button1 = True
  Else
    DrawImage menu,350,250,0
    If button1 = True Then button_geklickt = 1
  EndIf
Wend

TheShadow

Moderator

BeitragSa, Feb 28, 2004 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
ich weiß noch die frühere bb+ version hatte einen bug in viewport... jetzt ist mir kein richtiger bug bekannt...
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Edlothiol

BeitragSa, Feb 28, 2004 13:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Zum 3. Problem: Falls du den Text meinst, der zu weit rechts ist, dann zieh einfach imagewidth(textbild)/2 von der X - Position ab. Also
Code: [AUSKLAPPEN]
DrawImage dastextbild, textx - ImageWidth(dastextbild)/2, texty

Ich weiß aber nicht wo du den zeichnest.
 

Paprika

BeitragSa, Feb 28, 2004 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
THX!

das mitm viewport hat geklappt
Code: [AUSKLAPPEN]
Viewport 50,20,700,290


loopsound hab ich nun auch hinbekommen Smile
Code: [AUSKLAPPEN]
snd=LoadSound("sfx/sonar.wav")
LoopSound(snd)
PlaySound (snd),1


aber das mitm menü, das ding will immer noch nich
Code: [AUSKLAPPEN]
Function gmenu()
courser()
bg=LoadImage("gfx/background.bmp")
menu=LoadAnimImage("gfx/menu.bmp",300,50,0,8)
MaskImage menu,255,0,255

Local button = False
Local geklickt = 0

SetBuffer BackBuffer()
Cls

While geklickt = 0
   DrawImage bg,0,0
   mx=MouseX():my=MouseY():mb=MouseHit(1)
   If mb And RectsOverlap(mx,my,10,10,350,250,300,50)
      DrawImage menu,350,250,1
      button = True
   Else
      DrawImage menu,350,50,0
      If button = True Then geklickt = 1
   EndIf

   If RectsOverlap(mx,my,10,10,350,300,300,50)
      DrawImage menu,350,300,3
      button = True
   Else
      DrawImage menu,350,50,2
      If button = True Then geklickt = 1
   EndIf

   If RectsOverlap(mx,my,10,10,350,350,300,50)
      DrawImage menu,350,350,5
      button = True
   Else
      DrawImage menu,350,50,4
      If button = True Then geklickt = 1
   EndIf

   If RectsOverlap(mx,my,10,10,350,400,300,50)
      DrawImage menu,350,400,7
      button = True
   Else
      DrawImage menu,350,50,6
      If button = True Then geklickt = 1
   EndIf
   
   If KeyDown(1)
   End
   End If
Wend
Flip
End Function

Sad Sad screen hier is zwar noch n älterer code im hintergrund aber es is immer noch der gleiche fehler ...


thx 4 help

gruß
paprika
 

Edlothiol

BeitragSa, Feb 28, 2004 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei den 3 letzten If - Abfragen fehlt das mb And ..., oder? Also z.B. hier:
Code: [AUSKLAPPEN]
If --->mb And<--- RectsOverlap(mx,my,10,10,350,300,300,50)
      DrawImage menu,350,300,3
      button = True
   Else
      DrawImage menu,350,50,2
      If button = True Then geklickt = 1
   EndIf
 

Paprika

BeitragSa, Feb 28, 2004 15:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Edlothiol hat Folgendes geschrieben:
Bei den 3 letzten If - Abfragen fehlt das mb And ..., oder? Also z.B. hier:
Code: [AUSKLAPPEN]
If --->mb And<--- RectsOverlap(mx,my,10,10,350,300,300,50)
      DrawImage menu,350,300,3
      button = True
   Else
      DrawImage menu,350,50,2
      If button = True Then geklickt = 1
   EndIf


args ^^ kommt wenn man nur abschreibt und net mitdenkt ^^

moment ich korrigier das ma schnell

Ctuchik

BeitragSa, Feb 28, 2004 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
noch was: 1. das Flip sollte in die Schleife rein

2. Warum machst du:
If mb And RectsOverlap(mx,my,10,10,350,250,300,50)
DrawImage menu,350,250,1 <- Das Bild hier an einer anderen Position ...
button = True
Else
DrawImage menu,350,50,0 <- ...als hier?
If button = True Then geklickt = 1
EndIf

3. Wenn du dann hinterher abfragen willst welcher Button geklickt wurde wäre es praktisch, wenn du die Variable 'geklickt' je nach Button auf ne andere Zahl setzt!
Also beim ersten auf 1, beim zweiten auf 2, usw.

mfG Ctuchik
 

Paprika

BeitragSa, Feb 28, 2004 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
oh man ich glaub das wars ... Sad

n00bfehler ... und selber schuld wenn ma net ordentlich prüft was los is ...

thx Ctuchik
 

Paprika

BeitragSa, Feb 28, 2004 23:13
Antworten mit Zitat
Benutzer-Profile anzeigen
zwecks leveldesign...

welche formate wären denn für levels günstig?
ganz normale bilder oder gibts da was besseres?
die sicht auf das level is seitlich, so wie zum beispiel in Super Mario Brs.

thx 4 help

Hubsi

BeitragSo, Feb 29, 2004 14:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Da empfiehlt sich eine Tileengine. Das schont den Grakaspeicher und die Kollisionsprüfung läßt sich mathematisch recht einfach lösen, was die CPU höchstens langweilt. Zudem läßt sich auch sehr einfach herausfinden mit welchen Tiles die Spielfigur rundum kollidiert um danach zu entscheiden was zu tun ist (Sprungbretter, Powerups, etc.)
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Paprika

BeitragSo, Feb 29, 2004 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
hm ok ... und wo bekomm ich sone tileengine her? bzw was muss ich beim schreiben beachten? evtl tuts?

mal zu was anderem

ich hab jetz als level nur mal ne BMP ... bewegter hintergrund auf tastendruck sozusagen Smile
jedoch möchte ich das so, das blitz für meinen hero wenn ich #205 wieder loslasse automatisch wieder frame 0 zeichnet... irgendwie klappt das nich so...

Code: [AUSKLAPPEN]

While Not KeyDown(1) = True
   If KeyDown(205) = True
      Cls
      heroframe = -heroframe +1
      DrawImage level,lvlx,lvly
      DrawImage   hero,herox,heroy,heroframe
      If herox < 60 Then herox = herox + 5
      If lxlx > -800 Then lvlx = lvlx -8
   EndIf
   If KeyDown(205) = False Then heroframe = 0
Flip
Wend


edit: hat sich erledigt Wink
Code: [AUSKLAPPEN]

   If KeyDown(205) = True
      Cls
      heroframe = -heroframe +1
      DrawImage level,lvlx,lvly
      DrawImage   hero,herox,heroy,heroframe
      If herox < 60 Then herox = herox + 5
      If lxlx > -800 Then lvlx = lvlx -8
   Else
      Cls
      heroframe = 0
      DrawImage level,lvlx,lvly
      DrawImage   hero,herox,heroy,heroframe
   EndIf


aber das mit der tilemap das gilt noch Wink
greezt
paprika

theBlade

BeitragMo, März 01, 2004 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.robsite.de, blitz basic tuts, dann die von BlitzMaster. die sind für einsteiger eigentlich recht gut geeignet.
"Ich bin wie ich bin. Die einen kennen mich, die anderen können mich." (Dr. Konrad Adenauer)

UTFSB -> (use the fuckin "suchen"-button)

User posted image <- link -.-

regaa

BeitragDi, März 02, 2004 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Generell kannst du Abfragen bei denen der Wert True ist einfach mit
if vari
; blabla
endif

statt

if vari=true
; blabla
endif

abfragen
 

Paprika

BeitragDi, März 02, 2004 22:18
Antworten mit Zitat
Benutzer-Profile anzeigen
das is mir zu kurz ... ^^ noch
mir isses lieber wenn da mehr steht, dann seh ich besser was da passiert und das muss mir net unheimlich vorkommen ausserdem schreib ich noch noch nich lang und es macht noch nich wirklich sinn etwas abzukürzen weil ich sonst mit den gedanken schneller wäre als mit dem tippen Smile

hab n anderes prob ... und zwar die tilemaps ^^ jo
ich bekomm immer die Fehlermeldung "Array index out of bounds" was heißt das?

Code: [AUSKLAPPEN]
Graphics 1024,768,16,1

tileset = LoadAnimImage("tileset.bmp",32,32,0,5)
Dim map(2,20)

Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

For y = 0 To 2
   For x = 0 To 20
      Read map(x,y)
   Next
Next

Repeat
   SetBuffer BackBuffer()
   Cls
   If KeyDown(1) Then End
      For y = 0 To 2
         For x = 0 To 20
         DrawImage tileset,x*32,y*32,map(x,y)
         Next
      Next
   Flip
Forever

soweit ich jetz weiß is Dim so aufgebaut: Dim(y,x) ist das richtig? weil wenn ich Dim(20,2) angeb kommt out of data ... was mir in dem fall logisch is. aber warum functioniert das dann nich wenn ich dim(20,2) mach? muss dim immer eine quadratische fläche definieren?

thx so long

paprika

edit: der code kommt von blitzmaster oder so ... thx ² theblade

regaa

BeitragDi, März 02, 2004 22:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Dim map(2,20) heißt du hast n 2 Dimensionalles Array, der eben 3 mal 21 werte fassen kann. Du hast aber nur 2 Data Sätze definiert. Deswegen fehlen eben da die werte und du kannst es nicht mit

Code: [AUSKLAPPEN]

For y = 0 To 2
   For x = 0 To 20
      Read map(x,y)
   Next
Next


einlesen.

Holzchopf

Meisterpacker

BeitragDi, März 02, 2004 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
du hast 2 zeilen gespeichert, gehst aber in der For y - Schleife 3 Zeilen durch... (0, 1, 2)

Code: [AUSKLAPPEN]

Graphics 1024,768,16,1

tileset = LoadAnimImage("tileset.bmp",32,32,0,5)
Dim map(20,2)

Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1

For y = 1 To 2 ;<<<<< Hier
   For x = 0 To 20
      Read map(x,y)
   Next
Next

Repeat
   SetBuffer BackBuffer()
   Cls
   If KeyDown(1) Then End
      For y = 1 To 2 ;<<<<< Hier
         For x = 0 To 20
         DrawImage tileset,x*32,y*32,map(x,y)
         Next
      Next
   Flip
Forever


Ausserdem hast du ein Dim-Feld definiert, welches 3 Felder breit und 21 Felder hoch ist, in den For-Schleifen (zum einlesen und zeichnen) gehst du allerding 21 Felder in die Breite und 3 Felder in die Höhe.
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

regaa

BeitragDi, März 02, 2004 22:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Holzchopf hat Folgendes geschrieben:
Ausserdem hast du ein Dim-Feld definiert, welches 3 Felder breit und 21 Felder hoch ist, in den For-Schleifen (zum einlesen und zeichnen) gehst du allerding 21 Felder in die Breite und 3 Felder in die Höhe.


Code: [AUSKLAPPEN]

Dim map(20,2)

For y = 1 To 2 ;<<<<< Hier
   For x = 0 To 20
      Read map(x,y)
   Next
Next


Naja, gut, was nun Breite und Höhe ist, ist ja auch egal, auf jeden Fall entspricht die Deklaration der Zuweisung in der For Schleife. Also, deswegen an der Stelle ist kein Fehler.
 

Paprika

BeitragDi, März 02, 2004 22:58
Antworten mit Zitat
Benutzer-Profile anzeigen
oh stimmt ... habs nichmehr bedacht ... also ein feld mit 2y und 21x wär bzw is dim(1,20) Smile

edit: und es geht Smile
  • Zuletzt bearbeitet von Paprika am Di, März 02, 2004 23:05, insgesamt 2-mal bearbeitet

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group