Spiele-Idee

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen

Snade

BeitragSo, Jan 04, 2009 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Sry das ich nich hingeschrieben hab aber der 2. Fehler also den der jetz im Post steht kommt nach dem ich Local davorgesetzt hatte. Hatte den fehler schon behoben dann kam der 2.^^

Edit1: das heist dann das ich moorhuhn = Loadimage ueber den typ setzten muss?
Edit2: Das Game laedt jetz hurra
1.fehler behoben
2.fehler moorhuhn taucht nicht auf wird ihrgendwie nicht geladen was mach ich bloss falsch?

Xeres

Moderator

BeitragSo, Jan 04, 2009 22:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Außer, dass du was dabei lernst, kann nichts passieren wenn du es selbst ausprobierst Wink
Der Debugger zeigt die Zeile an, in dem er den Fehler vermutet, meistens ist das ein guter Hinweis.

Edit:
Okay, du scheinst dir mühe zu geben, dann poste nicht so eilig ins Forum sondern lese nach, etwa Backbuffer und Flip könnten dir hilfreich sein.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
  • Zuletzt bearbeitet von Xeres am So, Jan 04, 2009 22:24, insgesamt einmal bearbeitet

Snade

BeitragSo, Jan 04, 2009 22:23
Antworten mit Zitat
Benutzer-Profile anzeigen
ja es kommt ja kein fehler nur das moorhuhn fehlt^^

Code: [AUSKLAPPEN]
;Start
Graphics 1024,768,32,1
SetBuffer BackBuffer()

;Type
moorhuhn = LoadImage("gfx\moorhuhn.png")
Type moorhuhn
 Field x
 Field y
End Type

Global a.moorhuhn

For I=1 To 5
 a = New moorhuhn
 a\x=Rand(0,770)
 a\y=Rand(0,385)
Next

For a.Moorhuhn=Each Moorhuhn
     a\x=a\x+1
     DrawImage moorhuhn, a\x,a\y
Next

;Grafik
Arial1 = LoadFont ("Arial",25,1,0,0)
SetFont Arial1

crosshair = LoadImage("gfx\crosshair.png")
hintergrund = LoadImage("gfx\hintergrund.png")


MaskImage crosshair, 255,255,255
MaskImage hintergrund, 255,255,255
MaskImage moorhuhn, 255,255,255

Color 0,255,0

;Hauptschlife
Repeat
Cls

DrawImage hintergrund, 1,1
DrawImage crosshair, MouseX(),MouseY()

 
If ImagesCollide(crosshair,MouseX(),MouseY(),0, moorhuhn,x,y,0)If MouseDown(1) Then End

Flip
Until KeyHit(1)
End

Eingeproggt

BeitragSo, Jan 04, 2009 23:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
For a.Moorhuhn=Each Moorhuhn
     a\x=a\x+1
     DrawImage moorhuhn, a\x,a\y
Next


Setz das in die Hauptschleife und deine Moorhühner lernen fliegen Smile
(Wenn ich nicht irgendwas übersehen habe)
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Goodjee

BeitragSo, Jan 04, 2009 23:23
Antworten mit Zitat
Benutzer-Profile anzeigen
snade, dein kopf ist nicht nur zum hüte tragen da...du kopierst hier völlig sinnfrei codeschnippsel zusammen die wir die geben, scheinbar ohne dir gedanken zu machen was sie eigentlich tun und wie man sie am geschicktesten benutzt...

warum sollte man alle hühner einmal vor der hauptschleife zeichnen?
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Snade

BeitragSo, Jan 04, 2009 23:39
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm keine ahnung ich dachte einfach das das da hin gehoert woher soll ich wissen das das in die schlife kommt sry Shocked werde naechtes mal mehr ueberlgen! jetz kommen aber die naechtsen probleme
1. Mein Huhn is hinter meine hintergrund bild
2. Man sieht diese unschoenen weisen pixel um die huehner herum obwohl ich maskimages auch weis gestellt hab?!
3. Wenn ich auf die morhuehner klicke (mit meinen fadenkreuz) dann passiert nichts obwohl ich im code end angegeben hab denke mal haengt auch mit 2. zusammen?

N0X

BeitragSo, Jan 04, 2009 23:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu Problem 1:
Du musst natürlich das Hintergrundbild VOR den Moorhühnern malen und laden.

Zu Problem 2:
Vielleicht hast du ein Bildbearbeitungsprogramm das Linien mit Antialising malt, das musst du ausstellen ! (z.B. Paint.NET)

Zu Problem 3:
Muss der Code in der Hauptschleife nicht so aussehen ?
Code: [AUSKLAPPEN]
For a.moorhuhn = Each moorhuhn
   If MouseDown(1)
      If ImagesCollide(crosshair,MouseX(),MouseY(),0, moorhuhn,moorhuhn\x,moorhuhn\y,0) Then End
   EndIf
Next


Oder anstatt Code: [AUSKLAPPEN]
moorhuhn\x,moorhuhn\y
Code: [AUSKLAPPEN]
a\x,a\y


Hatte keine Zeit den Code zu testen !

Hoffe es klappt Wink

Mfg,
N0X
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5%

Snade

BeitragMo, Jan 05, 2009 11:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke werds gleich testeten ob das geht. Zu Problem 2 jip ich benutz paint dachte damit wuerde man das hinkriegen weist du wo man das austellen kann hab gerade nur russisches xp da ist das ein bisschen schwer weil ich das nicht lesen kann^^
hier so sieht das aus ist das das was du meintest?
user posted image
Sieht ein bisschen komisch aus da ich es in png konvertiert habe! aber dieser weise Rand is das Problem.

Ok danke nox musste deinen code zwahr noch ein bisschen umschreiben aber sonst hab ich jetz alle probleme behoben bis auf das 2.

Xaymar

ehemals "Cgamer"

BeitragMo, Jan 05, 2009 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
kann es sein das du jpg dateien nach png formatiert hast?
Warbseite

Snade

BeitragMo, Jan 05, 2009 12:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Das waren .bmp Datein und koennte es sein das wenn ich bmp Datein in png konvertiere das im spiel ein solcher Fehler kommt?

EDIT1: Mist uebersehen ja von google waren die .jpg dann aber im png format gepspeichert geht der Fehler weg wenn ich dierekt jgp bilder lade??

EDIT2: Ne ging nich weg obwohl es jpg wahr!

Ok lassen wir das mit der Grafik erstamal hab eine Frage wie krieg ich das hin das das moorhuhn runterfaellt bzw. weggeht wenn ich es abgeschossen hab?

Goodjee

BeitragMo, Jan 05, 2009 13:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Delete
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

ozzi789

BeitragMo, Jan 05, 2009 14:29
Antworten mit Zitat
Benutzer-Profile anzeigen
JPG verursacht solche "Artefakte", nimm Gimp/PS/Paint und zeichne einfach mit weiss drüber und speicher es als png oder bmp Wink
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Snade

BeitragMo, Jan 05, 2009 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok habs hinbekommen davor hatte ich delete schon ma ohne each benutzt deswegen gabs nen fehler jetz gehts so die 2 letzten fragen
1. Es kommt immer nur 1 Moorhuhn wie kann ich das machen das 3-5 kommen? das hab ich nich hinbekommen obwohl ja in de Schleife 1 to5 steht warum kommt dann nur eins?
2. Wenn das eine weg ist dann kommen keine weiteren mehr muss ich da ne Endlosschliefe machen oder wie geht das ^^?

Goodjee

BeitragMo, Jan 05, 2009 14:37
Antworten mit Zitat
Benutzer-Profile anzeigen
zu 1: es geht eg mit der schleife...deklarier mal a nicht mehr global vllt hilfts
zu 2: du musst halt in deiner hauptschleife hühner erstellen, aber bitte nich jeden frame, dass wären zu viele Wink
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Snade

BeitragMo, Jan 05, 2009 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Es ist jetz ein superman game fand ich ihrgendwie cooler als huehner so under dem mottp "Haha ich kan superMAN abschiesen xD"
hier der code
1. Ne nich mehr global declarieren hat nich geholfen
2. Ist doch in der Schleife

Code: [AUSKLAPPEN]
;Start
Graphics 1024,768,32,1
SetBuffer BackBuffer()

;Type

Type superman
 Field x
 Field y
End Type

Global a.superman

For I=1 To 5
 a = New superman
 SeedRnd MilliSecs()
 a\x=Rand(950,1024)
 a\y=Rand(150,768)
Next


;Grafik
Arial1 = LoadFont ("Arial",25,1,0,0)
SetFont Arial1

crosshair = LoadImage("gfx\crosshair.png")
hintergrund = LoadImage("gfx\hintergrund.png")
superman = LoadImage("gfx\superman.png")


MaskImage crosshair, 255,255,255
MaskImage hintergrund, 255,255,255
MaskImage superman, 255,255,255

Color 0,255,0

;Hauptschlife
Repeat
Cls
TileImage hintergrund, 0,0


For a.superman = Each superman
        a\x=a\x-1
      DrawImage superman, a\x,a\y
      If ImagesCollide(crosshair,MouseX(),MouseY(),0, superman,a\x,a\y,0) If MouseDown(1) Then Delete Each superman
   Next


DrawImage crosshair, MouseX(),MouseY()

 

Flip
Until KeyHit(1)
End

oder meinste das ich da noch welche dazu machen soll ueber einen +1 befehl oder einfach DrawImage kopieren?

Snade
 

FWeinb

ehemals "ich"

BeitragMo, Jan 05, 2009 15:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Deine Frage müstest du eigentlich selber beantworten können wenn du den Code den "du" geschrieben hast verstehst.

Ein Tipp schau dir diese Zeilen an:
Code: [AUSKLAPPEN]


For I=1 To 5
 a = New superman
 SeedRnd MilliSecs()
 a\x=Rand(950,1024)
 a\y=Rand(150,768)
Next


Das SeedRnd MilliSecs() brauchst du nicht jedesmal neu zu Deffinieren, hat mit deiner Frage aber nix zu tuhen.

[EDIT]
Nimm das Global a.Superman raus das ist sinnlos
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs
  • Zuletzt bearbeitet von FWeinb am Mo, Jan 05, 2009 15:10, insgesamt einmal bearbeitet

Xeres

Moderator

BeitragMo, Jan 05, 2009 15:08
Antworten mit Zitat
Benutzer-Profile anzeigen
"Delete Each superman" macht genau das: es löscht alle Instanzen vom Type superman. Der getroffene Superman ist aber die Instanz a ->
Code: [AUSKLAPPEN]
Then Delete a.superman
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Snade

BeitragMo, Jan 05, 2009 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
1. Ich hab den Code geschrieben und verstehe an meinem code nicht warum er wenn ich 1-5 hingerschrieben hab warum er dann nicht 5 stueck macht verstehen kann ich den code schon bloss eben das nicht
2. Wenn ich das Global wegnehme kommt eine fehlermeldung
"functin'a' not found"

Xeres

Moderator

BeitragMo, Jan 05, 2009 16:16
Antworten mit Zitat
Benutzer-Profile anzeigen
SeedRnd MilliSecs() vor Rand sorgt für diesen Effekt: Die Anfangszahl für den Zufallsalgoritmus ist die Zeit in Millisekunden die der Computer läuft. Allerdings ist die Schleife von jedem Prozessor in weniger als einer Millisekunde durchlaufen. Daher sind X und Y Koordinaten stehts gleich!
Darum SeedRnd MilliSecs() nach Setbuffer Backbuffer() Idea
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

FWeinb

ehemals "ich"

BeitragMo, Jan 05, 2009 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

SeedRnd MilliSecs()

For I=1 To 5
 a.superman= New superman
 a\x=Rand(950,1024)
 a\y=Rand(150,768)
Next


So der Code geht jetzt, das war auch der grund warum er nur 1nen gemacht hat.

@Xeres
Das Stimmt nicht er setzt den Rand ja (bis jetzt) in der Schleife auf Zufall, das Problem ist das Global a.superman so wir (bis jetzt) in seinem code das a.superman immer mit einem Neuen Superman überschrieben und kein Neuer erstellt, da die Variable ja eben Global ist.

Das SeedRnd nicht in eine Schleife gehört hat ewas mit der Effiziens des Codes zu tuhen (was bringt es den Zufall immer wieder neu zu Setzen)

mfg

ich
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs

Gehe zu Seite Zurück  1, 2, 3, 4  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group