Dienstag, 1. August 2006
Jaaa! Es klappt...
So, jetzt ist es soweit: BattleCubus ist endlich in die ALPHA-Phase gewechselt! Ah, ich liebe es, wenn Dinge funktionieren. Ich denke, ich werde übermorgen wieder mit der Webcamprogrammierung experimentieren. Ich hatte den lang zurückgestellten aber gewünschten,erneuten Abstecher in die 3D-Programmierung erfolgreich abgeschlossen und sogar im Prinzip 2 Spiele entwickelt....gut das Eine ist noch nicht wirklich ein Spiel...aber wenn jemand den Leveleditor benutzt und sich Zeit nimmt, ein paar Level zu machen werde ich irgendwann ein paar Features hinzufügen und voila: Wir haben ein coooooles Spiel^^

Wie dem auch sei: Jetz werd ich erstmal was essen, n bissel proggen und dann ratzen, muss morgen relativ früh raus, weil wir nach Bremen ins Universum wolln. Yeah. Da freu ich mich schon drauf, war da vorn paar jahren mal. Is irgendwie cool!
Greetys AVGP

... link (0 Kommentare)   ... comment


Sonntag, 30. Juli 2006
Shit happens!
MIST. Ich habe ja immernoch die Hoffnung, dass es irgendwie, durch Zufall,Chaostheorie oder was-auch-immer möglich sein könnte, dass ich irgendwie an einen günstigen,kleinen Laptop komme...Sony Vaio oder JVC, die ganz kleinen Dinger, deren Preis direkt umgekehrt-proportional zu ihrer Größe ist...

eben habe ich eine Gelegenheit dazu verpasst: Ebay...Sony Vaio...alles tip-top, auch gewerblicher Händler...186 Euro. Verdammt...EGAL...was solls xD

... link (0 Kommentare)   ... comment


Der erste Sourcecode für die Webcam
Also, wenn ihr jetzt alles korrekt installiert habt, dann müsstet ihr jetzt meinen kleinen Beispielcode via Python nutzen können. Ihr solltet dann ein Fenster sehen, auf dem das Webcambild eurer Webcam zu sehen ist. Zusätzlich befindet sich dann irgendwo auf dem Bild ein gelbes Rechteck. Wenn ihr in dieses Rechteck "hineinwinkt" oder so - also eine Bewegung innerhalb dieses Rechtecks stattfindet, sollte es sich irgendwo anders hin positionieren und wieder auf eine Bewegung "warten". Lange Rede, kurzer Sinn, hier ist der Sourcecode:

# -*- coding: cp1252 -*-
from VideoCapture import Device
import ImageDraw
import sys
import pygame


def motion(img1, img2, pix_threshold=50, img_threshold=10):
#Schaun wir mal, ob wir eine Bewegung vorliegen haben...
if not img1 or not img2: return False
img1 = img1.getdata()
img2 = img2.getdata()
pixel_count = len(img1)
pixdiff = 0
for i in range(pixel_count):
if abs(sum(img1[i]) - sum(img2[i])) > pix_threshold:
pixdiff += 1
diffperc = pixdiff / (pixel_count/100)
if diffperc > img_threshold:
# motion detected
return True
pygame.init()
size = (640,480)


#Her mit der Kamera
cam = Device()
screen = pygame.display.set_mode(size)
#Das wird unser Ziel-Rechteck
target = None
target_x = random.randint(0,540)
target_y = random.randint(0,380)

while 1:
for event in pygame.event.get():
if event.type == pygame.QUIT: sys.exit()

camshot = cam.getImage()

#wir wollen jetzt überprüfen, ob in den aktuellen Zielkoordinaten eine Bewegung stattfand
target2 = camshot.crop((target_x,target_y,target_x+100,target_y+100))
draw = ImageDraw.Draw(camshot)
if diff_image(target, target2):
draw.rectangle((target_x,target_y,target_x+100,target_y+100), fill=255)
target_x = random.randint(0,540)
target_y = random.randint(0,380)
else:
draw.rectangle((target_x,target_y,target_x+100,target_y+100), outline=255)
target = target2 #Macht das "neue" Targetbild zum "alten"

camshot = pygame.image.fromstring(camshot.tostring(), size, "RGB")

screen.blit(camshot, (0,0))
pygame.display.flip()

...kopiert diesen Teil einfach in eine neue Textdatei, nennt sie "Example.py" und klickt doppelt drauf. Python sollte sich jetzt starten und das Ganze ausführen.
Ich konnte die Source noch nicht testen, mache ich aber nachher noch. Ich wünsch euch schonmal viel Spaß mit unserem ersten gemeinsamen Webcamgame.

Ihr seid jetzt übrigens auf meinem aktuellen Wissenstand und ab morgen (oder vllt. auch nachher) werde ich Weiteres erläutern.

... link (1 Kommentar)   ... comment


Home-Made "EyeToy(tm)"
Als erstes sei darauf hingewiesen, dass EyeToy(tm) ein eingetragenes Markenzeichen von Sony is. Aber einen besseren Begriff gibt es nunmal nicht, für das, was ich bzw. "wir" vorhaben.

Also das ist der Plan: Ich möchte euch zeigen, wie man ein Programm schreibt, dass die Bilder einer Webcam, wie viele sie auf ihrem Computertisch stehen haben, nimmt und sie daraufhin analysiert, wo sich seit dem aktuellen und dem letzten aufgenommenen Bild etwas verändert - also bewegt - hat. Ich habe daran schon herumgebastelt und auch etwas gegoogelt...

Wer mitwerkeln mag, der lese weiter:

Am einfachsten , meines Wissensstandes nach, ist der Webcam-Teil und das Drumherum in Python am leichtesten zu machen.
Python ist eine bequeme, mächtige Scriptsprache, mit der man viel anstellen kann!

Also besorgt euch zunächst Folgendes:
-Python von
http://www.python.org
-PIL (PythonImageLibrary) von http://www.pythonware.com/products/pil/
-PyGame (ZusatzLib für Spieleentwicklung mit Python)
von http://www.pygame.org
-VideoCapture (Lib für Videocapturing) von
http://videocapture.sourceforge.net/
und installiert das Alles.
Weiter gehts nachher oder morgen...:D

... link (2 Kommentare)   ... comment


Let's get going
Tja.
Öh.
Hier wären wir...was aus Langeweile so entstehen kann...
Wie dem auch sei: Wer bin ich? Ich bin AVGP ( neeeiiin, ehrlich? Boah, schau an, schau an) Ja gut, der Einstieg is etwas unbeholfen, aber so is das nunmal mit Blog-N00bs.
Also, ich mag ein Blog-N00b sein, aber dafür bin ich in anderen Dingen ziemlich gut *schulterklopf*. Mein Spezialgebiet ist die Programmierung - und auf dem Gebiet so ziemlich Alles, was dazugehört.

Nachdem ich vor mittlerweile 9 Jahren -damals 8- mit BASIC auf dem C64 angefangen habe, erweiterte ich mit 10 auf einem PC mein Können um die Sprache PASCAL, darauf folgte VisualBasic, dann C. Gleichzeitig begann ich mit JavaScript und HTML herumzuwerkeln.
Bald darauf, mit 12 war ich recht gut in alle dem und entdeckte BlitzBasic für mich. Wie ich inzwischen erfuhr, gibt es BlitzBasic in der Form, in der ich es kannte, gar nicht mehr. Da ich ab 14 mit BlitzBasic3D arbeitete und kurz darauf auf PureBasic und C++ umstieg, verfolgte ich BlitzBasic nicht weiter. Inzwischen gibt es nur noch BlitzBasic3D und eine neuere Variante des BlitzBasics - BlitzMax...die ich seltsam finde. Egal. Inzwischen sind unzählige Minispiele entstanden - von denen ich, mit Ausnahme eines - keins mehr habe. :( Schade. Aber dafür entwickelte ich mit 16 einige nützliche - und auch einige unnütze- Anwendungen. Etwa den Panelplayer, den man auch heute noch unter http://www.manaware.net/ herunterladen kann!
Vor etwa 1 1/2 Jahren habe ich mich dann auch der Assemblerprogrammierung gewidmet - sogar einen Bootloader und einen sehr,sehr kleinen Kernel für ein eigenes "Betriebssystem" geschrieben...wenn ich irgendwann mal wieder motiviert genug sein sollte, werde ich es fortsetzen und hier darüber berichten...
und schließlich vor einem 3/4 Jahr hatte ich dann mit der Programmierung auf PSP und GBA begonnen.

Ich habe vor kurzem angefangen mit Webcams und MotionDetection zu experimentieren (http://www.manaware.net/Downloads/download.php?Art=9)
und werde hier im Weiteren über alle interessanten Programmierthemen weiter berichten.

... link (1 Kommentar)   ... comment