Fallen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

joni8a

Betreff: Fallen

BeitragMi, Nov 08, 2006 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, ich möchte ein programm schreiben wo eine spielfigur herunter fällt wenn er nicht mehr auf einem stein steht.

So sieht der code immoment aus:

Code: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()

Global pr=LoadImage("pr.bmp")
Global pl=LoadImage("pl.bmp")
Global g=LoadImage("g1.bmp")
Global bro=LoadImage("bro.bmp")
Global sil=LoadImage("sil.bmp")
Global s=LoadImage("s1.bmp")
Global tank=100
Global x=300
Global y=190
Global ok=1
MaskImage s,255,0,255
MaskImage pr,255,0,255
Repeat
Cls
DrawImage s,299,221
DrawImage pr,x,y
If KeyDown(200) Then x=x+1
If ImagesCollide(pr,x,y,0,s,299,221,0) Then ok=1 Else ok=0
If ok=0 Then Repeat
y=y+1
Until ok=1
Flip
Until KeyHit(1)


Nun sind aber zwei sachen aufgefallen erstens ich kann den spieler(pr) nicht genau auf den gegenstand plazeiren, und wenn der spieler den stein nicht mehr berührt bewegt er sich nicht nach unten kann jemand mir den fehler erkälren und vielleicht ein beispielcode geben.

Danke

pixelshooter

BeitragMi, Nov 08, 2006 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
schreib statt deiner Schleifer folgendes:
Code: [AUSKLAPPEN]
...
Repeat
Cls
DrawImage s,299,221
DrawImage pr,x,y
If KeyDown(200) Then x=x+1
If Not ImagesCollide(pr,x,y,0,s,299,221,0) Then y = y + 1

Flip
Until KeyHit(1)

Dein Problem ist: du verschiebst zwar die Koortdinate der spielfigur, aber du zeichnest sie nicht neu ein^^
>> Musikerstellung, Grafik und Design: http://www.pixelshooter.net.tc

ChaosCoder

BeitragMi, Nov 08, 2006 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Fehler war einfach die Schleife und das fehlende Endif.
Denn die Schleife mit y=y+1 wird die ganze Zeit ausgeführt wenn ok=0 ist. In dieser schleife kann ok aber nicht eins werden, womit es zu einer endlosschleife wird. hättest du das endif nach der schleife hingeschrieben, hättest du das bemerkt. so hat er einfach nichts gemacht.
Projekte: Geolaria | aNemy
Webseite: chaosspace.de
 

joni8a

BeitragMi, Nov 08, 2006 16:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, VIELEN dank nun funktionierts
 

joni8a

BeitragMi, Nov 08, 2006 17:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hätte da noch eine frage wie würde ein grundgerüst für ein LVL editor sein

Goodjee

BeitragMi, Nov 08, 2006 17:13
Antworten mit Zitat
Benutzer-Profile anzeigen
ein array wo du die map speicherst, mann kan tiles auswählen und mit der maus platzieren. (dazu braucht man mousex, mousey, mousehit)

und dann ließt du die map aus und speicherst sie in einer datei (dafür brauchst du writeint, writestring usw)
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Schranz0r

BeitragMi, Nov 08, 2006 23:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Erstens:

Editbutton benutzen, keine Doppelposts.
Sonnst gibts ärger mit den Mods hier im Forum.

Zweitens:

Suchfunktion des Forums nutzen, oder ins Codearchiv schauen!
Dann hättest du DAS gefunden.

Ist nicht der beste, aber simpel !
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 

joni8a

BeitragDo, Nov 09, 2006 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe nun meinen eigenen editor programmiert aber ich weiss nicht wie mann .dat dateien erstellt. Muss ich dazu auch den editor benutzen.

joni8a

StepTiger

BeitragDo, Nov 09, 2006 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
r=writefile("File.dat")

das Dateiformat musst du dir selbst ausdenken.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

joni8a

BeitragDo, Nov 09, 2006 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
das verstehe ich nicht hier ist der code vielleicht kannst du es mir daran erklären oder vielleicht findest du einen fehler
Code: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()
Global ende=0
Global datei
Dim map(10,10)
Dim grafik(4)
Global mx=MouseX()
Global my=MouseY()
Global c=1
For x=0 To 9
For y=0 To 9
map(x,y)=1
Next
Next
For x= 1 To 4
grafik(x)=LoadImage("tile"+Str$(x)+".bmp")
Next
While ende=0
Cls
If KeyHit(1) Then datei=WriteFile("map.dat")
For x=0 To 9
For y=0 To 9
WriteLine datei,map(x,y)
Next
Next
CloseFile "map.dat"
ende=1

If KeyHit(2) Then c=1
If KeyHit(3) Then c=2
If KeyHit(4) Then c=3
If KeyHit(5) Then c=4
If c=5 Then c=1
If mx<10*30 Then mx=mx/30
If my<10*30 Then my=my/30
If MouseHit(1) Then map(x,y)=c
For x=0 To 9
For y=0 To 9
DrawBlock grafik(map(x,y)),x*30,y*30
Next
Next
DrawBlock grafik(c),mx*30,my*30
Color 255,0,255
Rect mx*30,my*30,30,30,0
Flip
Wend
End
 

joni8a

BeitragDo, Nov 09, 2006 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe mein broblem gelöst nun habe ich aber ein neues: Warum kann ich die tiles nicht via maus verschieben?3
Code: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()
Global datei
Dim map(10,10)
Dim grafik(4)
Global mx=MouseX()
Global my=MouseY()
Global c=1
For x=0 To 9
For y=0 To 9
map(x,y)=1
Next
Next
For x= 1 To 4
grafik(x)=LoadImage("tile"+Str$(x)+".bmp")
Next
Repeat
Cls
datei=WriteFile("map.dat")
For y=0 To 9
For x=0 To 9
WriteLine datei,map(x,y)
Next
Next
CloseFile datei
If KeyHit(2) Then c=1
If KeyHit(3) Then c=2
If KeyHit(4) Then c=3
If KeyHit(5) Then c=4
If c=5 Then c=1
If mx<10*30 Then mx=mx/30
If my<10*30 Then my=my/30
If MouseHit(1) Then map(x,y)=c
For x=0 To 9
For y=0 To 9
DrawBlock grafik(map(x,y)),x*30,y*30
Next
Next
DrawBlock grafik(c),mx*30,my*30
Color 255,0,255
Rect mx*30,my*30,30,30,0
Flip
Until KeyHit(1)
End
 

joni8a

BeitragDo, Nov 09, 2006 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo kann mir einer sagen warum dieseas code überhaupt nicht funktioniert
Code: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()
Global datei
Dim map(10,10)
Dim grafik(4)
Global mx
Global my
Global ende
Global c=1
For x=0 To 9
For y=0 To 9
map(x,y)=1
Next
Next
For x= 1 To 4
grafik(x)=LoadImage("tile"+Str$(x)+".bmp")
Next
While ende=0
Cls
If KeyHit(1) Then
datei=WriteFile("map.dat")
For y=0 To 9
For x=0 To 9
WriteLine datei,map(x,y)
Next
Next
CloseFile datei
If KeyHit(2) Then c=1
If KeyHit(3) Then c=2
If KeyHit(4) Then c=3
If KeyHit(5) Then c=4
If c=5 Then c=1
If MouseX<10*30 Then mx=MouseX()/30
If MouseY<10*30 Then my=MouseY()/30
If MouseDown(1) Then map(mx,my)=c
EndIf
For x=0 To 9
For y=0 To 9
DrawBlock grafik(map(x,y)),x*30,y*30
Next
Next
DrawBlock grafik(c),MouseX()*30,MouseY()*30
Color 255,0,255
Rect mx*30,my*30,30,30,0
Flip
Wend
End

BladeRunner

Moderator

BeitragDo, Nov 09, 2006 17:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Noch ein Doppel oder Triplepost und ich mach dicht. Du sendest 3mal hintereinander unübersichtlichen, uneingerückten Code ohne eine genaue Fehlerbeschreibung. Das motiviert nicht grade zur Mithilfe.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group