PacMan ^^
Übersicht

danny666Betreff: PacMan ^^ |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Ich versuche mich gerade, PacMan zu coden. Brauche aber etwas Hilfe. Hier mal mein bisheriger Code: Code: [AUSKLAPPEN] Graphics 640,480,16,0 SetBuffer BackBuffer() ;Graphik-Modus u=LoadAnimImage("pacupeat.png",22,22,0,3):MaskImage u,255,255,255 d=LoadAnimImage("pacdowneat.png",22,22,0,3):MaskImage d,255,255,255 l=LoadAnimImage("paclefteat.png",22,22,0,3):MaskImage l,255,255,255 r=LoadAnimImage("pacrighteat.png",22,22,0,3):MaskImage r,255,255,255 f=LoadImage("banana.png"):MaskImage f,255,255,255 feld=LoadAnimImage("feld.png",24,24,0,2):MaskImage feld,255,255,255 ;lädt die Animationen Const tile_width=24 Const tile_heigth=24 Const num_x_tile=25 Const num_y_tile=19 ;Größe der Fliesen, Gesamtzahl der Fliesen auf dem Bildschirm DrawImage feld,24*1,24*1,0 DrawImage feld,24*1,24*2,0 DrawImage feld,24*1,24*3,0 DrawImage feld,24*1,24*4,0 DrawImage feld,24*1,24*5,0 DrawImage feld,24*1,24*6,0 DrawImage feld,24*1,24*7,0 DrawImage feld,24*1,24*8,0 DrawImage feld,24*1,24*9,0 DrawImage feld,24*1,24*10,0 DrawImage feld,24*1,24*11,0 Flip WaitMouse Aber die ganzen Felder auf diese Weise zu machen erscheint mir sehr zeitaufwendig...da kann man doch bestimmt was mit Dim und For machen, oder? Ich blick die beiden Begriffe net, sonst würd ich es selber machen. Natürlich sind auch Verbesserungsvorschläge erwünscht ![]() Hilfe wäre sehr nett. mfg danny[666] PS: Tut mir den Gefallen und steckt euch Kommentare wie "wenn du das nich weißt, kannst du es gleich lassen" sonst wo hin. |
||
Live your dream, forget your life! |
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mit einer for next schleife kannst du die Quellcodepassage zwischen den beiden Begriffen mehrmals wiederholen, hier 11 mal (.... = 1 to 11)
die Variable schleifenzaehler zählt dabei mit. am anfang ist sie eins, das zweite mal ist sie 2 und zum schluss 11. Code: [AUSKLAPPEN] Graphics 640,480,16,0 SetBuffer BackBuffer() ;Graphik-Modus u=LoadAnimImage("pacupeat.png",22,22,0,3):MaskImage u,255,255,255 d=LoadAnimImage("pacdowneat.png",22,22,0,3):MaskImage d,255,255,255 l=LoadAnimImage("paclefteat.png",22,22,0,3):MaskImage l,255,255,255 r=LoadAnimImage("pacrighteat.png",22,22,0,3):MaskImage r,255,255,255 f=LoadImage("banana.png"):MaskImage f,255,255,255 feld=LoadAnimImage("feld.png",24,24,0,2):MaskImage feld,255,255,255 ;lädt die Animationen Const tile_width=24 Const tile_heigth=24 Const num_x_tile=25 Const num_y_tile=19 ;Größe der Fliesen, Gesamtzahl der Fliesen auf dem Bildschirm DrawImage feld,24*1,24*1,0 For schleifenzaehler = 1 to 11 DrawImage feld,24*1,24*schleifenzaehler,0 next Flip WaitMouse |
||
ke^kx |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn du ein PacMan-Spiel proggen willst würde ich an deiner stelle mit Dim arbeiten. Es gibt 'ne Menge Tutorials darüber, ist eigentlich nicht so schwer.
Jiriki |
||
http://i3u8.blogspot.com
Asus Striker II Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-) Geforce 9800 GTX 2GB RAM |
![]() |
joachim_neu |
![]() Antworten mit Zitat ![]() |
---|---|---|
jo, auf jeden fall mit dims arbeiten! zumindest bei den punkte, die es gilt aufzufressen, denn mit "punkt1, punkt2, ..." wird das ein bisschen viel! | ||
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de |
Another progger |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,ich hab grad auch n pacman spiel programmiert.wenn du willst schick ich dir den ordner per e-mail.
Hier der quelltext: Code: [AUSKLAPPEN] life=5 Graphics 800,600,16,1 SetBuffer BackBuffer() SeedRnd MilliSecs() Dim level$(17,24) Dim flevel$(17,24) datei=ReadFile("level.txt") SeedRnd MilliSecs() ;; Dim feind(5,2) Dim baba(5) ;; wahl=0 but=LoadImage("but.bmp") For zeile=0 To 17 A$=ReadLine(datei) For spalte=0 To 24 level(zeile,spalte)=Mid(a$,spalte+1,1) Next Next frame=1 wand=LoadImage("wand.bmp") mann=LoadAnimImage("mann.bmp",32,32,0,4) weg=LoadImage("weg.bmp") geg=LoadImage("gegner.bmp") datei=ReadFile("flevel.txt") For zeile=0 To 17 A$=ReadLine(datei) For spalte=0 To 24 flevel(zeile,spalte)=Mid(a$,spalte+1,1) Next Next For n=0 To 5 baba(I)=MilliSecs() Next ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,;;;;;;; Repeat Cls For zeile=0 To 17 For spalte=0 To 24 Select level$(zeile,spalte) Case " " DrawImage weg,spalte*32,zeile*32 Case "1" DrawImage wand,spalte*32,zeile*32 Case "g" DrawImage but,spalte*32,zeile*32 Case "s" DrawImage but,spalte*32,zeile*32 DrawImage mann,spalte*32,zeile*32,frame x=zeile y=spalte End Select Next Next For zeile=0 To 17 For spalte=0 To 24 Select flevel$(zeile,spalte) Case "f" DrawImage weg,spalte*32,zeile*32 DrawImage geg,spalte*32,zeile*32 feind(d,1)=zeile feind(d,2)=spalte d=d+1 End Select Next Next d=0 If pause+90<MilliSecs() If KeyDown(200) And level(x-1,y)<>"1" If level(x-1,y)=" " punkte=punkte+1 level(x,y)="g" level(x-1,y)="s" x=x-1 pause=MilliSecs() frame=3 EndIf EndIf If pause+90<MilliSecs() If KeyDown(208) And level(x+1,y)<>"1" If level(x+1,y)=" " punkte=punkte+1 level(x,y)="g" level(x+1,y)="s" x=x+1 pause=MilliSecs() frame=2 EndIf EndIf If pause+90<MilliSecs() If KeyDown(203) And level(x,y-1)<>"1" If level(x,y-1)=" " punkte=punkte+1 level(x,y)="g" level(x,y-1)="s" y=y-1 pause=MilliSecs() frame=0 EndIf EndIf If pause+90<MilliSecs() If KeyDown(205) And level(x,y+1)<>"1" If level(x,y+1)=" " punkte=punkte+1 level(x,y)="g" level(x,y+1)="s" y=y+1 pause=MilliSecs() frame=1 EndIf EndIf ;gegner intelligent For I=0 To 5 If flevel$(feind(I,1),feind(I,2)-1)<>"1" wah=wah+1 If flevel$(feind(I,1),feind(I,2)+1)<>"1" wah=wah+1 If flevel$(feind(I,1)+1,feind(I,2))<>"1" wah=wah+1 If flevel$(feind(I,1)-1,feind(I,2))<>"1" wah=wah+1 If (wah > 2) Or feind(I,0)=0 feind(I,0)=Rand(4) wah=0 If baba(I)+100<MilliSecs() Select feind(I,0) Case 1 If flevel$(feind(I,1),feind(I,2)-1)<>"1" flevel$(feind(I,1),feind(I,2))=" " feind(I,2)=feind(I,2)-1 flevel$(feind(I,1),feind(I,2))="f" baba(I)=MilliSecs() Else feind(I,0)=0 EndIf Case 2 If flevel$(feind(I,1),feind(I,2)+1)<>"1" flevel$(feind(I,1),feind(I,2))=" " feind(I,2)=feind(I,2)+1 flevel$(feind(I,1),feind(I,2))="f" baba(I)=MilliSecs() Else feind(I,0)=0 EndIf Case 3 If flevel$(feind(I,1)+1,feind(I,2))<>"1" flevel$(feind(I,1),feind(I,2))=" " feind(I,1)= feind(I,1)+1 flevel$(feind(I,1),feind(I,2))="f" baba(I)=MilliSecs() Else feind(I,0)=0 EndIf Case 4 If flevel$(feind(I,1)-1,feind(I,2))<>"1" flevel$(feind(I,1),feind(I,2))=" " feind(I,1)=feind(I,1)-1 flevel$(feind(I,1),feind(I,2))="f" baba(I)=MilliSecs() Else feind(I,0)=0 EndIf End Select EndIf Next If punkte=208 Goto ending For p=0 To 5 If feind(p,1)=x And feind(p,2)=y Then life=life-1 Cls Text 0,0,"Ein leben ist weg" Flip Delay 1500 EndIf Next If life=0 Cls Text 0,0,"Loser..." Flip FlushKeys WaitKey End EndIf Flip Until KeyDown(1) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;, Cls Text 0,0,"Punkte:"+punkte Flip FlushKeys WaitKey End .ending ClsColor 127,0,0 Cls Text 0,0,"Level geschafft" Flip FlushKeys WaitKey End |
||
![]() |
eXceptION |
![]() Antworten mit Zitat ![]() |
---|---|---|
er kann das genau so gut mit strings machen... dim ein array mit strings, anzahl gleich anzahl von tiles vertical... | ||
Norweger...
Spreche aber verdammt gut 8086 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group