Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 28.03.2006, 14:38 Titel: HILFE! Meine Partikel prallen nicht und erscheinen nicht |
|
|
Also... Kann sich mal bitte einer meinen code
unter http://freebasic.de/fbnp/index.php?view=291
anschauen und mir sagen was da schief läuft?? |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 28.03.2006, 15:26 Titel: |
|
|
kleiner fehler..
zwei mal
WITH dots(q)
statt
WITH dots(num)
schreiben, dann bewegts sich
aber deine kollision hat noch n paar probleme weil die teile sich nicht zwangsläufig nur um einen pixel verschieben und wenn sie einmal aus dem bildschirm raus sind kommen sie nich wieder rein  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Tomtitom

Anmeldungsdatum: 20.09.2004 Beiträge: 308
|
Verfasst am: 28.03.2006, 15:28 Titel: |
|
|
und sehe tut man nix, weil die im gelockten Screen psetest
Besser du arbeitest anstatt mit int(.x) = xmax ... mit .x > xmax ... |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 28.03.2006, 15:56 Titel: |
|
|
er hat doch screenunlock drin man sieht was sobald man statt num q schreibt.. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Tomtitom

Anmeldungsdatum: 20.09.2004 Beiträge: 308
|
Verfasst am: 28.03.2006, 17:53 Titel: |
|
|
huch, na das finde ich jetzt aber komisch, er hat zwar ein unlock mit drin, aber direkt danach wird doch wieder gelockt. Funktioniert Lock anders, als ich gerade denke? Ich dachte, dass alles was gemalt wird, wenn der Screen gelockt ist, nicht erscheint. |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 28.03.2006, 18:00 Titel: |
|
|
screenlock sperrt solange die screen bis screenunlock benutzt wird.
Habs mal geupt.
die kleinen racker verschwinden immer noch! HILFE
http://freebasic.de/fbnp/index.php?view=294
Zuletzt bearbeitet von psygate am 28.03.2006, 18:05, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 28.03.2006, 18:04 Titel: |
|
|
Wenn der Screen gelockt ist, werden die Zeichnung duchgefürht aber nicht angezeigt. (Wie auf eine Zweite unsichtbare Bildschirmseite)
Durch Screenunlock wird dann diese Zweite Seite sozusagen auf die erste Kopiert und damit Sichbar.
Zitat: | huch, na das finde ich jetzt aber komisch, er hat zwar ein unlock mit drin, aber direkt danach wird doch wieder gelockt. |
Das ist Sinnvoll und auch üblich.
So sieht sieht der Benutzer den Bildaufbau nicht und der Programmierer kann ganz Normal mit PSET Line Circle etc. und vorrallem CLS Arbeiten. |
|
Nach oben |
|
 |
Tomtitom

Anmeldungsdatum: 20.09.2004 Beiträge: 308
|
Verfasst am: 28.03.2006, 21:00 Titel: |
|
|
Sag mal, was soll das eigentlich für ein komisches Prallverhalten sein? Sollen die immer im 45° Winkel abprallen? normalerweise ist doch Einfallswinkel = Ausfallswinkel.
Ich schlage vor, du machst das nochmal richtig, dann löst sich das Problem von selbst. |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 28.03.2006, 22:02 Titel: |
|
|
könnte beides sein.. entweder der springt nach außen aus dem bildschirm oder er "überspringt" die bildschirmkante und fliegt dann einfach weiter weil dein prog da nicht mehr kontrolliert. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 29.03.2006, 22:03 Titel: |
|
|
@Tomtitom:
uiuiuiui!
Das ist ein grober fehler meinerseits! Das Prog sollte ich echt überarbeiten  |
|
Nach oben |
|
 |
Tomtitom

Anmeldungsdatum: 20.09.2004 Beiträge: 308
|
Verfasst am: 29.03.2006, 23:18 Titel: |
|
|
schön, wenn meine Hilfe gebührlich geehrt wird...
Wenn du es nämlich so machst, dürfte das Problem, dass die Partikel durch falsche Winkel 'rausfliegen' beseitigt sein.
Dazu brauchst du nicht das ganze Prog überarbeiten, das wäre ja unzumutbar. |
|
Nach oben |
|
 |
d.j.peters Gast
|
Verfasst am: 29.03.2006, 23:39 Titel: |
|
|
Nur als Anregung gedacht kann Deinen code gerade nicht lesen. (NOPASTE geht gerade nich bekomme timeout!)
Grüsse Joshy
Code: | 'ball3.bas
OPTION EXPLICIT
type BALL
as double b,a
as single s,v,x,y,xxx,yyy
as integer r,c
end type
#define max_balls 100
#define scr_w 800
#define scr_h 640
const G as double = 98.1
const Gd2 as double = G * 0.5
const PI as double = 4.0 * atn(1.0)
const PI2 as double = PI * 2.0
const PId2 as double = PI * 0.5
const OneDegree as double = PI / 180.0
dim shared balls(max_balls-1) as BALL
sub initball(byval index as integer)
with balls(index)
.b=timer
.r=5+rnd*5
.c=1 +(index and 7)
.x=0:.y=0
.xxx= scr_w\2
.yyy= scr_h\2
.v=150 + rnd * 50
.a=PId2 + OneDegree * (90*rnd-45)
end with
end sub
sub updateballs()
dim as double t,v0t,now
dim as integer index
now=timer()
for index=0 to max_balls-1
if balls(index).v<=0 then
initball index
else
with balls(index)
t =(now - .b)
v0t=.v*t
.x=.xxx + v0t * cos(.a)
.y=.yyy + v0t * sin(.a) - (gd2*(t*t))
if (.y<.r) then
.y=.r:.a=PI2-.a :.v-=1
.xxx=.x
.yyy=.y
.b=now
end if
if (.x<.r) then
.x=.r:.v-=1
.a=onedegree*359
.xxx=.x
.yyy=.y
.b=now
elseif (.x+.r)>=(scr_w-1) then
.x=(scr_w-1)-.r:.v-=1
.a=PI
.xxx=.x
.yyy=.y
.b=now
endif
end with
end if
next
end sub
sub drawballs()
dim as integer index
for index=0 to max_balls-1
with balls(index)
circle (.x,scr_h - .y),.r,.c,,,,F
end with
next
line ((scr_w\2-10),(scr_h\2-10))-step(20,20),1,bf
end sub
dim as integer i
dim as double s
screenres scr_w,scr_h
while len(inkey)=0
screenlock:cls
updateballs
drawballs
screenunlock
wend |
|
|
Nach oben |
|
 |
psygate
Anmeldungsdatum: 05.04.2005 Beiträge: 304 Wohnort: Wien und der Computer
|
Verfasst am: 30.03.2006, 13:27 Titel: |
|
|
@Joshy : und wieder einmal das thema verfehlt.
Leider kann ich mit dem code nichts anfangen, da er etwas ganz anderes macht als meiner. Erst lesen, dann dnken, dann posten.
Aber trotzdem:danke |
|
Nach oben |
|
 |
|