Paprika's problemlist ^^
Übersicht

PaprikaBetreff: Paprika's problemlist ^^ |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
THX!
das mitm viewport hat geklappt Code: [AUSKLAPPEN] Viewport 50,20,700,290
loopsound hab ich nun auch hinbekommen ![]() 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 ![]() ![]() thx 4 help gruß paprika |
||
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
oh man ich glaub das wars ... ![]() n00bfehler ... und selber schuld wenn ma net ordentlich prüft was los is ... thx Ctuchik |
||
Paprika |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() 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 ![]() 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 ![]() greezt paprika |
||
![]() |
theBlade |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Generell kannst du Abfragen bei denen der Wert True ist einfach mit
if vari ; blabla endif statt if vari=true ; blabla endif abfragen |
||
Paprika |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() 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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. |
||
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
regaa |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
oh stimmt ... habs nichmehr bedacht ... also ein feld mit 2y und 21x wär bzw is dim(1,20) ![]() edit: und es geht ![]() |
||
- Zuletzt bearbeitet von Paprika am Di, März 02, 2004 23:05, insgesamt 2-mal bearbeitet
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group