Bürger zufällig auf bürgersteig verteilen (bitte schnelle)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

dimaster

Betreff: Bürger zufällig auf bürgersteig verteilen (bitte schnelle)

BeitragSa, Mai 01, 2004 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich möchte auf meiner map passanten nur auf der zwei also aufm gehsteig zeichnen wie geht dat?ich bin schon den ganzen nachmitag an diesem problem.BITTE HELFT DOCH Evil or Very Mad
 

Affje

BeitragSa, Mai 01, 2004 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Rnd(minimale zahl, maximale zahl)

??

einfach die positionen per zufall würfeln?!?!? meinst du was anderes?
www.drachengarde.tk
Guckst da Hier
 

[SHM]StArMaStEr

BeitragSa, Mai 01, 2004 21:42
Antworten mit Zitat
Benutzer-Profile anzeigen
er meint es so: er hat eine tile map und darauf is ein büprgersteig aus tiles.
jetzt sollen diese bürger nur auf den bürgersteig erstellt werden.
BB-coden was das Zeug hällt!!!!
 

Affje

BeitragSa, Mai 01, 2004 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
achso sagts doch gleich, denn dann kann ich net helfen :-/
www.drachengarde.tk
Guckst da Hier

Hubsi

BeitragSo, Mai 02, 2004 10:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich nehme mal an die Zivis sollen zufällig verteilt werden. Dann gehen wir einfach die ganzen Zivis die erstellt werden sollen durch:
Code: [AUSKLAPPEN]
For i=1 To max_zivis
  Repeat
    x=Rand(0,width)
    y=Rand(0,height)
    If map(x,y)=Bürgersteig
      zivix=x*tilewidth
      ziviy=y*tileheight
      Exit
    EndIf
  Forever
Next
Hoffe das ist das gesuchte Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

storzi

BeitragSo, Mai 02, 2004 11:32
Antworten mit Zitat
Benutzer-Profile anzeigen
erstmal per zufall bestimmen auf welches tile es soll, dann bestimmen ob es auch ein gehweg ist, wenn nicht einfach neu würfeln lassen Wink

und dann halt auf dem tile noch per zufall verteilen.
http://www.splattergamez.de
 

Edlothiol

BeitragSo, Mai 02, 2004 11:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Genau das was Hubsi geschrieben hat... Rolling Eyes

dimaster

BeitragSo, Mai 02, 2004 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich möchte aber das der bürger nur aum tile 2 steht Crying or Very sad

Hubsi

BeitragSo, Mai 02, 2004 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann setz halt 2 statt Bürgersteig ein Question
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

[SHM]StArMaStEr

BeitragSo, Mai 02, 2004 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
habs ma gmacht wie hubsi sagt aber er zeichnet die bürger dann nich
hier ma code
Code: [AUSKLAPPEN]
For i=1 To 300
 Repeat
  zx=Rand(0,100)
  zy=Rand(0,100)
  If map(zx,zy)=2 Then
   zivi(i,0)=1
   zivi(i,1)=zx*32
   zivi(i,2)=zy*32
   Exit
  EndIf
 Forever
Next

so und dann lass ich in der hauptschleife die bürger malen mit
Code: [AUSKLAPPEN]
For sd=1 To 300
  If zivi(sd,0)=1 Then
   DrawImage mann,zivi(sd,1),zivi(sd,2)
  EndIf
 Next

ich seh da aber keine bürger. ich hab ma mit text die koords der bürger ausgegeben und die koordinaten sind ok aber da is dann kein bürger.
woran liegt das hab ich was falsch gemacht?
BB-coden was das Zeug hällt!!!!

DC

Sieger des B2D Retro Wettbewerb / Aug 04

BeitragSo, Mai 02, 2004 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Zeichnest du die Bürger vielleicht VOR den Tiles? Wenn ja: Musst sie danach zeichnen!

Ansonsten kann ich mir nicht erklären warum sie nicht sichtbar sind, obwohl die Koordinaten stimmen..
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com |
www.CarnageContest.com | www.Stranded3.com
 

[SHM]StArMaStEr

BeitragSo, Mai 02, 2004 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
hmmm daran liegs nich, ich zeichne immer zuerst die tiles. soll ich vielleicht ma den ganzen code posten damit ihr ma gucken könnt woran es liegt?
BB-coden was das Zeug hällt!!!!
 

[SHM]StArMaStEr

BeitragSo, Mai 02, 2004 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
so wenn keiner antwortet heisst das nich nein also poste ich ma den code
Code: [AUSKLAPPEN]

Graphics3D 640,480,16,1
SetBuffer BackBuffer()
Dim schuss#(50,3)
Dim shot(50)
Dim map(200,200)
Dim zivi(500,3)
tile = LoadAnimImage("gfx/tileset2.bmp",32,32,0,47)
mann = LoadImage("gfx/civi1.bmp")
load()

px=9 ;x-koord des players für kollision
py=8 ;y-koord des players für kollision
ppx=9*32 ;x-koord des players
ppy=8*32 ;y-koord des players

AutoMidHandle True
SeedRnd MilliSecs()

sprite=LoadSprite("gfx/p.bmp",4)
ScaleSprite sprite,-32,-32
PositionEntity sprite,((ppx-scrollx)*2)-640+32,-((ppy-scrolly)*2)+480-32,640
 
cam=CreateCamera()
CameraClsMode cam,0,1
CameraRange cam,1,700
PositionEntity cam,-3,-3,0

maus = LoadImage("gfx/maus.bmp")
MidHandle maus

kugel=LoadImage("gfx/kugel.png")

For i=1 To 300
 Repeat
  zx=Rand(0,100)
  zy=Rand(0,100)
  If map(zx,zy)=2 Then
   zivi(i,0)=1
   zivi(i,1)=zx*32
   zivi(i,2)=zy*32
   Exit
  EndIf
 Forever
Next


While Not KeyHit(1)
 Cls

 For y=0 To 200
  For x=0 To 200
   DrawImage tile,x*32-scrollx,y*32-scrolly,map(x,y)
  Next
 Next

 Text 100,120,zivi(1,1)/32+" "+zivi(1,2)/32
 Text 100,140,ppx/32+" "+ppy/32
 mx# = MouseX()
 my# = MouseY()
 winkel = ATan2(mx-288,256-my)
 RotateSprite sprite,winkel*-1
 PositionEntity sprite,((ppx-scrollx)*2)-640+32,-((ppy-scrolly)*2)+480-32,640


 If zap>0 Then ; wenn taste gedrückt wurde
  If move=1 ; wenn die cursor-taste oben gedrückt wurde
   scrolly=scrolly-2 ;dann scrolle die map nach oben
   ppy=ppy-2 ;dann scrolle player nach oben
   q=q+1 ;q=q+1
   If q=16 Then ;wenn q=16
    zap=0 ;dann ist bewegung zu ende
    q=0 ;q=0
    py=py-1 ;kollisionsdaten des players werden aktualisiert
   EndIf
  EndIf
  If move=2
   scrolly=scrolly+2
   ppy=ppy+2
   q=q+1
   If q=16 Then
    zap=0
    q=0
    py=py+1
   EndIf
  EndIf
  If move=3
   scrollx=scrollx-2
   ppx=ppx-2
   q=q+1
   If q=16 Then
    zap=0
    q=0
    px=px-1
   EndIf
  EndIf
  If move=4
   scrollx=scrollx+2
   ppx=ppx+2
   q=q+1
   If q=16 Then
    zap=0
    q=0
    px=px+1
   EndIf
  EndIf
 EndIf

 If KeyDown(200) Then
  If map(px,py-1)<7 Then
   If zap<1 Then
    move=1 ;move=1 - oben
    zap=1 ;move=2 - unten
    frame=2 ;move=3 - links
   EndIf ;move=4 - rechts
  EndIf
 EndIf

 If KeyDown(208) Then
  If map(px,py+1)<7 Then
   If zap<1 Then
    move=2
   zap=1
   frame=3
   EndIf
  EndIf
 EndIf

 If KeyDown(203) Then
  If map(px-1,py)<7 Then
   If zap<1 Then
   move=3
   zap=1
   frame=1
   EndIf
  EndIf
 EndIf
 
 If KeyDown(205) Then
  If map(px+1,py)<7 Then
   If zap<1 Then
   move=4
   zap=1
   frame=0
   EndIf
  EndIf
 EndIf




 DrawImage maus,MouseX(),MouseY()

 If MouseHit(1)
  nr=nr+1 
  schuss(nr,0)=1
  schuss(nr,1)=ppx+16
  schuss(nr,2)=ppy+16
  schuss(nr,3)=winkel-90
 EndIf

 If nr=50 Then nr=0

 For i=0 To 50
  If schuss(i,0)=1
   DrawImage kugel,schuss(i,1)-scrollx,schuss(i,2)-scrolly
   schuss(i,1)=schuss(i,1)+(Cos(schuss(i,3)*-1)/10)*300
   schuss(i,2)=schuss(i,2)-(Sin(schuss(i,3)*-1)/10)*300
  EndIf
 Next
 For sd=1 To 300
   If zivi(sd,0)=1 Then
    DrawImage mann,zivi(sd,1),zivi(sd,2)
   EndIf
 Next
 Text 100,100,schuss(1,1)
 UpdateWorld
 RenderWorld
 Flip
Wend

Function load()
karte$ = ReadFile("map1.map")
For x = 0 To 200
 For y = 0 To 200
  tile = ReadLine(karte$)
  map(x,y) = ReadInt(karte$)
 Next
Next
CloseFile(karte$)
End Function

/edit:jetzt isser eingerückt!plz hlp!
BB-coden was das Zeug hällt!!!!
 

zocker2150

BeitragDi, Mai 04, 2004 14:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Bin mir net sicher aber wieso hast du hier

Code: [AUSKLAPPEN]
For i=1 To 300
 Repeat
  zx=Rand(0,100)
  zy=Rand(0,100)
  If map(zx,zy)=2 Then
   zivi(i,0)=1
   zivi(i,1)=zx*32
   zivi(i,2)=zy*32
 [b]  Exit[/b]
  EndIf
 Forever
Next


ein Exit in der If abfrage?
Das würde ja heißen, dass du die For Schleife abbrichst, wenn der erste zivi erfolgreich gezeichnet wurde?

Versuchs mal ohne Exit vielleicht geht´s ja dann schon Wink

Hubsi

BeitragDi, Mai 04, 2004 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Damit er wieder aus der Repeat...Forever rauskommt Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

zocker2150

BeitragDi, Mai 04, 2004 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Und du bist dir sicher, dass EXIT nur die Repeat-Schleife verläßt und nicht auch die For-Schleife??Question??

Hubsi

BeitragDi, Mai 04, 2004 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Jup.

Edit: Um Missverständnissen vorzubeugen: Ein Exit beendet prinzipiell alle Arten von Schleifen, aber nur diese eine in der es sich auch befindet.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

zocker2150

BeitragDi, Mai 04, 2004 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah wieder was gelert. thx

Nochmal zu der schleife.
Was will der mit den Zahlen den machen die da rauskommen?
Die sind ja viel zu groß oder?

Hubsi

BeitragDi, Mai 04, 2004 15:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Das sind die absoluten Pixelpositionen, also dort wo der Zivi dann auch aufm Bildschirm ist. Oder sein sollte Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group